Floppy disks

Even tough floppies are now historic these days, but in certain situations they have to be still used:

  1. BIOS update of the motherboard

  2. Creating boot floppy disks to load the Microsoft CD device driver to be able to install a Windows Installation CD.

  3. Get data out of a old instrument as storage oscilloscopes and logic analyzers

  4. Clean up your home and find a historic floppy

Check if your BIOS has the floppy controller enabled. Configure the BIOS to try booting from the floppy so you can make sure that the hardware works.

Important

Since floppies are historic, it might be that their support has to be disabled in the default installation. To have the fdformat command on Gentoo the fdformat useflag has to be set. This then enables floppy support in the sys-apps/util-linux package.

Enable floppy kernel driver (called floppy) and fat in the kernel and set a code page as NLS code-page ISO 8859-1 in the kernel. File system, native language support, code-page select at least US or many others with the M option. See also documentation coming with the kernel source: /usr/src/linux/Documentation/blockdev

Many /dev files might exist for the outdated floppies as ls /dev/fd* shows. It is wise to used always the one corresponding to the desired size as /dev/fd0u1440, since /dev/fd0 might fail or not do anything at all. On a newer system just /dev/fd0 might appear.

Format

The command fdformat /dev/fd0 low-level formats a floppy disk.

And now you need to high level format it. For a Linux ext2 floppy do: mkfs.ext2 /dev/fd0

For a DOS floppy emerge sys-fs/dosfstools and format it: mkdosfs /dev/fd0 or if this command does not exist use mkfs.vfat /dev/fd0

fdisk is also a way to create floppies.

Mount

mount /dev/fd0 /mnt/floppy

then type mount | grep fd0 so verify that it is mounted and unmount it

umount /dev/fd0

To mount it, verify your/etc/fstab and then:

Alternatively you can emerge mtools allows to do floppy commands without mounting the floppy.

Floppy image files

Instead of dealing with physical floppies, you can simply handle a floppy image. Those image files are an exact copy of a physical floppy. Floppy images be used to archive floppies, started using grub to do BIOS updates or have a simple DOS, they can easily be used on virtual machines (Virtual box).

Instead of having a floppy also a floppy emulation can be used. The link http://www.fdos.org/bootdisks/ contains floppy images for FreeDos and has also a CD builder to create a DOS CD with the application you desire. Download and unzip. Copy it to /boot and add in your grub.conf:

title=Freedos
root (hd0,0)
kernel /memdisk
initrd /FDINSTALL.144 

or for grub 2

menuentry "FREEDOS" { 
  linux16 /memdisk raw
  initrd16 /FDSTD.288
}

memdisk is the floppy emulator and can be obtained by emerge syslinux and cp /usr/share/syslinux/memdisk /boot when done good old Ctrl Alt Del brings you back. Nice but how to add stuff to the boot disk?

Create a mounting point mkdir /mnt/floppy and mount the image:

mount -o loop /boot/FDINSTALL.144 /mnt/floppy

Note

Running FreeDOS via Grub is not an emulation, FreeDOS runs directly without Linux. You could use it to update your BIOS having just DOS utilities.

Convert a floppy to a image file:

cat /dev/fd0 > floppy.img

If it fails on an old Floppy, try it with an other floppy drive. If you are lucky it is a track alignment problem and a different floppy drive might read it.

Copy image file to a floppy:

cat floppy.img > /dev/fd0

or

dd if=floppy.img of=/dev/fd0 count=1 bs=1440k

Create a empty image file (emerge dosfstools first):

dd bs=512 count=2880 if=/dev/zero of=floppy.imgmkfs.msdos floppy.img

or

/sbin/mkfs.msdos -C /path/floppy.img 1440

Mount a floppy image file

mount -o loop floppy.img /mnt/floppy/


Linurs startpage