将磁盘映像刻录到 USB

将磁盘映像刻录到 USB

我正在跟进制作简单引导加载程序的指南。它生成一个文件disk.img

$ dd if=/dev/zero of=disk.img bs=1024 count=1440
$ dd if=vbr.bin of=disk.img count=512 conv=notrunc
$ file disk.img
disk.img: DOS/MBR boot sector

运行qemu-system-i386并正常qemu-system-x86_64启动disk.img,显示所需的文本。

我希望能够启动我的实际的PC进入这个“操作系统”。我想我可以简单地运行:

$ dd if=disk.img of=/dev/sdc1

...然后重新启动我的电脑,Boot from USB在 BIOS 中进行选择,但我收到此错误:

Invalid partition table!

然而,运行qemu-system-i386 /dev/sdcqemu-system-x86_64 /dev/sdc工作正常。

如何写入disk.img我的 USB 记忆棒,以便它能够从我的实际 BIOS 启动?

答案1

由于某种原因,我所采取的创建步骤disk.img使其disk.img只能正确写入软盘。但是,完全消除图像文件(直接写入 USB)是有效的(确保您使用的/dev/sdX是而不是/dev/sdXY):

$ dd if=/dev/zero of=/dev/sdc bs=1024 count=1440
$ dd if=vbr.bin of=/dev/sdc count=512 conv=notrunc

相关内容