内核 sysfs 无法识别存储 kobjects

内核 sysfs 无法识别存储 kobjects

我正在使用 ubuntu 内核 4.xx 和相应的 ubuntu initrd.img,并且它可以工作。但是,我想使用受以下启发的自定义 initramfslfs(linux从头开始)initramfs。内核提取并成功运行我的初始化脚本,包括安装 sysfs。但是 /sys 不会向可用存储公开任何跟踪(存在两个磁盘),因此无法初始化内核根。

问题是什么?

ubuntu 内核附加组件(/ubuntu 目录)是否规定了 initrd 的任何特殊策略?

答案1

在工作系统上,查看 sysfs 中的设备及其device符号链接。这指向父设备,而父设备又可能有自己的父设备,依此类推。为自己编写一个设备及其所有父设备的列表。然后你可以在 initramfs 中检查所有这些。您可能缺少的要求不仅仅是两个磁盘设备。

其次,当您列出设备列表时,请查看driver/module每台设备的 并记下它是什么。这告诉您哪个内核模块正在识别该设备。

udev 应该为您加载内核模块。

不幸的是,LFS initramfs 采用 systemd-udev 并尝试在没有 systemd 的情况下运行它。这是不幸的,因为使用 systemd 会让 systemd-udev 将它遇到的任何错误记录到 systemd 日志中。然后您可以检查日志是否有错误。我不知道 udev 错误日志记录是否在 LFS initramfs 中起作用。

ubuntu 内核附加组件(/ubuntu 目录)是否规定了 initrd 的任何特殊策略?

不。

相关内容