--- 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 > | +--------------------------------------------------------------------------+ 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'. 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 d 0 4108599 4108600 2006 unused 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 d 0 4108599 4108600 2006 unused 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 d 0 4108599 4108600 2006 unused 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 d 0 4108599 4108600 2006 unused 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 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]