【问题标题】:Using qemu to boot OpenSUSE (or any other OS) with custom kernel?使用 qemu 通过自定义内核启动 OpenSUSE(或任何其他操作系统)?
【发布时间】:2013-10-12 15:41:01
【问题描述】:

Duplicate; 找不到答案,所以在这里发帖。

我想使用我的主机上的自定义内核映像以访客身份运行 OpenSUSE。我正在尝试:

$ qemu-system-x86_64 -hda opensuse.img -m 512 -kernel ~/kernel/linux-git/arch/x86_64/boot/bzImage -initrd ~/kernel/linux-git/arch/x86_64/boot/initrd.img -boot c

但它会启动到 BusyBox。使用 uname -a 显示 Linux(无)。此外,使用-append "root=/dev/sda"(如上面链接中的建议)似乎不起作用。如何让内核映像使用 OpenSUSE 启动?

我已将 OpenSUSE 安装到 opensuse.img 中,并且:

$ qemu-system-x86_64 -hda opensuse.img -m 512 -boot c

使用股票内核启动它。

【问题讨论】:

    标签: linux unix linux-kernel operating-system qemu


    【解决方案1】:

    大多数虚拟机都是从磁盘映像或 ISO 文件启动的,但 KVM 可以直接将 Linux 内核加载到内存中,从而跳过引导加载程序。这意味着您不需要包含内核和引导文件的映像文件。相反,您可以像这样直接运行内核:

    qemu-kvm -kernel arch/x86/boot/bzImage -initrd initramfs.gz -append "console=ttyS0" -nographic

    这些标志直接从主机文件系统加载内核和 initramfs,无需生成磁盘映像或配置引导加载程序。

    可选的 -initrd 标志加载一个 initramfs 供内核用作根文件系统。

    -append 标志添加内核参数并可用于启用串行控制台。

    -nographic 选项将虚拟机限制为仅串行控制台,因此将所有测试内核输出保留在终端中,而不是图形窗口中。

    看看下面的链接。它有更多信息[感谢写这一切的人] http://blog.vmsplice.net/2011/02/near-instant-kernel-development-cycle.html

    【讨论】:

    • 嘿!这就是我现在只运行内核所做的事情。但我也希望它能够与其他一些操作系统(如 openSUSE 或 debian)一起运行。 qemu 可以吗?
    • 我的猜测是,如果您使用“-append”为内核提供正确的输入选项,它应该可以工作。你能检查一下你是否能够从busybox shell挂载你的suse.img并从那里启动吗?
    【解决方案2】:

    通常用于 raspberry pi 或任何板子之类的 arm 架构。

    使用自定义内核启动

    qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda 2013-05-25-wheezy-raspbian.img

    where -hda your suse.img here 你必须找到你的 rootfs 存在于哪个分区中,你可以检查

    fdisk -l 你的镜像

    如果只有一个分区然后通过 /dev/sda 或者如果它在第二个 /dev/sda2

    我认为这里不需要 initrd 映像。通常它会挂载主 rootfs,所以当你启动它时不需要主 rootfs。

    所以试试这个 qemu-system-x86_64 -hda opensuse.img -m 512 -kernel ~/kernel/linux-git/arch/x86_64/boot/bzImage -append "root=/dev/sda" -boot c

    注意检查你的 rootfs 存在于哪个分区,然后通过 /dev/sda*

    我不确定你只是尝试以上一个。你还提到uname -a

    给出linux none这是bcoz,在配置你的内核时你必须提到名字,否则它会默认为none

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-12
      • 2011-11-17
      • 2021-05-29
      • 1970-01-01
      • 2022-08-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      相关资源
      最近更新 更多