【问题标题】:Kernel emulation with Qemu使用 Qemu 进行内核仿真
【发布时间】:2012-07-19 03:54:47
【问题描述】:

我实际上是在尝试使用 Qemu 和 busybox 模拟 linux 内核。 到目前为止,我制作了这个内核映像: http://depositfiles.com/files/l9x9veg09 并使用以下参数启动 Qemu: qemu-system-x86_64 -m 256 -s -hda rootfs.img -kernel linux-2.6.34.12/arch/x86/boot/bzImage -append "root=/dev/sda\init=/bin/sh" 但是一旦内核启动,我会收到一条消息: 内核恐慌。没有找到初始化。尝试将 init= 选项传递给内核... 我虽然在参数中添加“init=/bin/sh”可以解决问题,但它没有。我是这个领域的初学者。有人可以帮我弄这个吗?谢谢

【问题讨论】:

    标签: linux-kernel virtualization qemu busybox


    【解决方案1】:

    使用 Busybox 时,您希望将 -initrd initramfs 而不是 init=/bin/sh 传递给 qemu。试试这个

    qemu-system-x86_64 -m 256 -s -hda rootfs.img -kernel linux-2.6.34.12/arch/x86/boot/bzImage -initrd initramfs -append "root=/dev/sda"
    

    【讨论】:

    • initramfs 是一个初始 ram 磁盘,在启动时加载到内存中。您可以查看如何使用busybox here 创建它。如果您有 mkinitramfs 可用,则可以使用它来创建 initramfs 文件。
    【解决方案2】:

    我终于通过使用静态链接(在网站上找到)的预构建版本的 busybox 使它工作。旧版本是动态链接的,将其编译为静态可执行文件真的很痛苦(glibc 似乎不再支持静态链接了)。

    【讨论】:

      猜你喜欢
      • 2020-08-01
      • 2021-07-09
      • 2023-03-29
      • 2012-12-17
      • 2013-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多