我正在尝试使用自定义内核在虚拟磁盘映像中运行发行版,以便我可以实验和调试内核。我跟着这制作磁盘映像,然后在其中安装 Debian。现在我尝试使用以下命令运行发行版:-
qemu-system-i386 -hda debian.img -kernel ../linux-3.6.11/arch/i386/boot/bzImage -append "root=/dev/sda1"
令我失望的是,它只是给出了内核恐慌 - 不同步:VFS:无法在未知块(8,1)上安装根文件系统。我该如何解决这个问题?就内核调试而言,我是否走在正确的道路上?
答案1
我认为您不必立即开始调试内核。此错误消息意味着内核无法安装您请求的分区/
。例如,如果您给它一个空磁盘映像(我的直觉是这就是您的情况),就会发生这种情况 - 虚拟机中的内核看到一个未分区的驱动器,不存在/dev/sda1
只是/dev/sda
.要解决此问题,请按照您使用的指南中的说明进行操作 - 下载可启动 ISO 映像并使用它将系统安装到 VM 映像中。当使用原始磁盘映像时,可以直接使用gdisk
、fdisk
或等实用程序对其进行分区parted
。
另一种可能性是,您正在尝试安装内核没有驱动程序的文件系统。当使用一个内核时,通常会发生这种情况,该内核在 initrd 上的可加载模块中具有大多数驱动程序,并且 initrd 未加载(因此内核缺乏理解特定文件系统的能力)。