内核编译(七):构建跟文件系统(四):网络文件系统NFS

我们前几节课完成了根文件系统的基本构建。然而,对于每次要对文件系统进行修改时,都要重新去制作影响文件,这样比较麻烦。这里,我们可以使用网络文件系统NFS,我们可以让开发版通过网络来挂载我们虚拟机上的文件系统,我们对文件系统进行修改时就不用每次都制作映像并烧录了。

      首先,我们得在虚拟机上的Linux开启nfs服务,并进行测试。我打开配置文件/etc/exports,并填照它的格式填写我们要挂接的目录:

然后,我们在重启一下这个服务,使用命令:/etc/init.d/nfs_kernel-server restart即可。接着我们看下他是否可以挂接自己:

可以看到,挂载成功。接下来,我们也让我们的开发版安排上!我首先得在单板上创建mnt这个目录。然后我们得修改我们的U-Boot命令行参数,让它可以直接从NFS中启动,关于nfs这个参数怎么编写,这里我给出格式:

nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>

noinitrd root=/dev/nfsnfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>

[<server-ip>:] 服务器IP。

<root-dir> 服务器上哪个目录设置成被单板挂载。

[<nfs-options>] 用中括号表示的参数可以省略。尖括号的不可省略。

<client-ip> 表示单板的IP。

<server-ip> 服务器IP。

<gw-ip> 网关,单板和服务器同一网段。

<netmask> 子网掩码

<hostname> 不关心这个,不要。

<device> 网卡,如 eth0\eth1

<autoconf> 自动配置,这个不需要。写成 off

所以,我们的命令行参数应该写成:

noinitrd root=/dev/nfsnfsroot=192.168.1.25:/home/book/Desktop/myfilesystem ip=192.168.1.24:192.168.1.25:192.168.1.25:255.255.255.0::eth0:offinit=/linuxrc console=ttySAC0,115200

我们重新设置一下参数,然后save,重启开发版并boot后,看下效果:

可以看到,成功启动,接下来我们在虚拟机那边创建一个文件夹,然后再看看效果:

可以看到,这边也成功地多了一个文件夹,这样,我们的网络文件系统就挂载成功啦!当我们断开网的时候,发现文件系统就不起作用了…:

猜你喜欢

转载自blog.csdn.net/xiaokangdream/article/details/80458505