1

我有一个从 initramfs 映像引导的嵌入式 Linux(vanilla、3.3.8、i486、Vortex86dx)系统。

我有一个 IDE 闪存盘,在 /dev/hda1 和 /dev/hda2 有两个分区。

它有一个静态的 /dev 目录。

当我启动时,/dev/hda1 条目不再存在。/dev/hda1 似乎已被内核删除(?)。

如果我从 NFS 根文件系统引导我的目标,我不会遇到同样的问题。

我使用 Buildroot 通过 device_table_dev.txt 文件创建 /dev 目录。例如

# IDE Devices
/dev/hda    b   640 0   0   3   0   0   0   -
/dev/hda    b   640 0   0   3   1   1   1   4

我从 Buildroot 输出/图像中检查了 rootfs.tar.gz。/dev 目录包含 /dev/hda1:

brw-r-----  1 root root  3,   0 Jul  2 13:44 hda
brw-r-----  1 root root  3,   1 Jul  2 13:44 hda1
brw-r-----  1 root root  3,   2 Jul  2 13:44 hda2
brw-r-----  1 root root  3,   3 Jul  2 13:44 hda3
brw-r-----  1 root root  3,   4 Jul  2 13:44 hda4

我在目标上的启动后目录列表(在 rcS 中完成)如下所示:

brw-r-----   1 root   root    3,   0 Jul  2 12:44 hda
brw-r-----   1 root   root    3,   2 Jul  2 12:44 hda2
brw-r-----   1 root   root    3,   3 Jul  2 12:44 hda3
brw-r-----   1 root   root    3,   4 Jul  2 12:44 hda4

/dev/hda1 丢失。

如果我运行 Busybox 实用程序“mdev -s”,它会在目标上恢复 /dev/hda1 并正常工作。例如我可以安装它

有没有人见过这种行为?

内核会从 /dev 中删除条目吗?

4

2 回答 2

0

如果使用静态设备表,则应在内核配置中停用:devtmpfs、mdev 和 udev。

于 2014-01-13T12:59:36.050 回答
0

也许您应该检查初始脚本(/etc/init.d/、/etc/inittab ),看看它是否重新挂载了 /dev/ 文件系统。重新安装可能会删除您的 /dev/条目。

“mdev -s”触发了冷插拔事件并为您重新创建了条目。

于 2012-07-13T05:41:50.687 回答