Exporting a Root Filesystem via NFS

To export the precompiled root filesystem via NFS, you must edit the /etc/exports file on your host machine, adding an entry for that filesystem.

  • On a Linux host, it would look something like the following:
    <rfs_dir> 10.0.0.10(rw,no_root_squash)
  • On a Cygwin host, it would look something like the following:
    <rfs_dir> 10.0.0.10(rw,map_static=/etc/nfs/\
       server.map,no_root_squash)

The map_static= parameter translates the user and group ID for the remote system to the correct user and group ID for the local system. This parameter, specifying the UID and GID mappings, is not normally required on a Linux host. However, it is required on a Cygwin host.

Note

If you use a Windows-provided editor to create text files, they might contain DOS-style line breaks. Use the dos2unix utility in Cygwin to convert the files for use in a UNIX-style system. Issue the command dos2unix --help for details about this utility.

This entry consists of two fields:

  • The full path of the directory being exported by the host as the root filesystem for the target.
  • Access information for the exported filesystem, enclosed in parentheses. This consists of the IP address of the target that you want to allow to access the exported filesystem, followed by a description of the type of access that the target will have to the exported filesystem, plus the location of UID and GID mappings (on a Cygwin host).

The IP address of the target reflects the IP address that you will use for your embedded development board. The value shown in the previous example is a commonly used non-routable IP address. You will want to specify the IP address that you have assigned to your embedded development board.

Caution

Using the * wildcard to specify the IP addresses of hosts permitted to access an exported filesystem is extremely insecure and should only be done if you are on a trusted, private, non-routable network and the system exporting the filesystem is not exposed to the Internet. In addition, using * precludes using map_static, which is necessary to boot from the NFS-exported filesystem. Thus, you should only use * for non-root exports.

The parenthesized access-privilege values shown in the previous example should be sufficient. Check the file nfs-server-2.3-*.README for more information if you really want to use a non-standard entry in the /etc/exports file.

These access privileges specify that the target at the given IP address will have read-write access to the exported filesystem, and that the user ID (UID) of the root user on the target will not be prevented from writing or modifying files in the NFS-mounted filesystem.

Use the settings rw and no_root_squash as they are shown in the examples. Also, use the actual IP address and mapping file instead of the values shown in the examples.

If your host supports only one target, the exports file will contain just the entry for that target.