OS Development - booting from floppy drive using qemu

Cygnus picture Cygnus · Nov 13, 2013 · Viewed 12.1k times · Source

I have been reading BrokenThorn's OS development tutorial and am at the part of creating and loading the second stage bootloader. The tutorial is for Windows, but I am doing this in Linux(Ubuntu 13.04).

This is what I have done:

  • Created file floppy.img under ~/Documents/floppy with the mkfs.vfat command
  • Compiled by boot.asm file using nasm giving me boot.bin
  • Then I ran this command : dd if=boot.bin of=~/Documents/floppy/floppy.img bs=512 count=1

Thus I have the floppy image with the first stage bootloader. On starting that using qemu, it works fine.

However, after I create the second stage bootloader, (if I am correct)I would have to mount the floppy.img and copy stage 2 on to the mounted filesystem. In such a case, how can one boot a mounted floppy using qemu ? Is it even possible ? If not, how do I work with the second stage bootloader.

Please forgive me for any stupid assumption/question as I am new with this.

Answer

fNek picture fNek · Dec 30, 2013

Where is your problem? You mount the image:

mount -oloop ~/Documents/floppy.img /mnt/floppy

Copy the stage2:

cp stage2.bin /mnt/floppy

Unmount it:

umount /mnt/floppy

And launch it with QEMU:

qemu -fda ~/Documents/floppy.img

Voilà!