如何将自定义引导加载程序放入软盘映像中

如何将自定义引导加载程序放入软盘映像中

所以我正在创建一个自定义引导加载程序:

nasm -f bin boot.asm -o boot.bin

它是 512 字节。如何将其放入软盘映像并使用 qemu 启动?

我试过:

dd if=boot.bin of=floppy.img bs=512 count=2880
dd if=floppy.img of=floppy2.img bs=512 count=1
qemu-system-i386 -fda floppy2.img

但大小floppy2.img被调整为 512 字节,而不是正常大小 1.44MB。这是正确的方法吗?我宁愿不使用任何花哨的工具,如果可以用 来完成dd,那就太好了。

答案1

如果唯一的问题是图像文件太短,您可以尝试向文件附加 2879*512 零字节floppy.img

dd if=/dev/zero count=2879 bs=512 >> floppy.img

另一方面,如果您需要在软盘映像上存储除引导扇区之外的其他内容,则必须在其上创建 FAT 文件系统。实现此目的的方法是使用循环设备。

sudo losetup /dev/loop0 floppy.img
sudo mkfs -t fat /dev/loop0
sudo mount /dev/loop0 somedir

其中somedir是挂载的空目录/dev/loop0。您现在可以将所需的文件复制到该目录。

相关内容