是否需要用/etc/fstab挂载devtmpfs?

是否需要用/etc/fstab挂载devtmpfs?

我正在为 aarch64 开发一个类似 Linux 的操作系统,基于 Raspberry Pi 3(型号 B+)的 5.6.4-v8+ 内核。

内核配置选项包括:

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

可以验证系统是否已有效安装。

dmesg | grep devtmpfs
[0.071] devtmpfs: initialized
[2,653] devtmpfs: mounted

并且还可以确认系统已安装在/dev:

df -h
Filesystem Size Used Avail Used%  Mounted on
devtmpfs   424M    0  424M    0%  /dev.

另一方面,在文件中/etc/fstab我有以下几行:

devtmpfs   /dev   devtmpfs   mode=0755,nosuid   0   0

我已经做了删除这一行的测试,结果是开发者文件系统安装也没有任何问题/dev。所以看来没有必要要求通过挂载文件系统系统表,因为看起来内核会处理它。

真的有必要包括开发者文件系统挂载到 fstab 中?

谢谢你!

答案1

事实上,在某些情况下内核确实会自动挂载devtmpfs/dev

如果在构建内核时CONFIG_DEVTMPFS_MOUNT设置为,则生成的内核将在挂载根文件系统后自动尝试挂载- 除非内核使用 initramfs 作为初始根文件系统。ydevtmpfs/dev

这完全是可选功能。你已经戴上了它,而文森特在他们的测试中似乎已经把它关掉了。 (或者 Vincent 使用的是 initramfs。)

drivers/base/Kconfig更多细节。

答案2

据我所知,内核不会自动挂载devtmpfs。它必须从用户空间完成,要么“手动”(启动脚本之一包含类似:)mount -t devtmpfs none /dev,要么通过 fstab。

在我的自定义 Linux 系统(raspberry Zero/4 和 86_64)上,我不依赖基于 /etc/fstab 的安装机制。如果我mount -t devtmpfs none /dev从 /etc/profile 中删除该命令,我的 /dev 目录仍为空。

因此,回答您的问题:您不必在 fstab 中包含 devtmpfs 挂载,但您(用户,而不是内核)必须自己挂载它。

相关内容