12.6 Creating and Using Floppy Disks

Contributed by Julio Merino.

Floppy disks are, nowadays, an old-fashioned medium to store/share data. Although, there are still some times when you need to use them, because you do not have any other removable storage media or you need to use what you have saved in them on any other computer.

This section will explain how to use floppy disks in FreeBSD, that is, formating and copying/restoring data from them. But... I really have written this to help you about how to create forced-size floppies.

12.6.1 The device

Floppy disks are accessed through entries in /dev (like any other device). To access the raw floppy disk you can use /dev/fdX, where X stands for the drive number, usually 0. When the disk is formatted you can use /dev/fdX, or whichever of the other devices named /dev/fdXY, where Y stands for a letter. These are all the same.

Other important devices are /dev/fdX.size, where size is a floppy disk size in kilobytes. These entries are used at low-level format time to determine the disk size.

Sometimes you will have to (re)create these entries under /dev. To do it, you can issue:

    # cd /dev && ./MAKEDEV "fd*"

Note: In FreeBSD 5.0, devfs(5) will automatically manage device nodes in /dev, so use of MAKEDEV is not necessary.

12.6.2 Formatting

A floppy disk needs to be low-level formated before it can be used. This is usually done by the vendor but you may want to do it to check media integrity or to force the disk capacity to be bigger.

To format the floppy at a low-level fashion you need to use fdformat(1). This utility expects the device name as an argument. We will use those /dev/fdX.size devices, which will allow us to format the floppy to its real size, or force them. So you insert a new 3.5inch floppy disk in your drive and issue:

    # /usr/sbin/fdformat /dev/fd0.1440

This will take a while... You should notice any disk error here (this can help you determining which disks are good or bad).

To force the floppy disk size, we will use other entries in /dev. Get the same floppy and issue:

    # /usr/sbin/fdformat /dev/fd0.1720


It will take some more time than before (forced disks are slower). When it finishes, you will have a 1720kb floppy disk, but for the moment you will not notice any difference. You may use other disk sizes that you can find in /dev, but the most stable/compatible is the 1720kb for 3.5inch disks.

12.6.3 The disklabel

After low-level formatting the disk, you will need to place a disklabel on it. This disklabel will be destroyed later, but it is needed by the system to determine the size of the disk and its geometry later.

The new disklabel will take over the whole disk, and will contain all the proper information about the geometry of the normal or forced floppy. Take a look to /etc/disktab now; you will see geometry values of all kinds of floppy disks.

You can run now disklabel(8) like:

    # /sbin/disklabel -B -r -w /dev/fd0 fdsize

Replace fdsize with fd1440, fd1720 or whichever size you want. The last field instructs disklabel which entry to take from /etc/disktab to use.

12.6.4 The file system

Now your floppy is ready to be high-level formated. This will place a new file system on it, which will let FreeBSD read and write to the disk. After creating the new file system, the disklabel is destroyed, so if you want to reformat the disk, you will have to recreate the disklabel another time.

You can choose now which file system to use on your floppy. You can use UFS or FAT, though UFS is not a good idea for floppies. Choose FAT which is nice for floppies.

To put a new file system on the floppy do this:

    # /sbin/newfs_msdos /dev/fd0

As we created a disklabel before, newfs(8) will be able to fetch disk data and construct the new file system. And now, your disk is ready for use.

12.6.5 Using the floppy

You have two choices to use the floppy. You can either mount the disk with mount_msdos(8), or you can use mtools. Mtools are great, but you will need to install them from the ports system.

Try it; issue a mdir. If you forced the disk, you will notice its extra size!

A last note about forced disks: they are compatible with practically all other operating systems without any external utility to read/write them. Microsoft systems will recognize them without problems. But note that there may be times when the floppy drive itself is not able to read them (this may happen with very old drives).

This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.