我看见这问题和我做了几乎相同的事情,但我在配置中启用了 initrd 以使用临时根文件系统并且没有其他修改,但我仍然收到此错误:
qemu -kernel linux-3.16.1/arch/x86/boot/bzImage
关于导致此错误的原因或如何修复它有什么建议吗?
答案1
启动失败的原因与上述问题相同 -仅仅启动一个内核而不做任何其他事情并没有多大用处。您必须提供磁盘。或 initrd 映像。但仅仅启用 initrd 并不能神奇地为您提供 initrd 映像。您需要准备一个并将其提供给 qemu,如下所示:
qemu-system-i386 -kernel <your kernel> -initrd <your initrd image>
您很可能还需要提供磁盘。
有十几种方法可以为 qemu 创建和使用磁盘,因此这里我仅解释一种非常简单的方法(请参阅这里了解更多)。
首先创建一个文件,例如
qemu-img create -f raw mydisk.img 1G
这将创建一个 1 GiB 磁盘。
你可以像这样使用它:
qemu <other options> -hda mydisk.img
如果您的 initrd 需要磁盘上的某些内容(例如可用的系统),您需要首先将其安装到本地主机来填充它,例如:
losetup /dev/loop0 mydisk.img
您可以/dev/loop0
像任何其他块设备一样对待,即您可以fdisk
在其上运行等。创建分区和文件系统后,您可以安装它们并放置您需要的东西。
另一种方法是使用安装 ISO 映像并将其作为 CD-ROM 附加,例如
qemu <other options> -hda mydisk.img -hdb myiso.img -boot d
这将引导您进入虚拟 CD-ROM 上的系统,从那里您可以根据需要修改磁盘。