Windows 98 Boot Disks and Linux

If you’ve ever had to reinstall Windows on a computer, be it yours or someone else’s, you probably know that boot disks can be rather useful things to have around. The best kind are the Windows 98 boot disks (IMHO); they fit onto one floppy and give you access to the cdrom even if the computer’s BIOS doesn’t support booting from cdrom.

So what do you do when you need to reinstall Windows and the computer your’re working is a tiny laptop with no floppy, no cdrom and a serious malware overdose? Since the computer supported booting from USB, all I had to do was figure out a way to get the Windows 98 bootdisk on a USB key. I tried several utilities but none worked for me.This is where Qemu and dd come in. Basically, what you do is :

  • Download a Windows 98 Boot Image.
  • Create a Qemu RAW disk image (big enough to hold the bootdisk files and any other files you might need. Mine was about 700MB)
  • Boot up a Qemu virtual machine with the boot image for your floppy device and the disk image as your primary hard drive
  • Use fdisk and format to partition and format the disk image
  • Transfer boot & command system to disk image with sys.
  • Use dd to strip off the first 63 512-byte blocks on the disk image
  • Use dd to copy the disk image to USB Key.

Now for more detailed instructions:

Open a terminal (xterm, konsole, gnome-terminal; whatever you’re comfortable with)

Create a folder to contain all your files
ray@zangetsu:~$ mkdir win98boot
ray@zangetsu:~$ cd win98boot

Download the Windows 98 boot image from here
ray@zangetsu:~/win98boot$ wget http://

Create a 256MB Qemu RAW disk image (or whatever size you need)
ray@zangetsu:~/win98boot$ qemu-img create -f raw drive_c.dsk 256M

Next, we load a virtual machine that boots from the floppy image
ray@zangetsu:~/win98boot$ qemu -fda win98se.img -hda drive_c.dsk -boot a -m 32

Once the VM boots up, you should see something similar to the following:

What we need to do is partition our virtual drive, so
A:\fdisk C:

Enter 1 at the first screen to select the first option (Create a DOS partition or Logical DOS Drive)

Enter 1 at the next screen to Create a Primary DOS partition

Answer yes if fdisk asks you if you want make maximum use of your disk

After fdisk finishes, you will need to restart the VM before you can format your drive.

Just close it and run the following again:
ray@zangetsu:~/win98boot$ qemu -fda win98se.img -hda drive_c.dsk -boot a -m 32

Now you can format:
A:\format C:

Answer yes when asked if you want to proceed with format. After formating is done, you will be prompted to enter a volume label. This is optional.

Next, we transfer system to c:
A:\sys C:

Once that’s done. Close your VM and boot it up once more but without the floppy image this time.
ray@zangetsu:~/win98boot$ qemu -hda drive_c.dsk -m 32

If you did everything right, the windows 98 splash screen should flash briefly and you should get something like this:

Before we can copy the image to our usb drive, we need to modify it a little. This strips off the first 63 blocks of the image( Found this useful piece of info thanks to

http://colinux.wikia.com/wiki/Converting_Distributions)

ray@zangetsu:~/win98boot$ dd if=drive_c.dsk of=boot.img bs=512 skip=63

We can now copy the image to the drive. In this case, my drive happens to be /dev/sdb. You can use dmesg to find out what it is on your machine.
ray@zangetsu:~/win98boot$ dd if=boot.img of=/dev/sdb bs=512
524288+0 records in
524288+0 records out
268435456 bytes (256 MB) copied, 108.920273 seconds, 18.5 MB/s

Voila, you have a working Win98 bootable USB drive. You can now mount the drive and copy whatever else you need onto it. Your results may vary depending on the options you choose but they should be similar to the above.

2 Responses to “Windows 98 Boot Disks and Linux”

  1. Mario says:

    Easier method.

    Just pass -hda /dev/sdb to qemu.

  2. Kwame says:

    @Mario: Hmmmm! True, true. Thanx

Leave a Reply