---
title: "FreeBSD 2.0 Installation Guide"
sidenav: download
---

= FreeBSD 2.0 Installation Guide

....
Welcome to FreeBSD 2.0, the complete 4.4 BSD Lite based OS for Intel (or
compatible) based PCs.

There are several documents on the floppy and a couple of on-line help
screens that will greatly assist you in installing your system as you go
along.  Nonetheless, initial user testing has shown that some of the
terminology used may be difficult for newcomers to UN*X to understand, so
we've prepared this step-by-step guide explaining a typical installation.
You may find it useful to print this out and keep it handy as you go
through the installation, or at least read through it once carefully so
that some of the prompts and questions you encounter do not come as
complete surprises.

Before you do anything, make two 1.44MB floppies from the two image files
you'll find in the floppies/ directory - boot.flp and cpio.flp.  If you're
reading this under DOS, you can do it in 1 easy step, or 3 in case this
doesn't (for some weird reason) work:

1. If you're reading this file after typing "go", simply ESC back out for
   a moment and select the "makeflp" batch file to make the two floppies.
   This will invoke the DOS formatter to format the floppies and then
   attempt to write the two disk images onto them.  If this doesn't work,
   follow steps 2 through 4:

2. Use the DOS format command to format 2 NEW floppies.  A lot of problems
   have been caused by people using old and defective floppies, and much
   grief can often be saved by simply using new, or at least trusted,
   media.

3. Insert the first floppy and type:

        tools\dos-tool\rawrite floppies\boot.flp a:

4. Insert the second floppy and type

        tools\dos-tool\rawrite floppies\cpio.flp a:

You're now prepared to boot from the boot floppy and begin the installation.


The installation starts with the following screen:

  +-------------------------- Welcome to FreeBSD! ---------------------------+
  | Use ALT-F2 and ALT-F1 to toggle between debugging                        |
  | information screen (ALT-F2) or this dialog screen (ALT-F1)               |
  |                                                                          |
  | Please select one of the following options:                              |
  | +----------------------------------------------------------------------+ |
  | | 1. README               READ THIS FIRST.                             | |
  | | 2. Release Notes        Read the 2.0 Release Notes (recommended).    | |
  | | 3. Troubleshooting      Read this in case of trouble.                | |
  | | 4. Partitions and MBRs  Verbose description of how these work.       | |
  | | 5. COPYRIGHT            Read FreeBSD Copyright Information.          | |
  | | 6. Install              Proceed with full installation.              | |
  | | 7. Fixit                Repair existing installation (`fixit' mode). | |
  | | 8. Quit                 Don't do anything, just reboot.              | |
  | +----------------------------------------------------------------------+ |
  +--------------------------------------------------------------------------+
  |                          <  OK  >      <Cancel>                          |
  +--------------------------------------------------------------------------+


You can move the arrow keys up and down to highlight the various options,
selecting an option by hitting return when its line is highlighted.  You
can also type the number of the option you want (1 - 7) and hit return.
It's recommended that you read the README at a minimum, though the Release
Notes are also helpful.  This may seem a like a lot to read, but if you are
new to FreeBSD then these notes are invaluable for explaining the system
and are highly recommended.

When you're done reading docs, select Install (5) to proceed to the next
screen.

This next screen is the disk editor screen, which looks like this:

------------------------------------------------------------------------------
FreeBSD 2.0-RELEASE Installation -- Diskspace editor

Disks         Total   FreeBSD                    |You should now assign some
                                                 |space to root, swap, and
 0: sd0     2006 MB      0 MB                    |(optionally) /usr partitions
 1: sd1      496 MB      0 MB                    |Root (/) should be a minimum
                                                 |of 18MB with a 30MB /usr
Filesystems  Type        Size  Action Mountpoint |or 50MB without a /usr.
                                                 |Swap space should be a
                                                 |minimum of 12MB or RAM * 2
                                                 |Be sure to also (A)ssign a
                                                 |mount point to each one or
                                                 |it will NOT be enabled.
                                                 |
                                                 |We suggest that you invoke
                                                 |(F)disk, (W)rite the bootcode
                                                 |then (D)isklabel your disk.
                                                 |If installing on a drive
                                                 |other than 0, also read the
                                                 |TROUBLESHOOTING doc first
Commands available:
(H)elp  (T)utorial  (F)disk  (D)isklabel  (P)roceed  (Q)uit

Enter Command>

------------------------------------------------------------------------------

As we can see, this system has two drives, sd0 and sd1.  On an IDE system,
these would show up as "wd0" and "wd1" (or, on a single drive system, just
sd0 or wd0).  We can see that neither of them has any space assigned to
FreeBSD (they each show 0MB under the FreeBSD column), so we follow the
instructions on the right hand side of the screen and invoke the (F)disk
editor by typing `f':

Enter Command> F

We're now prompted with the drive number to (F)disk, so we enter 0 for
the first drive:

Enter number of disk to Fdisk> 0

This now brings us to the FDISK editor screen, which looks like this:

------------------------------------------------------------------------------
FreeBSD 2.0-RELEASE Installation -- Diskspace editor -- FDISK

Disk: sd0   Geometry:  2006 Cyl * 32 Hd * 64 Sect = 2006Mb = 4108600 Sect

1 Boot?="No"    Type="Primary" 'big' DOS (> 32MB)
  Phys=(c0/h1/s1..c299/h63/s32)   Sector=(32..614399)
  Size="300" MB, 299 Cylinders + 31 Tracks + 32 Sectors

2 Unused


3 Unused


4 Unused


Commands available:
(H)elp   (T)utorial   (D)elete   (E)dit   (R)eread   (W)rite MBR   (Q)uit
(U)se entire disk for FreeBSD   (G)eometry   Write MBR (B)ootcode
Enter Command>

------------------------------------------------------------------------------

We see that drive 0 has a DOS partition (also called a "slice" in FreeBSD
parlance, to distinguish it from a FreeBSD partition) on it which is 300MB
in size (don't worry if the numbers you see are much smaller than these - I
have a pretty large 2.1GB disk! :-).  Let's also say we want to allocate
the rest to FreeBSD, so to do this we want to (E)dit one of the existing
slices.  We can see that 2, 3, and 4 are unused so let's pick the first
unused one, which is 2 (if we wanted to replace an existing operating
system slice with FreeBSD, we'd pick its number instead).  We first type
`E' to edit a slice entry:

Enter Command> E

And we're prompted for a slice to edit.  We type 2:

Edit which Slice> 2

Now we're prompted for the size of the new slice, the default for which is
all remaining space on the disk.  Let's say that we don't want to allocate
ALL the space on the disk, but want to reserve 400MB for some other future
OS.  The total amount of free space left is 1706MB, which is the default
value selected for us, so we backspace over it and enter 1306:

Size of slice in MB> 1306

Now we're asked for the type of the slice.  The type is what tells the PC
what sort of slice this is.  DOS primary slices are, for example, type 6.
FreeBSD slices are type 0xa5 (hexadecimal).  If we wanted to reserve space
at this time for some other type of OS like Linux or OS/2, and we knew
their slice type (0x82 for Linux and 0x0A for OS/2, just in case you're
interested), we could also do that from this editor, but we're only
interested in FreeBSD for now so we accept the default.

Type of slice (0xa5="FreeBSD")> 0xa5

The next prompt asks if we want to make this slice bootable by
default, which we do so we accept the default:

Bootflag (0x80 for YES)> 0x80

At this point we come back to the main screen, which now shows a new entry
for slice 2:

------------------------------------------------------------------------------
FreeBSD 2.0-RELEASE Installation -- Diskspace editor -- FDISK

Disk: sd0   Geometry:  2006 Cyl * 32 Hd * 64 Sect = 2006Mb = 4108600 Sect

1 Boot?="No"    Type="Primary" 'big' DOS (> 32MB)
  Phys=(c0/h1/s1..c299/h63/s32)   Sector=(32..614399)
  Size="300" MB, 299 Cylinders + 31 Tracks + 32 Sectors

2 Boot?="Yes"   Type="FreeBSD"/NetBSD/386BSD
  Phys=(c300/h0/s1..c1023/h31/s0)   Sector=(614400..3289087)
  Size="1306" MB, 1306 Cylinders

3 Unused



4 Unused



Commands available:
(H)elp   (T)utorial   (D)elete   (E)dit   (R)eread   (W)rite MBR   (Q)uit
(U)se entire disk for FreeBSD   (G)eometry   Write MBR (B)ootcode
Enter Command>

------------------------------------------------------------------------------

At this point we're happy with the slices on the first drive, so we type
`w' to write the new information out.  It also prompts to make *sure* we
really want to do this, so we backspace over the default of `N' and type
`y'<return>.  And this point, we also can decide whether or not we want a
"boot manager" installed.  A boot manager is a little utility that prompts
you for the operating system you want to boot every time you reset or power
on your PC, and can be a very handy way of sharing your computer between
FreeBSD and some other OS, like Linux or DOS.  We decide that we want to
have this feature, so we `b' to write the special MBR (B)ootcode out to the
disk.  This does not harm any of the other operating systems on the disk,
as it's written to a special area.  Now we exit this screen by typing `q',
for (Q)uit.

This brings us back to the main prompt.  If we wanted to allocate any
additional slices on other drives, we also could re-invoke the (F)disk
editor by typing `f' again and giving a different drive number at the
prompt, but we'll assume for now that we've only got one disk and want to
go on.  Typing `d' now enters the (D)isklabel screen, which prompts us for
the drive to write a disklabel onto, like the FDISK editor.  We type `0'
for the first drive and hit return.  This brings us to the DISKLABEL editor
screen, which looks like this:

------------------------------------------------------------------------------
FreeBSD 2.0-RELEASE Installation -- Diskspace editor -- DISKLABEL

Part  Start       End    Blocks     MB  Type    Action  Mountpoint
a         0         0         0      0  unused
b         0         0         0      0  unused
c   1433600   4108287   2674688   1306  unused          <Entire FreeBSD slice>
d         0   4108599   4108600   2006  unused          <Entire Disk>
e         0         0         0      0  unused
f         0         0         0      0  unused
g         0         0         0      0  unused
h        32    614399    614368    300  MSDOS






Total size:       2674688 blocks   1306Mb
Space allocated:        0 blocks      0Mb

Commands available:
(H)elp  (T)utorial  (E)dit  (A)ssign  (D)elete  (R)eread  (W)rite  (Q)uit
(P)reserve  (S)lice
Enter Command>

------------------------------------------------------------------------------

The BSD partitions, a - h, are FreeBSD's way of dividing up a physical
slice into multiple filesystems.  Every FreeBSD system should have, at
minimum, a root filesystem and a swap partition allocated.  The root
filesystem is called "/", and is generally put on partition `a' by
convention.  Swap partitions always go on `b', and the `c' and `d'
partitions are special and point to the entire FreeBSD slice and the entire
disk, respectively.  `c' and `d' cannot and should not be allocated to
actual filesystems.

We also see that partition h points conveniently to the DOS slice,
which we can also assign to a location in our filesystem hierarchy
to conveniently share files between FreeBSD and DOS.  More on this in
a moment.

A typical filesystem layout might look like this:

/   20MB
swap    32MB
/usr    120MB

/, or the root filesystem, contains system files and some temporary space.
It should be at least 18MB in size, though a little extra doesn't hurt.
Swap space is one of those "it never hurts to have too much" sorts of
items, though if your system isn't too heavily used then it's probably not
that important to have lots and lots of it.  A good rule of thumb for swap
is that you want a minimum of 12MB of it, and the overall calculation
should be the amount of memory you have multiplied by two.  That is to
say that if you have 16MB of memory, then 32MB of swap is good.

If you've got several drives, you can also allocate some swap on each one
and spread the load out a little.  On my personal system, I've got 32MB of
main memory and 64MB of swap on both drives for a total of 128MB of swap.
This gives me 4X memory for total program swapping, which gives me the
ability to run some pretty big programs!  Emacs and the X Window System, in
particular, can be real swap hogs.

In any case, we'll assume for the moment that we're still configuring the
ideal system and we'll allocate 64MB of swap space, using the MEM * 2
equation.  If you only had 8MB of memory, you'd allocate 16MB of swap
instead.

The second filesystem of importance is /usr, which contains further system
binaries and all of the bundled user binaries.  /usr should be at least
80MB in size to hold all of the important binaries, though if you plan on
having a big /usr/local or on loading the X Window System (also known as
XFree86 3.1) distribution then you should either create separate
filesystems for them, or you should make /usr a lot bigger.

It's also possible to skip making /usr altogether and simply make a large
root (/) filesystem.  Since /usr fits "underneath" /, a missing /usr won't
cause any problems if / is large enough to hold the contents for both.  In
any case, it's a user decision and tends to be driven by convention more
than anything else.  For the purposes of this installation guide, we'll
assume a 200MB /usr, 100MB of space allocated for local binaries, which
we'll mount on /usr/local, and the rest for user home directories, which
we'll mount on /usr/users.  Don't be put off by the size of these numbers!
You can make a system fit into less space, but since we're dividing up the
ideal 2GB dream disk, we might as well do it right! ;-)

Getting back to the relevant part of the DISKLABEL screen again, we remember
that it looked like this:

Part  Start       End    Blocks     MB  Type    Action  Mountpoint
a         0         0         0      0  unused
b         0         0         0      0  unused
c   1433600   4108287   2674688   1306  unused          <Entire FreeBSD slice>
d         0   4108599   4108600   2006  unused          <Entire Disk>
e         0         0         0      0  unused
f         0         0         0      0  unused
g         0         0         0      0  unused
h        32    614399    614368    300  MSDOS

So we'll first allocate some space on partition `a' for that root partition
by typing `e', for (E)dit partition.  This asks us which partition we want
to change the size of, so we type `a':

Change size of which partition> a

And it prompts us for the amount of space, so we'll pick 20MB for a nice
comfortable root filesystem:

Size of partition in MB> 20

Now we see the display change to:

Part  Start       End    Blocks     MB  Type    Action  Mountpoint
a   1433600   1474559     40960     20  4.2BSD
...

The system shows us where the partition starts and stops and indicates that
it's a 4.2BSD filesystem, which is correct (it's really a 4.4 BSD file
system, in actuality, but the two are similar enough to share the same
label).

We do the same for swap by typing `e' again and modify the `b' partition
by filling in 64 for the size, to allocate 64MB of swap.

Finally, remembering that `c' and `d' are special, and not for our use, we
change the size of `e' to 200 for our future /usr, `f' to 100 for our
/usr/local, and `g' to the rest of the disk for /usr/users.  When we're
done, the top of the disklabel screen should look like this:

Part  Start       End    Blocks     MB  Type    Action  Mountpoint
a   1433600   1474559     40960     20  4.2BSD
b   1474560   1605631    131072     64  swap
c   1433600   4108287   2674688   1306  unused          <Entire FreeBSD slice>
d         0   4108599   4108600   2006  unused          <Entire Disk>
e   1605632   2015231    409600    200  4.2BSD
f   2015232   2220031    204800    100  4.2BSD
g   2220032   4108287   1888256    922  4.2BSD
h        32    614399    614368    300  MSDOS

We left `h' alone, since we actually want to be able to share files with
our DOS partition.  At this point, we want to type `w' for (W)rite to write
out the new size information to disk.

You probably also noticed by now that "/", "/usr" and the other filesystem
names we've been talking about don't appear anywhere in the above list.
Where are they?  This brings us to the next stage, which is to (A)ssign the
new partitions to actual filesystem mount points.  A filesystem in
FreeBSD doesn't actually appear anywhere until we "mount" it someplace, a
convention from the old days when disks were actually large removable packs
that a system operator physically mounted on a large washing-machine sized
disk drive spindle!  As you can see, not much has changed today! :-)

We'll proceed then by starting at the top with the first partition and
assigning it to the root filesystem (/) by typing `a', for (A)ssign, and
then typing `a' again, for partition a:

Assign which partition> a

When it asks us for the name of the mount point, we type /:

Directory mountpoint> /

And the display adjusts accordingly to show us the new state of affairs:

Part  Start       End    Blocks     MB  Type    Action  Mountpoint
a   1433600   1474559     40960     20  4.2BSD  newfs   /
..

The Action field also now shows "newfs", which means that the partition
will be created anew.  For root filesystems, this is the default and cannot
be changed, but other partitions can be optionally "Preserved" by typing
`p' for (P)reserve.  There are very few situations in which we'd want to do
this, but if, say, we were actually installing a disk from an older FreeBSD
machine which we wanted to mount into our new system but NOT erase, we
could do it this way.  For now, let's assume that this is a new
installation and we want all the filesystems to be created from scratch.
We thus go through and assign the rest of the filesystems to their
respective /usr, /usr/local and /usr/users mountpoints.  We also assign the
`b' partition, which doesn't take a mountpoint (and won't prompt for one
when we (A)ssign it), but needs us to tell it that we're ready to use it
for swap.

When we're done, the top of the screen should look something like this:

Part  Start       End    Blocks     MB  Type    Action  Mountpoint
a   1433600   1474559     40960     20  4.2BSD  newfs   /
b   1474560   1605631    131072     64  swap    swap    swap
c   1433600   4108287   2674688   1306  unused          <Entire FreeBSD slice>
d         0   4108599   4108600   2006  unused          <Entire Disk>
e   1605632   2015231    409600    200  4.2BSD  newfs   /usr
f   2015232   2220031    204800    100  4.2BSD  newfs   /usr/local
g   2220032   4108287   1888256    922  4.2BSD  newfs   /usr/users
h        32    614399    614368    300  MSDOS

As a final bonus, we'll assign the DOS partition to be mounted on /dos.  We
do this with (A)ssign as we did the others, and we also notice that the
system is smart enough to see that it's not a FreeBSD partition and we
DON'T want to newfs it, we want to simply mount it:

h        32    614399    614368    300  MSDOS   mount   /dos

At this point, our system is all set up and ready to go!

We type `q' to go back to the main menu and then type `p' to (P)roceed to
the next phase of installation.

We're now given one last chance to back out of the install, and we hit
return if we're sure, otherwise we type <Tab> to select "No" and hit return
to consider our settings again before going on.

The rest of the installation is pretty much self-explanatory.  After the
filesystems are initially created and populated, you'll be prompted to
reboot from the hard disk.  Do so and provide the cpio floppy when asked.

When the initial flurry of welcome and informational prompts has died down,
you'll come to a screen asking you to load one or more distributions.  At
the minimum, select "bindist" to load the basic system.  If you're loading
from other than CDROM media, follow the appropriate paths through the
installation process.

If you're loading from CDROM, select CDROM as the media type and select the
type of CDROM you've got (SCSI or Mitsumi).  When it asks you for an
installation subdirectory, simply hit return if you've got the 2.0 CD from
Walnut Creek CDROM.  You may select additional optional packages to load
after the bindist extracts, provided that you've got the space for it.  Use
the "?diskfree" menu option from time to time to keep an eye on your free
space.  When you're done, you'll be asked a few more basic questions and
then that's it!  You've got FreeBSD on your hard disk.

If you should need to partition another drive or install other packages
later, you may re-invoke the sysinstall program by typing /sbin/sysinstall.
The same familiar prompts will then come up.

Good luck!

                    Jordan Hubbard
                    for Walnut Creek CDROM
                    and the FreeBSD Project.


....

link:../../[Release Home]
