Linux
内核源码里面 Documentation/filesystems/nfs/ nfsroot.txt
讲解 nfs
挂载根文件系统。
一、nfs环境搭建
1、安装nfs服务
sudo apt-get install nfs-kernel-server
2、nfs共享目录建立
sudo mkdir /home/onlylove/linux/nfs
sudo chmod 777 /home/onlylove/linux/nfs
3、配置 NFS 服务
1、打开 etc/exports
文件
sudo vi /etc/exports
2、进入 etc/exports
文件,在最后添加如下内容
/home/onlylove/linux/nfs *(rw,sync,no_root_squash)
*表示允许所有的网络段访问
rw 表示访问者具有可读写权限
sync 表示将缓存写入设备中,可以说是同步缓存的意思
no_root_squash 表示访问者具有 root 权限。
4、重启 NFS 服务器
sudo /etc/init.d/nfs-kernel-server restart
5、查看 NFS 共享目录
showmount -e
二、挂载参数配置
root=/dev/nfs nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>] ip=<client-ip>:<server-ip>:<gwip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>
当引导加载程序(bootloader
)加载一个linux
内核时,需要知道使用的是什么根文件设备(root fs device
)。在使用nfsroot
时,需要知道从哪儿获取服务器地址和可挂载为根文件的目录名。可以通过以下内核命令行参数来设置nfsroot
:
root=/dev/nfs
启动虚拟NFS
设备(pseudo-NFS-device
)所必需的参数。需要注意,/dev/nfs
不是一个真实的设备,它只是一个告诉内核使用NFS
功能来替换真实设备的一个符号。
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
<server-ip>
指定NFS
服务器的IP
地址。默认IP
地址是从'ip'
参数中获取的。该参数允许IP
自动配置与NFS
使用不同的服务器。
<root-dir>
: 将挂载为根文件系统的服务器端目录名。
<nfs-options>
: 规范的NFS
选项。所有选项通过逗号(’,’)来分隔。
ip=<client-ip>:<server-ip>:<gwip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>
<client-ip>
: 客户端的IP
地址。
<server-ip>
: NFS
服务器的IP
地址。
<gw-ip>
: 如果服务器位于不同的网段,那么需要通向IP
地址相应的网关。
<netmask>
: 本地网络设备的子网掩码。如果没有指定,设备的子网掩码将从客户端IP
地址的派生地址获取。
<hostname>
: 客户端名。
<device>
: 所使用的网络设备名。
<autoconf>
: 使用自动配置。
<dns0-ip>
: IP
地址的第一个命名服务器。
<dns1-ip>
: IP
地址的第二个命名服务器。
示例:
root=/dev/nfs nfsroot=192.168.6.129:/home/onlylove/linux/nfs,proto=tcp rw ip=192.168.6.200:192.168.6.129:192.168.6.2:255.255.255.0::eth0:off