首先,生成空白软盘镜像:
dd if=/dev/zero of=data.img bs=512 count=2880
(当然也可以用bochs 自带的工具bximge,先fd,点Enter。 )
使用 losetup 命令,将 data.img 作为 loop device 使用:
sudo losetup /dev/loop0 data.img
然后,格式化这个 loop device:
sudo mkfs.msdos /dev/loop0
检查文件系统:
sudo fsck.msdos /dev/loop0
删除 loop device:
sudo losetup -d /dev/loop0
这样一个软件镜像就制作好了,挂载到/mnt/floppy下就可以随意的读写:
sudo mount -o loop data.img /mnt/floppy
sudo cp file.c /mnt/floppy
sudo umount /mnt/floppy
但是这样还不可以引导,
需要写一个简单的引导程序, 编译后生成 boot , 大小不能超过512Byte,然后
dd bs=512 if=boot of=/dev/loop/0 count=1
把这个引导程序写入软盘镜像的0扇区。
这样一个可以引导的软盘镜像就制作好了。
加载到bochs,中就可以看到停留在
Booting form floppy....