Linux 启动期间使用 busybox 挂载文件系统时发生错误

Linux 启动期间使用 busybox 挂载文件系统时发生错误

我正在开发一个嵌入式Linux系统,它使用busybox作为init。
系统启动时,有两条错误日志如下:

[    3.901185] Run /linuxrc as init process
[    3.909861] process '/bin/busybox' started with executable stack
mount: mounting devpts on /dev/pts failed: No such file or directory
mount: mounting tmpfs on /dev/shm failed: No such file or directory

当我登录到 Linux 并运行“mount”命令后,我得到了以下信息,

# mount
......
devtmpfs on /dev type devtmpfs (rw,relatime,size=41768k,nr_inodes=10442,mode=755)
proc on /proc type proc (rw,relatime)
tmpfs on /tmp type tmpfs (rw,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
sysfs on /sys type sysfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600,ptmxmode=000)  <<<<
tmpfs on /dev/shm type tmpfs (rw,relatime)   <<<<

令我惊讶的是,它们已经安装在那里了!
busybox使用的/etc/fstab如下,

# cat /etc/fstab
# <file system> <mount pt>      <type>  <options>       <dump>  <pass>
/dev/root       /               ext2    rw,noauto       0       1
proc            /proc           proc    defaults        0       0
devpts          /dev/pts        devpts  defaults,gid=5,mode=620,ptmxmode=0666   0       0
tmpfs           /dev/shm        tmpfs   mode=0777       0       0
tmpfs           /tmp            tmpfs   mode=1777       0       0
tmpfs           /run            tmpfs   mode=0755,nosuid,nodev  0       0
sysfs           /sys            sysfs   defaults        0       0

我认为 /dev/pts 和 /dev/shm 出现在系统中可能会有一些延迟,所以我在 busybox 的 mount.c 中添加了延迟,但得到了相同的结果错误

我还尝试通过将这两行移动到文件末尾来编辑 /etc/fstab,但得到了相同的结果错误

然后我将内核命令行更改为“init=/bin/bash”,以便在启动时转到 bash。
在 bash 中,我检查了 /dev/pts 和 /dev/shm,它们不在那里!

我尝试手动安装它们,但仍然遇到“没有这样的文件或目录”的错误。

我不知道为什么会发生这种情况,它看起来无害,但在系统中看到“错误消息”很烦人,所以我想弄清楚并修复它。

答案1

通过 Artem 建议的测试,我找到了错误的根本原因以及如何修复它。

当busybox作为系统中的init进程启动时,它首先/etc/fstab根据文件检查并尝试挂载文件系统。确实没有/dev/shm/dev/pts当时可以通过 Busybox 进行安装,因此 Busybox 对此有所抱怨。

然后/etc/init.d/rcS,它还会挂载一些文件系统,包括/dev/shm/dev/pts。并rcS首先在挂载文件系统之前mkdir /dev/pts/dev/shm这就是为什么没有报告错误,这就是为什么它们甚至被注释掉了/etc/fstab

所以现在我将继续使用rcS他们的坐骑并在 中注释掉它们/etc/fstab

相关内容