如何在 Linux 中创建用于 QEMU 的图像文件?

How to create an image file for use with QEMU in Linux?

我一直在关注在线教程并构建了一个保存为 boot.bin 的 512 字节引导加载程序。

我还有一个第二阶段的引导加载程序编译并保存为2ndstage.bin

我编写的引导加载程序使得第二阶段不必直接位于内存中的第一阶段之后,因为它通过文件名搜索它。

我如何在 Linux 中将两个 bin 文件组合成某种文件(可能是图像),以便我可以与 QEMU 一起使用以便 运行 我的引导加载程序?

使用 dd if=/dev/zero of=image.raw bs=1M count=50 创建一个原始磁盘映像文件,这将使一个 50 兆字节的映像文件从零开始。

如果你想在块设备而不是文件上操作,你可以将 image.raw 作为块设备回环挂载(阅读 losetup 手册页)

您可以使用常规的 fdisk 或 sfdisk 实用程序对文件或环回设备进行分区。然后你可以使用其他 dd 选项(阅读它的手册页)或其他选项将你的 bin 文件放入磁盘映像中的正确位置。

之后,撤消环回设备(如果您创建了环回设备),并使用 image.raw 文件作为您的磁盘设备启动您的 qemu / qemu-kvm 会话。如果你的引导加载程序正确,qemu bios 将启动它。