使用 busybox 启动 Linux 时挂载文件系统出错

问题描述 投票:0回答:0

我正在开发一个嵌入式 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 中添加了延迟,但得到了相同的error

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

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

我尝试手动挂载它们,但仍然遇到“No such file or directory”的错误。

我不知道为什么会这样,这似乎是无害的,但在系统中看到“错误消息”很烦人,所以我想弄清楚并修复它。

linux mount busybox
© www.soinside.com 2019 - 2024. All rights reserved.