![启动自定义最小 Linux 发行版时出错:无法挂载根文件系统](https://linux22.com/image/1616750/%E5%90%AF%E5%8A%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9C%80%E5%B0%8F%20Linux%20%E5%8F%91%E8%A1%8C%E7%89%88%E6%97%B6%E5%87%BA%E9%94%99%EF%BC%9A%E6%97%A0%E6%B3%95%E6%8C%82%E8%BD%BD%E6%A0%B9%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.png)
最近我关注了一篇介绍如何构建自己的最小 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
脚本将负责查找根设备并安装它(也可以使用模块)。