NFS 搭建rootfs

一 安装 NFS

$ sudo apt-get install nfs-kernel-server
$ sudo apt-get install nfs-common

二 配置/etc/exports

$ sudo vi /etc/exports
文本末添加
/home/aston/rootfs/rootfs *(rw,sync,no_root_squash,
no_subtree_check)
然后在终端执行 $chmod 777 -R /home/aston/rootfs/rootfs
$ sudo showmount -e
显示 clnt-create : RPC : Program not registered
$ sudo exportfs -r 更新
$ sudo showmount localhost -e
显示
Export list for 192.168.0.109
/home/aston/rootfs/rootfs *

三 启用

$ sudo /etc/init.d/nfs-kernel-server restart 重启 nfs 服务
显示如下
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon... [ OK ]
* Starting NFS kernel daemon [ OK ]
挂载测试
$ mount -t nfs -o nolock 192.168.0.109:/home/aston/rootfs/rootfs /opt
执行后,进入/opt 目录中,如果可以看到/home/aston/rootfs/rootfs 中
的内容,则说明 nfs 搭建成功!

不用的时候可以取消挂载:
umount /opt

[在uboot中更改bootargs为nfs启动]

setenv bootargs root=/dev/nfs nfsroot=192.168.0.109:/home/aston/rootfs/rootfs ip=192.168.0.20:192.168.0.109:192.168.0.1:255.255.255.0::eth0:off  init=/linuxrc console=ttySAC2,115200

测试报错

VFS: cannot open root device "nfs" or unknown-block(0,255)
解析:没有在kernel中配置nfs相关配置驱动
解决:
1、配置网络部分,主要是使能CONFIG_IP_PNP以在2中能够看到Root 
file system on NFS选项
Networking support 
    Networking options 
        TCP/IP networking
                IP: kernel level autoconfiguration
                    [*] IP: DHCP support
                    [*] IP: BOOTP support

2、配置开启nfs服务
File systems  --->  
    Network File Systems  --->
    <*> NFS client support 
    [*] NFS client support for NFS version 3
    [*] NFS client support for the NFSv3 ACL protocol extension 
    [*] NFS client support for NFS version 4 (EXPERIMENTAL) 
    [*] NFS client support for NFSv4.1 (DEVELOPER ONLY) 
    [*] Root file system on NFS  
    更改之后,make -j4 重新烧录kernel即可

坑人集锦

setenv bootargs root=/dev/nfs nfsroot=192.168.0.109:/home/aston/rootfs/rootfs ip=192.168.0.20:192.168.0.109:192.168.0.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC2,115200

老师讲ubuntu14.04 网卡使用eth0对照ifconfig的第一个。
那么我就想ubuntu16.04 ifconfig之后对应的网卡是ens33 结果这个位置不应该改成ens33 嘛
结果不对显示的错误是:
VFS: cannot open root device “nfs” or unknown-block(0,255)
我就感觉不对,先怀疑是16.04 和14.04的nfs重启命令不一样。结果不是。
就用14.04 重新装上之后,发现如果bootargs设置的不对就到最后一句卡死了。才发现是bootargs的问题。最后才想到eth0 我改成了ens33 .结果改过来就对了。

猜你喜欢

转载自blog.csdn.net/m0_37182543/article/details/79595190