全志V3s之NFS连接ubuntu22.04

1、问题一:

c 复制代码
[  100.329728] VFS: Unable to mount root fs via NFS, trying floppy.
[  100.336262] VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6
[  100.343580] Please append a correct "root=" boot option; here are the available partitions:
[  100.351978] b300        15558144 mmcblk0
[  100.351982]  driver: mmcblk
[  100.358777]   b301           32768 mmcblk0p1 0edd73af-01
[  100.358779]
[  100.365591]   b302        15523840 mmcblk0p2 0edd73af-02
[  100.365593]
[  100.372399] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[  100.380655] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.2.0-licheepi-zero+ #4
[  100.387777] Hardware name: Allwinner sun8i Family
[  100.392510] [<c010ed14>] (unwind_backtrace) from [<c010b72c>] (show_stack+0x10/0x14)
[  100.400251] [<c010b72c>] (show_stack) from [<c0734290>] (dump_stack+0x84/0x98)
[  100.407472] [<c0734290>] (dump_stack) from [<c011dddc>] (panic+0x110/0x2fc)
[  100.414431] [<c011dddc>] (panic) from [<c0a0136c>] (mount_block_root+0x1a0/0x288)
[  100.421908] [<c0a0136c>] (mount_block_root) from [<c0a01598>] (mount_root+0x144/0x160)
[  100.429817] [<c0a01598>] (mount_root) from [<c0a01704>] (prepare_namespace+0x150/0x194)
[  100.437815] [<c0a01704>] (prepare_namespace) from [<c074c6e4>] (kernel_init+0x8/0x10c)
[  100.445727] [<c074c6e4>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[  100.453284] Exception stack(0xc3833fb0 to 0xc3833ff8)
[  100.458331] 3fa0:                                     00000000 00000000 00000000 00000000
[  100.466498] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  100.474664] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[  100.481283] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0) ]---

出现以上问题,主要是NFS版本的问题。

NFS是一种网络文件系统,它允许计算机通过网络共享文件和目录。

在Linux内核中,NFS实现作为内核模块存在,可以在需要时加载。NFS在Linux内核的许多版本中都得到了支持,从2.0版本开始就有了NFSv2,2.2版本开始支持NFSv3,2.6版本开始支持NFSv4。此外,还有一些可选的NFS相关内核模块,例如nfsd(NFS服务器),nfs_acl(NFS访问控制列表)和lockd(NFS文件锁定)。这些模块可以通过编译内核或者作为模块编译后加载到内核中,以提供支持NFS所需的功能。因此,具体使用哪个版本的内核取决于您的应用程序和环境需要的功能和兼容性。

默认情况下,在 Ubuntu 22.04 上禁用 NFS 版本 2。 版本 3 和 4 已启用。为使用NFS进行连接,可以使用以下指令进行设置:

c 复制代码
console=ttyS0,115200 root=/dev/nfs nfsroot=XXXXXXXXX:XXXXXXXXX/nfs/rootfs,v3 proto=tcp rw ip=XXXXXXXXXXXXXXXXXXX::eth0:off init=/linuxrc 

将xxxxxx改为自己的IP即可。

2、问题二:

c 复制代码
[    4.610226] Run /linuxrc as init process
[    4.662182] random: fast init done
mount: you must be root
mount: you must be root
mkdir: can't create directory '/dev/pts': Permission denied
mkdir: can't create directory '/dev/shm': Permission denied
mount: you must be root
hostname: sethostname: Operation not permitted
Starting logging: OK
Initializing random number generator... [    5.634798] random: dd: uninitialized urandom read (512 bytes read)
done.
Starting network: ip: RTNETLINK answers: Operation not permitted
FAIL
can't open /dev/console: Permission denied
can't open /dev/console: Permission denied
can't open /dev/console: Permission denied
can't open /dev/console: Permission denied
can't open /dev/console: Permission denied
can't open /dev/console: Permission denied

出现以上问题,主要是由于初始化时权限不够造成的,可以在U-Boot环境变量的bootargs变量中添加init=/linuxrc 并将linuxrc文件的权限设置为777。

相关推荐
程序员清风6 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
readhere7 小时前
从ZYNQ7000开发板,学会启动嵌入式Linux系统——入门学习:EBAZ4205篇目录
linux·启动·嵌入式linux·zynq7000·ebaz4205
打工仔折腾 AI8 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
yyuuuzz8 小时前
跨境站点日志时区混乱的排查记录
运维·服务器·网络·云计算·aws·1024程序员节
‎ദ്ദിᵔ.˛.ᵔ₎9 小时前
关于Linux 线程局部存储的认识
linux·运维
数字新视界10 小时前
一体化机柜在数据中心运维中的创新应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
运维行者_11 小时前
网络监控工具怎么选?从设备监控到智能运维的能力清单
运维·服务器·开发语言·网络·人工智能·支持向量机·php
小小de风呀11 小时前
de风——【从零开始学习Linux】(九):进程基础 —— 从冯诺依曼体系到 fork 创建进程
linux·学习
2401_8685347811 小时前
陈冲2026年上海纽约大学全英文毕业演讲
服务器·网络