我正在尝试使用 debian 内核启动操作系统(linux 内核),因此我需要使用 initramfs(因为所有内容都是作为模块构建的)。但是在启动到 initramfs 之后,它似乎没有将 /sys/blocks 填充为:
# mdev -s
“未能”用设备填充 dev (/dev/sd[az][0-9])。
那么我应该如何正确填充“/sys”?我正在使用 qemu 启动系统并将原始图像用作“hd”。
注意:
* 这不是 debian(或任何其他发行版),我的 initramfs 是从头开始创建的
* 我正在使用 mdev
* /init 脚本如下所示:
mount -n -t proc none /proc
mount -n -t sysfs none /sys
mkdir /.root
mdev -s
mount -n -t $rootfstype $device /.root
umount /proc
umount /sys
exec switch_root /.root $init $@
编辑:我的问题不是填充开发,如有必要,可以手动完成,只需查看“/sys”并使用“mknod”。问题是“/sys”缺少设备“/sys/block/sd[az][0-9]”。
dmesg:https
://bin.privacytools.io/?d50e11eea81d8158#1ga51UE+NI6nX49SbkdjGitXOyZpalWUu2I3BuEMx+o=
(因为我从 qemu 诅咒中复制了它,我可能错过了一些东西)
要使用
mdev
,您需要CONFIG_UEVENT_HELPER=y
在内核配置中有一个命令,并且在您的mdev -s
:资料来源:Gentoo 维基
默认的 Debian 10 内核没有
CONFIG_UEVENT_HELPER
设置,因此mdev
不能使用它。相反,它有,CONFIG_DEVTMPFS=y
所以你可以这样做:...在切换到真正的根文件系统完成后,您可以再次挂载
devtmpfs
文件系统: