【系统移植】Linux挂载nfs文件系统

硬件环境:100ask stm32mp157开发板
Ubuntu18.4

使用busybox或buildroot构建文件系统后,将文件系统放在nfs文件夹内

cp rootfs.tar ~/nfs_rootfs/rootfs/
sudo tar -xvf rootfs.tar

解压完后如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OFli9sSC-1681999848065)(image/系统移植/1681998416030.png)]

Linux 内核启动以后是需要根文件系统的,根文件系统存在哪里是由 uboot 的 bootargs 环境变量指定的,它会传递给 Linux 内核作为命令行(command line)参数。

bootargs 保存着 uboot 传递给 Linux 内核的参数, 比如指定 Linux 内核所使用的 console、指定根文件系统所在的分区等,如下面 bootargs 环境变量值:
console=ttySTM0,115200 root=/dev/mmcblk2p3 rootwait rw

bootargs设置格式为

setenv bootargs ‘console=开发板串口号,波特率
root=挂载方式
nfsroot=nfs服务器ip地址:nfs文件系统路径,proto=传输协议 读写权限
ip=开发板ip地址:nfs服务器ip地址:网关:子网掩码::开发板网口:off’ 

本文在uboot设置bootargs为

setenv bootargs 'root=/dev/nfs nfsroot=192.168.31.143:/home/book/nfs_rootfs/rootfs,vers=3 rw ip=dhcp'  
saveenv

执行run bootcmd启动Linux系统,成功挂载服务器的根文件系统,如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w7qnEhzQ-1681999848067)(image/系统移植/1681999151327.png)]

猜你喜欢

转载自blog.csdn.net/m0_61737429/article/details/130277053