内核和 QEMU:无法挂载 root fs 错误

Pau*_*esC 7 linux debugging kernel qemu linux-kernel

我正在尝试使用自定义内核在虚拟磁盘映像中运行发行版,以便我可以试验和调试内核。我按照这个制作了一个磁盘映像,然后将 Debian 安装到它上面。现在我尝试使用以下命令运行发行版:-

qemu-system-i386 -hda debian.img -kernel ../linux-3.6.11/arch/i386/boot/bzImage -append "root=/dev/sda1"
Run Code Online (Sandbox Code Playgroud)

令我失望的是,它只是给了一个内核恐慌-不同步:VFS:unable to mount root fs on unknown-block(8,1)。我该如何解决这个问题?就内核调试而言,我是否走在正确的道路上?

pet*_*rph 4

我认为您不必立即开始调试内核。此错误消息意味着内核无法安装您请求的分区/。例如,如果您给它一个空磁盘映像(我的直觉是这就是您的情况),就会发生这种情况 - 虚拟机中的内核看到一个未分区的驱动器,不存在/dev/sda1只是/dev/sda. 要解决此问题,请按照您使用的指南中的说明进行操作 - 下载可启动 ISO 映像并使用它将系统安装到 VM 映像中。当使用原始磁盘映像时,可以直接使用gdiskfdisk或 等实用程序对其进行分区parted

另一种可能性是,您正在尝试安装内核没有驱动程序的文件系统。当使用一个内核时,通常会发生这种情况,该内核在 initrd 上的可加载模块中具有大多数驱动程序,并且 initrd 未加载(因此内核缺乏理解特定文件系统的能力)。