Apr 231999

Creating boot floppies for FreeBSD

One of the most common and oft-misunderstood steps in installing FreeBSD.  But it’s quite straight forward.

Note that 3.1 and above needs two floppies.  Previous versions used only one floppy.

What are boot floppies for?

The boot floppy contains a minature version of FreeBSD.  Just enough for it to see the disk, the network, and to transfer the files it needs in order to install the full version of the operating system.

Where do you get the files?

You’ll either be installing from CD-ROM or the Internet.  In either case, each FreeBSD release you will find a floppies directory and a tools directory.  These contain the files you need, but you don’t need everything in those directories.

If you have a CD-ROM, it will be on the first CD.

When installing from the Internet, you can choose an FTP site from Official mirrors.

The instructions

The instructions for creating boot floppies are floppies/README.TXT in the installation set you are using.  For example, ftp://ftp.FreeBSD.ORG/pub/FreeBSD/releases/i386/3.4-RELEASE/floppies/README.TXT contains the instructions for 3.4-RELEASE.

Note that the files you are copying are not DOS files so you can not use regular copy procedures to put them on the floppy.  Remember to use the fdimage.exe tool as found in the tools directory.

How I did it

For this example, I assume you are installing 3.1-RELEASE.

I always find it easiest to create boot floppies using my NT box.  I used FTP to copy files from pub/FreeBSD/release/3.1-RELEASE/floppies.  In that same directory you will find README.TXT.  Please read it.  It contains the instructions for creating floppies.

I downloaded the following files from the FTP site onto my drive:


Then I followed the instructions in README.TEXT (see previous paragraphs for the location of this file) and created the two floppies.  With 2.2.*, only one floppy was needed.  With 3.*, you need two floppies.  However, you can create a single floppy if you use one of those high capacity floppies.  See the instructions for details.


The following two command will create boot floppies for you.  Use one command on each floppy (i.e. put kern.flp on one, mfsroot.flp on the other).   This step assumes you have downloaded all files to the same directory (in this case, C:\TEMP but you can use whatever directory you wish).
C:\TEMP>fdimage kern.flp a:

<put a new floppy in the drive>

C:\TEMP>fdimage mfsroot.flp a:

With the above method, I’ve always been above to create boot floppies.


Under FreeBSD, it seems to take about 50 seconds to create each floppy.

Here’s what a sucessful creation looks like:

# dd if=kern.flp of=/dev/fd0c
2880+0 records in
2880+0 records out
1474560 bytes transferred in 193.898431 secs (7605 bytes/sec)  

<put a new floppy in the drive>

# dd if=mfsroot.flp of=/dev/fd0c
2880+0 records in
2880+0 records out
1474560 bytes transferred in 193.197363 secs (7632 bytes/sec)
Don’t use the raw device under FreeBSD.  If you do, here’s what you’ll get:
# dd if=kern.flp of=/dev/rfd0
dd: /dev/rfd0: Input/output error
1+0 records in
0+0 records out
0 bytes transferred in 2.711716 secs (0 bytes/sec)

Common errors

Defective floppies.  If you get *any* errors when writing to or reading from the floppies, get new floppies and start again.

If you are creating floppies from DOS, and you get told a file is too big, you probably downloaded the file in ASCII mode, not binary mode.  Try again:

E:\FreeBSD>fdimage kern.flp a:
kern.flp - File is too big

Here are the incorrect file sizes which led to the above error:

06-12-00  12:56p             1,479,370 kern.flp
06-12-00  12:56p             1,477,679 mfsroot.flp

And these are the correct file sizes:

06-12-00  01:00p             1,474,560 kern.flp
06-12-00  01:00p             1,474,560 mfsroot.flp