所以我正在创建一个自定义引导加载程序:
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
。您现在可以将所需的文件复制到该目录。