启动自定义最小 Linux 发行版时出错:无法挂载根文件系统

启动自定义最小 Linux 发行版时出错:无法挂载根文件系统

最近我关注了一篇介绍如何构建自己的最小 Linux 发行版的文章(Linux期刊文章

经过多次尝试,我终于将操作系统放到了 USB 驱动器上。首次启动后,我看到了以下消息:

not syncing: VFS: Unable to mount root fs on unknown-block(8,0)

我不确定我什么时候失去线索了。我该如何解决这个问题?

操作系统的文件树: https://gist.github.com/JanikBot/25200ae9bd8e225b587daff3822ca611

操作系统档案: https://www.dropbox.com/s/dous4fi4vax5wjt/horst.tar.xz?dl=0

Grub.cfg:

set default=0
set timeout=5

set root=(hd0)

menuentry "Horst" {
        linux   /boot/vmlinuz-5.4.10 root=/dev/sda ro quiet
}

答案1

此时,根文件系统的文件树并不相关,因为错误实际上是关于内核的无法访问首先是根文件系统。

由于您没有 initramfs 存档,因此内核本身必须能够自行挂载根文件系统。确保内核已编译了访问 USB 存储设备所需的所有选项,并注意它们不能编译为模块(因为它们保存在根文件系统中)。

你可能至少需要这些:

CONFIG_USB_EHCI_PCI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_BLK_DEV_SD=y

还要注意,如果磁盘已分区(大多数 USB 记忆棒都是如此),那么可安装设备就是,而不仅仅是。/dev/sda1/dev/sda

如果你做过有一个 initramfs(通过“initrd=”指定),那么它的/init脚本将负责查找根设备并安装它(也可以使用模块)。

相关内容