LINUX移植——根文件系统制作(nfs服务器搭建)

2019-07-12 17:24发布

接着上一篇文章来吧,这篇文章主要跟大家分享一下制作linux的根文件系统,说是分享,其实就是在网上收集各种资料,然后自己做实验、总结,再把正确的方法跟大家分享喽,我也是学习者嘛。所以,要是有的地方有什么不太对的,请大家指出啊。好吧,说说今天的本文的主要内容吧。 1.nfs服务器的搭建。 一.nfs服务器的搭建     首先,说一下咱们的开发环境是在第一篇文章说的,可能有的问题跟开发的环境有具体的关系。第一个问题,为什么要首先搭建nfs服务器呢?它跟根文件系统的制作有什么具体的关系呢?前边几篇文章,从最基本的内核移植开始,到移植led和网卡,但编译好的内核咱们始终是用tftp服务器,通过u-boot来下载到系统的内存中,然后跑起来的,同样咱们的根文件系统也需要通过在主机上建立nfs来下载到tiny210的内存中的,这样做的主要原因是咱们现在还处于移植阶段,这样能给移植带来很大的方便。下面具体说说搭建nfs服务器的吧。 1.通过rpm -qa | grep nfs来查看是否安装了服务器,我电脑上的截图如下:
如果你通过命令查看,跟上面的截图是一样的效果,证明你已经安装了nfs服务器,这一般是在装操作系统是通过选项配置来完成的,如果通过命令查看时,不是以上的没有以上的两相,这个你在网上搜搜,解决的办法应该很多的。这里我就不讲了。 2.启动nfs服务器,命令:service nfs start  ,正常情况如下图所示:
3.设置共享目录 在linux的终端上通过:gedit /etc/exports 命令来设置咱们要建立的服务器的共享目录,截图如下: 从图中可以看到两行了吧,这两行就表示两个共享的文件夹,其中第一行就是放咱们待会制作好的根文件系统的目录了,就是在主机的根目录下建立的/nfsroot/rootfs文件夹。这两行当中,每一行末尾都有*(rw,sync,no_root_squash),下面具体解释一下吧。 *:表示所有的客户端都可以挂载次目录  rw:可读 可写 sync:同步 no_root_squash:表示挂载的此目录客户端都可以有root权限 4.通过命令:exportfs -ra 使刚才的设置生效,主要是exportfs,如果没出现任何说明或错误时,证明已经生效了。如果正常通过了,你可以查看查看咱们刚才设置的共享目录,命令:exportfs -v ,可以看看我的截图:
5.在主机上测试nfs服务器是否可以正常挂载文件或文件夹 在终端中输入命令:mount -t nfs localhost:/opt/FriendlyARM/tiny210/linux/rootfs_qtopia_qt4 /mnt/ 简单说一下命令吧,大家应该还记得/opt/...../rootfs_qtopia_qt4这个就是咱们设置nfs服务器时设置的目录吧,对,/mnt/目录就是根目录下的目录,文件夹前面的命令就是nsf服务器的挂载命令了。执行上述命令前,你可以看看rootfs_qtopia_qt4目录下的文件,当执行完之后,你再看看/mnt/目录下是否和rootfs_qtopia_qt4的文件是否一样,要是一样证明nfs在本机上的测试已经通过了。 6.linux主机和开发板之间测试nfs服务器是否能工作正常 在测试能否正常工作之前,应该首先测试测试开发板和主机是否能ping通,要是ping不通,就查看是否ip地址在同一个段。ping通之后,你就可以测试了,因为咱们首先得保证硬件和网络设置没什么问题啊,要不然出了问题究竟是硬件问题、网络设置问题还是nfs服务器问题可能就一时无头绪了。下面说说手动挂载目录的命令格式:$ sudo mount [Server IP]:/[share dir] [local mount point] ,例如可以在开发板上运行命令: mount -t nfs 192.168.186.30:/opt/FriendlyARM/tiny210/linux/root_nfs_qtopia_qt4 /mnt/ ,如果在开发板下看不到挂载的目录,可以把上述命令改成: mount -t nfs -o nobloc 192.168.186.30:/opt/FriendlyARM/tiny210/linux/root_nfs_qtopia_qt4 /mnt/ 试试,或者看看你主机上的防火墙是否已经关闭了,正常情况下不会出什么问题。当然了,什么共享目录以及ip地址都要按照你电脑的实际来。 上面简单说了说nfs服务器的配置,可能说的比较笼统,不过详细。不过就讲到这吧,因为咱们的主要目的是制作根文件系统,好吧,下一篇咱们来制作咱们自己的根文件系统!