qemu无法运行linux内核

qemu无法运行linux内核

我看见问题和我做了几乎相同的事情,但我在配置中启用了 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 上的系统,从那里您可以根据需要修改磁盘。

相关内容