If you don’t have your floppy device, /dev/fd0 set up yet

This should be done already since 99.5% of floppies at this time are the same and some reasonable assumptions were possible at install time. First, there should be a device in the /dev/ directory that correctly deals with your particular hardware device. In fact, there are lots of other too, in case you find yourself with a weird floppy drive. The trick is to find the right one. This command will show you floppy devices: ls /dev/fd* Then you would need to associate the correct one with the standard /dev/fd0 device. Heres an example:

# setfdprm -p /dev/fd0 1440/1440

How to low-level format a floppy

fdformat /dev/fd0

Don’t screw this up and put the wrong device!

What about an old floppy (like a DR-DOS boot image from an old 720k disk)? Well, there’s a lot of old fashioned screwy systems out there. This almost worked, but it didn’t boot (hmmm) :

fdformat /dev/fd0h720

Then use dd as described below to move the image on to the disk.

Creating the file system

The fdformat just gets things ready for something useful. Now you have to do the real formatting with the filesystem you want. To make a native Linux filesystem:

mke2fs -c -v -L "SomeName" /dev/fd0

The -c is to do a "bad block" check, the -v is verbose, the -L "name" is to give the floppy a volume label.

Accessing the floppy

After following these steps, you now have a disk with a filesystem on it, but that filesystem still hasn’t been attached or mounted to YOUR filesystem tree. You must now mount the floppies filesystem:

mount -t ext2 /dev/fd0 /mnt/floppy

Where /mnt/floppy is the name of a directory you create (it could be anything you like) that you can access the floppy from. Of course, when you’re done with the floppy, you have to tell Linux to take care of anything it was caching by unmounting it:

umount /mnt/floppy

Dealing with DOS disks

Using the Unix-style file system is great for many reasons like filename flexibility, permission preservation, sensible dates, etc. But unfortunately, there are times when you need to deal with DOS (FAT filesystems) disks. I have no direct experience, but it seems like the mtools are a nice package. There are things like mformat, mcopy, minfo, mdel, mdeltree and many other. I think that if I had to send off a DOS disk to someone, I would use mformat, then mount it (mount -t msdos /mnt/floppy) and then treat it like a normal Linux disk.

Dealing with Recovery/Boot disks

If you have a disk image of some boot disk you like (and this is a good idea!) you can copy the image onto a floppy with this:

dd if=./hal91.img of=/dev/fd0

Conversely if you have a nice boot disk (or a disk with anything on it that you’d like to preserve as an image) do the reverse:

dd if=/dev/fd0 of=./hal91.img

These two options assume that your disk image will be in the current directory and called hal91.img. The size of the image that I got from a floppy was 1,474,560 bytes.

By the way, the Red Hat boot disk says to copy it thusly:

dd if=rescue.img of=/dev/fd0 bs=72k

I don’t know what bs means here (maybe block size?). Anyway, the bs seemed to not be necessary.

This particular boot disk, hal91 is a micro distribution that fits on one disk. It is great except for one little problem - it doesn’t have enough /dev/hda#'s. So if your main Linux setup is on /dev/hda7, like mine is, you’re SOL. I redid it somewhat ditching its impressive, yet weak networking skills in favor of 1. the mknod program and some info on how to use it and 2. vi (it originally comes with joe and/or pico - not my thang.) This is accomplished by mounting the disk (it’s msdos filesystem) and pulling out the tar file /hal91/add.tgz. You can redo this to contain whatever you want that will fit. That’s the trick, of course. When you’re done modifying, put it back as a tar and put it back on the disk. Should work…