Why NFS is on a Smartphone and Why Itβs Relevant for the Redmi 9C NFC
The NFS Network File System is a protocol that allows you to mount remote folders as local drives. On the Xiaomi Redmi 9C NFC with its modest 64/128 GB of memory NFS can be a salvation: you can access terabytes of data on NAS, a home PC or even a Raspberry Pi without having to manipulate the clouds or USB- cables.
The main advantage NFS over alternatives (SMB, WebDAV) is minimal overhead and high data rate. This is critical for Redmi 9C NFC, where a weak Helio processor G35 can slow down when working with heavy protocols. But there is a nuance: MIUI does not support the NFS- client by default, so you have to use workarounds.
This article is a unique guide to MIUI 14/15, where standard NFS connection methods often fail, and we will look at server configuration (on Linux/Windows), smartphone client configuration, and solutions to common errors like Permission denied or mount: Operation not allowed.
Requirements and Preparation: What You Need to Set Up NFS
Before you start, make sure you have:
- π± Xiaomi Redmi 9C NFC with unlocked bootloader (optional, but simplifies the process).
- π₯οΈ Device-server: PC with Linux (Ubuntu/Debian), Windows with WSL2 or NAS (Synology, QNAP).
- π Stable connection to a single LAN (Wi-Fi 5GHz is recommended for speed).
- π§ Root rights on a smartphone or an alternative file manager (e.g., Mixplorer with a plugin NFS).
If you don't have root, don't despair: in the client apps section, we'll look at options without superuser rights. However, note that without root, read/write speeds may be limited due to the features of MIUI.
Important: if you are running Windows 10/11 without WSL2, setting up the NFS- server will require additional components (e.g. haneWIN NFS Server).
Setting up NFS-Linux-based (Ubuntu/Debian)
Starting with the server side, using the example of Ubuntu 22.04 LTS, we will analyze the minimum configuration that is sufficient to work with the Xiaomi 9C NFC.
1. Install the necessary packages:
sudo apt update && sudo apt install nfs-kernel-server -y2. Create and configure an exportable folder, for example, open access to /mnt/nfs_share:
sudo mkdir -p /mnt/nfs_share
sudo chown nobody:nogroup /mnt/nfs_share
sudo chmod 777 /mnt/nfs_share3. edit the /etc/exports file:
sudo nano /etc/exportsAdd a line (replace 192.168.1.0/24 with your subnet):
/mnt/nfs_share 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)π‘
If you have a dynamic IP on your local area network, use the insecure setting in /etc/exports to allow connections from ports above 1024: /mnt/nfs_share 192.168.1.0/24(rw,sync,insecure).
4. Restart the NFS service:
sudo exportfs -a
sudo systemctl restart nfs-kernel-server5. Check that the folder is exported:
sudo exportfs -vChecking the efficiency of the server
From another Linux PC on the same network, do:
showmount -e <IP- server address>The line with your /mnt/nfs_share folder should be displayed.
What if showmount doesn't show the folder?
Setting up a NFS- server on Windows (with WSL2)
If you have Windows 10/11, the easiest way to use WSL2 is with Ubuntu. Installing a NFS- server in WSL is similar to native Linux (see previous section), but there are nuances:
- Install WSL2 and Ubuntu distribution from the Microsoft Store.
- In the /etc/exports file, specify the IP- address of the Windows host machine (you can find it by the ipconfig command in PowerShell).
- Open ports in Windows Firewall: New-NetFirewallRule -DisplayName "NFS Portmapper" -Direction Inbound -Protocol TCP -LocalPort 111 -Action Allow New-NetFirewallRule -DisplayName "NFS Daemon" -Direction Inbound -Protocol TCP -LocalPort 2049 -Action AllowRule -DisplayName "NFS Daemon" -Direction Inbound -Protocol TCP -LocalPort 2049 -Ac Allow
β οΈ Warning: WSL2 does not support folder export outside of its file system by default. To export a folder from disk C:, you must first mount it in WSL:
sudo mkdir /mnt/c
sudo mount -t drvfs C: /mnt/cThen, in /etc/exports, specify the path /mnt/c/folder.
NFS Connection to Xiaomi 9C NFC: Rootless Options
MIUI does not include built-in support for the NFS- client, but there are workarounds.
Method 1: Mixplorer + NFS plugin
Mixplorer is one of the few file managers for Android that supports NFS via plugins. Download it from XDA Developers (Free Restricted Version) and follow the steps:
- Install the NFS Add-on for Mixplorer plugin (available there).
- Open Mixplorer, go to the Web β Add β NFS.
- Fill in the fields: π Name: Any (e.g., "My NAS"). π Server: IP- address of your NFS- server. π Path: Exportable folder (e.g., /mnt/nfs_share). π Port: 2049 (default).
Connect.
βοΈ Checking the connection in Mixplorer
β οΈ Warning: Mixplorer may give Mount failed: Operation not permitted on MIUI 14+.
- Disable MIUI Optimization in the developer settings.
- Use Port 111 instead of 2049 (sometimes helps bypass SELinux restrictions).
Method 2: Termux + Manual mounting
If Mixplorer is not suitable, you can use Termux with utilities to mount NFS. This method is more complicated, but gives more control:
- Install Termux from F-Droid (the version from Google Play is outdated).
- Update packages and install nfs-utils: pkg update && pkg upgrade -y pkg install nfs-utils -y
- Create a mount point and connect the folder: mkdir ~/nfs_share mount -t nfs -o port=2049, nolock 192.168.1.100:/mnt/nfs_share ~/nfs_share (replace 192.168.1.100 on your server's IP).
To unmount:
umount ~/nfs_shareπ‘
Termux mounts NFS only for the duration of the session. Once the application is closed or the smartphone is restarted, the connection will break. Automatic mounting will require a script in ~/.termux/boot/ or root access.
NFS Connection with Root Rights: Full Control
If your Xiaomi 9C NFC has root, you can mount the NFS- folders as system drives, which gives you maximum speed and stability.
1. Install Magisk and the NFS Manager module (available in the Magisk repository).
2. Open the Termux or Adb shell and do:
su
mkdir /data/nfs_share
mount -t nfs -o rw,noatime,nodiratime,rsize=8192,wsize=8192 192.168.1.100:/mnt/nfs_share /data/nfs_share3. To mount automatically when booting, add a line to /etc/fstab:
192.168.1.100:/mnt/nfs_share /data/nfs_share nfs rw,noatime,nodiratime,rsize=8192,wsize=8192 0 0β οΈ Warning: When using fstab on MIUI, you may freeze when booting if the NFS server is not available.
192.168.1.100:/mnt/nfs_share /data/nfs_share nfs rw,noatime,nodiratime,rsize=8192,wsize=8192,soft 0 0Optimizing productivity
To speed up the NFS on the Redmi 9C NFC (especially for the weaker Helio G35), use the following mounting options:
| Parameter | Meaning | Description |
|---|---|---|
| rsize | 8192 | Read block size (increases speed with a large network latency). |
| wsize | 8192 | The size of the recording block. |
| noatime | β | Disables the update of the access time to files (reduces the load). |
| nodiratime | β | It's similar to noatime, but for folders. |
| tcp | β | Forced use of TCP instead of UDP (more stable on Wi-Fi). |
Typical errors and their solutions
When setting up NFS on Xiaomi 9C NFC, the following problems most often arise:
1 Permission denied error
Causes and solutions:
- πΉ The server has incorrect folder rights. Correct: chmod 777 /mnt/nfs_share.
- πΉ /etc/exports does not specify no_root_squash (needed for root access).
- πΉ SELinux is blocking access. Check the logs: dmesg | grep nfs.
2. mount error: Operation not allowed
Typical of MIUI without root.
- πΉ Use Port 111 instead of 2049 in connection settings.
- πΉ Turn off MIUI Optimization in the developer settings.
- πΉ Try another file manager (e.g., FX File Explorer with NFS plugin).
3.The slow operation of the NFS
Optimize the mounting parameters (see the table above) and:
- πΉ Connect to a 5 GHz network (2.4 GHz gives high latency).
- πΉ Turn off power saving for Wi-Fi in the settings MIUI.
- πΉ Reduce rsize/wsize to 4096 if cliffs are observed.
How to check the speed of NFS?
How to protect your NFS- server
NFS is the default default to transmit data without encryption. On a local network, this is not critical, but if you have risks (such as public Wi-Fi), take action:
- π Limit access to /etc/exports specific IP: /mnt/nfs_share 192.168.1.100(rw) 192.168.1.101(ro)
- π Use VPN (e.g., WireGuard) to tunnel traffic NFS.
- π Turn off export for superuser: remove no_root_squash to /etc/exports.
- π Set up a firewall on the server: sudo ufw allow from 192.168.1.100 to any port nfs
β οΈ Warning: If you connect to NFS via the mobile Internet (3G/4G/5G), all data will be transmitted in plain form. In this case, be sure to use VPN or alternative protocols (WebDAV + HTTPS).