Installing FreeBSD So, you would like to try out FreeBSD on your system? This section is a quick-start guide for what you need to do. FreeBSD can be installed from a variety of media including CD-ROM, floppy disk, magnetic tape, an MS-DOS partition and, if you have a network connection, via anonymous ftp or NFS. Regardless of the installation media you choose, you can get started by creating the installation disks as described below. Booting your computer into the FreeBSD installer, even if you are not planning on installing FreeBSD right away, will provide important information about compatibility between FreeBSD and your hardware which may, in turn, dictate which installation options are even possible. It can also provide early clues to any compatibility problems which could prevent FreeBSD running on your system at all. If you plan on installing via anonymous FTP then the installation floppies are all you need to download and create—the installation program itself will handle any further required downloading directly (using an ethernet connection, a modem and ppp dialip #, etc). For more information on obtaining the latest FreeBSD distributions, please see Obtaining FreeBSD in the Appendix. So, to get the show on the road, follow these steps: Review the supported configurations section of this installation guide to be sure that your hardware is supported by FreeBSD. It may be helpful to make a list of any special cards you have installed, such as SCSI controllers, Ethernet adapters or sound cards. This list should include relevant configuration parameters such as interrupts (IRQ) and IO port addresses. If you are installing FreeBSD from CDROM media then you have several different installation options: If the CD has been mastered with El Torrito boot support and your system supports direct booting from CDROM (and many older systems do not), simply insert the CD into the drive and boot directly from it. If you are running DOS and have the proper drivers to access your CD, run the install.bat script provided on the CD. This will attempt to boot into the FreeBSD installation straight from DOS. You must do this from actual DOS and not a Windows DOS box. If you also want to install FreeBSD from your DOS partition (perhaps because your CDROM drive is completely unsupported by FreeBSD) then run the setup program first to copy the appropriate files from the CD to your DOS partition, afterwards running install. If either of the two proceeding methods work then you can simply skip the rest of this section, otherwise your final option is to create a set of boot floppies from the floppies\kern.flp and floppies\mfsroot.flp images—proceed to step 4 for instructions on how to do this. If you do not have a CDROM distribution then simply read the installation boot image information to find out what files you need to download first. Make the installation boot disks from the image files: If you are using MS-DOS then download fdimage.exe or get it from tools\fdimage.exe on the CDROM and then run it like so: E:\> tools\fdimage floppies\kern.flp a: The fdimage program will format the A: drive and then copy the kern.flp image onto it (assuming that you are at the top level of a FreeBSD distribution and the floppy images live in the floppies subdirectory, as is typically the case). If you are using a UNIX system to create the floppy images: &prompt.root; dd if=kern.flp of=disk_device disk_device is the /dev entry for the floppy drive. On FreeBSD systems, this is /dev/rfd0 for the A: drive and /dev/rfd1 for the B: drive. With the kern.flp in the A: drive, reboot your computer. The next request you should get is for the mfsroot.flp floppy, after which the installation will proceed normally. If you do not type anything at the boot prompt which appears during this process, FreeBSD will automatically boot with its default configuration after a delay of about five seconds. As FreeBSD boots, it probes your computer to determine what hardware is installed. The results of this probing is displayed on the screen. When the booting process is finished, The main FreeBSD installation menu will be displayed. If something goes wrong… Due to limitations of the PC architecture, it is impossible for probing to be 100 percent reliable. In the event that your hardware is incorrectly identified, or that the probing causes your computer to lock up, first check the supported configurations section of this installation guide to be sure that your hardware is indeed supported by FreeBSD. If your hardware is supported, reset the computer and when the visual kernel configuration choice is presented, take it. This puts FreeBSD into a configuration mode where you can supply hints about your hardware. The FreeBSD kernel on the installation disk is configured assuming that most hardware devices are in their factory default configuration in terms of IRQs, IO addresses and DMA channels. If your hardware has been reconfigured, you will most likely need to use the configuration editor to tell FreeBSD where things are. It is also possible that a probe for a device not present will cause a later probe for another device that is present to fail. In that case, the probes for the conflicting driver(s) should be disabled. Do not disable any device you will need during installation, such as your screen (sc0). If the installation wedges or fails mysteriously after leaving the configuration editor, you have probably removed or changed something that you should not have. Simply reboot and try again. In the configuration mode, you can: List the device drivers installed in the kernel. Disable device drivers for hardware not present in your system. Change the IRQ, DRQ, and IO port addresses used by a device driver. After adjusting the kernel to match how you have your hardware configured, type Q to continue booting with the new settings. After FreeBSD has been installed, changes made in the configuration mode will be permanent so you do not have to reconfigure every time you boot. Even so, it is likely that you will want to build a custom kernel to optimize the performance of your system. See Kernel configuration for more information on creating custom kernels. Supported Configurations FreeBSD currently runs on a wide variety of ISA, VLB, EISA and PCI bus based PC's, ranging from 386sx to Pentium class machines (though the 386sx is not recommended). Support for generic IDE or ESDI drive configurations, various SCSI controller, network and serial cards is also provided. A minimum of four megabytes of RAM is required to run FreeBSD. To run the X Window System, eight megabytes of RAM is the recommended minimum. Following is a list of all disk controllers and Ethernet cards currently known to work with FreeBSD. Other configurations may very well work, and we have simply not received any indication of this. Disk Controllers WD1003 (any generic MFM/RLL) WD1007 (any generic IDE/ESDI) IDE ATA Adaptec 1535 ISA SCSI controllers Adaptec 154x series ISA SCSI controllers Adaptec 174x series EISA SCSI controller in standard and enhanced mode. Adaptec 274X/284X/2920C/2930U2/294x/2950/3940/3950 (Narrow/Wide/Twin) series EISA/VLB/PCI SCSI controllers. Adaptec AIC7850, AIC7860, AIC7880, AIC789x, on-board SCSI controllers. AdvanSys SCSI controllers (all models). BusLogic MultiMaster controllers: BusLogic/Mylex "Flashpoint" adapters are NOT yet supported. BusLogic MultiMaster "W" Series Host Adapters: BT-948 BT-958 BT-958D BusLogic MultiMaster "C" Series Host Adapters: BT-946C BT-956C BT-956CD BT-445C BT-747C BT-757C BT-757CD BT-545C BT-540CF BusLogic MultiMaster "S" Series Host Adapters: BT-445S BT-747S BT-747D BT-757S BT-757D BT-545S BT-542D BT-742A BT-542B BusLogic MultiMaster "A" Series Host Adapters: BT-742A BT-542B AMI FastDisk controllers that are true BusLogic MultiMaster clones are also supported. DPT SmartCACHE Plus, SmartCACHE III, SmartRAID III, SmartCACHE IV and SmartRAID IV SCSI/RAID controllers are supported. The DPT SmartRAID/CACHE V is not yet supported. Compaq Intelligent Disk Array Controllers: IDA, IDA-2, IAES, SMART, SMART-2/E, Smart-2/P, SMART-2SL, Smart Array 3200, Smart Array 3100ES and Smart Array 221. SymBios (formerly NCR) 53C810, 53C810a, 53C815, 53C820, 53C825a, 53C860, 53C875, 53C875j, 53C885, 53C895 and 53C896 PCI SCSI controllers: ASUS SC-200 Data Technology DTC3130 (all variants) Diamond FirePort (all) NCR cards (all) Symbios cards (all) Tekram DC390W, 390U and 390F Tyan S1365 QLogic 1020, 1040, 1040B, 1080, 1240 and 2100 SCSI and Fibre Channel Adapters DTC 3290 EISA SCSI controller in 1542 emulation mode. With all supported SCSI controllers, full support is provided for SCSI-I & SCSI-II peripherals, including hard disks, optical disks, tape drives (including DAT and 8mm Exabyte), medium changers, processor target devices and CDROM drives. WORM devices that support CDROM commands are supported for read-only access by the CDROM driver. WORM/CD-R/CD-RW writing support is provided by cdrecord, which is in the ports tree. The following CD-ROM type systems are supported at this time: SoundBlaster SCSI and ProAudio Spectrum SCSI (cd) Mitsumi (all models) proprietary interface (mcd) Matsushita/Panasonic (Creative) CR-562/CR-563 proprietary interface (matcd) Sony proprietary interface (scd) ATAPI IDE interface (wcd) The following drivers were supported under the old SCSI subsystem, but are NOT YET supported under the new CAM SCSI subsystem: Tekram DC390 and DC390T controllers (maybe other cards based on the AMD 53c974 as well). NCR5380/NCR53400 ("ProAudio Spectrum") SCSI controller. UltraStor 14F, 24F and 34F SCSI controllers. Seagate ST01/02 SCSI controllers. Future Domain 8xx/950 series SCSI controllers. WD7000 SCSI controller. Adaptec 1510 series ISA SCSI controllers (not for bootable devices) Adaptec 152x series ISA SCSI controllers Adaptec AIC-6260 and AIC-6360 based boards, which includes the AHA-152x and SoundBlaster SCSI cards. Ethernet cards Allied-Telesis AT1700 and RE2000 cards SMC Elite 16 WD8013 Ethernet interface, and most other WD8003E, WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT based clones. SMC Elite Ultra and 9432TX based cards are also supported. DEC EtherWORKS III NICs (DE203, DE204, and DE205) DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422) DEC DC21040/DC21041/DC21140 based NICs: ASUS PCI-L101-TB Accton ENI1203 Cogent EM960PCI Compex CPXPCI/32C D-Link DE-530 DEC DE435 DEC DE450 Danpex EN-9400P3 JCIS Condor JC1260 Kingston KNE100TX Linksys EtherPCI Mylex LNP101 SMC EtherPower 10/100 (Model 9332) SMC EtherPower (Model 8432) SMC EtherPower (2) Zynx ZX314 Zynx ZX342 DEC FDDI (DEFPA/DEFEA) NICs Fujitsu FMV-181 and FMV-182 Fujitsu MB86960A/MB86965A Intel EtherExpress Intel EtherExpress Pro/100B 100Mbit. Isolan AT 4141-0 (16 bit) Isolink 4110 (8 bit) Lucent WaveLAN wireless networking interface. Novell NE1000, NE2000, and NE2100 ethernet interface. 3Com 3C501 cards 3Com 3C503 Etherlink II 3Com 3c505 Etherlink/+ 3Com 3C507 Etherlink 16/TP 3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III 3Com 3C590, 3C595 Etherlink III 3Com 3C90x cards. HP PC Lan Plus (27247B and 27252A) Toshiba ethernet cards PCMCIA ethernet cards from IBM and National Semiconductor are also supported. FreeBSD does not currently support PnP (plug-n-play) features present on some ethernet cards. If your card has PnP and is giving you problems, try disabling its PnP features. Miscellaneous devices AST 4 port serial card using shared IRQ. ARNET 8 port serial card using shared IRQ. BOCA IOAT66 6 port serial card using shared IRQ. BOCA 2016 16 port serial card using shared IRQ. Cyclades Cyclom-y Serial Board. STB 4 port card using shared IRQ. SDL Communications Riscom/8 Serial Board. SDL Communications RISCom/N2 and N2pci sync serial cards. Digiboard Sync/570i high-speed sync serial card. Decision-Computer Intl. “Eight-Serial” 8 port serial cards using shared IRQ. Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum, Gravis UltraSound, Gravis UltraSound MAX and Roland MPU-401 sound cards. Matrox Meteor video frame grabber. Creative Labs Video spigot frame grabber. Omnimedia Talisman frame grabber. Brooktree BT848 chip based frame grabbers. X-10 power controllers. PC joystick and speaker. FreeBSD does not currently support IBM's microchannel (MCA) bus. Preparing for the Installation There are a number of different methods by which FreeBSD can be installed. The following describes what preparation needs to be done for each type. Before installing from CDROM If your CDROM is of an unsupported type, then please skip to MS-DOS Preparation. There is not a lot of preparatory work that needs to be done to successfully install from one of Walnut Creek's FreeBSD CDROMs (other CDROM distributions may work as well, though we cannot say for certain as we have no hand or say in how they are created). You can either boot into the CD installation directly from DOS using Walnut Creek's supplied install.bat batch file or you can make boot floppies with the makeflp.bat command. For the easiest interface of all (from DOS), type view. This will bring up a DOS menu utility that leads you through all the available options. If you are creating the boot floppies from a UNIX machine, see the beginning of this guide for examples of how to create the boot floppies. Once you have booted from DOS or floppy, you should then be able to select CDROM as the media type in the Media menu and load the entire distribution from CDROM. No other types of installation media should be required. After your system is fully installed and you have rebooted from the hard disk, you can mount the CDROM at any time by typing: mount /cdrom Before removing the CD again, also note that it is necessary to first type: umount /cdrom. Do not just remove it from the drive! Before invoking the installation, be sure that the CDROM is in the drive so that the install probe can find it. This is also true if you wish the CDROM to be added to the default system configuration automatically during the install (whether or not you actually use it as the installation media). Finally, if you would like people to be able to FTP install FreeBSD directly from the CDROM in your machine, you will find it quite easy. After the machine is fully installed, you simply need to add the following line to the password file (using the vipw command): ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent Anyone with network connectivity to your machine (and permission to log into it) can now chose a Media type of FTP and type in: ftp://your machine after picking “Other” in the ftp sites menu. Before installing from Floppy If you must install from floppy disks, either due to unsupported hardware or simply because you enjoy doing things the hard way, you must first prepare some floppies for the install. You will need, at minimum, as many 1.44MB or 1.2MB floppies as it takes to hold all files in the bin (binary distribution) directory. If you are preparing these floppies under DOS, then THESE floppies must be formatted using the MS-DOS FORMAT command. If you are using Windows, use the Windows File Manager format command. Do not trust Factory Preformatted floppies! Format them again yourself, just to make sure. Many problems reported by our users in the past have resulted from the use of improperly formatted media, which is why I am taking such special care to mention it here! If you are creating the floppies from another FreeBSD machine, a format is still not a bad idea though you do not need to put a DOS filesystem on each floppy. You can use the disklabel and newfs commands to put a UFS filesystem on them instead, as the following sequence of commands (for a 3.5" 1.44MB floppy disk) illustrates: &prompt.root; fdformat -f 1440 fd0.1440 &prompt.root; disklabel -w -r fd0.1440 floppy3 &prompt.root; newfs -t 2 -u 18 -l 1 -i 65536 /dev/rfd0 Use fd0.1200 and floppy5 for 5.25" 1.2MB disks. Then you can mount and write to them like any other file system. After you have formatted the floppies, you will need to copy the files onto them. The distribution files are split into chunks conveniently sized so that 5 of them will fit on a conventional 1.44MB floppy. Go through all your floppies, packing as many files as will fit on each one, until you have got all the distributions you want packed up in this fashion. Each distribution should go into a subdirectory on the floppy, e.g.: a:\bin\bin.aa, a:\bin\bin.ab, and so on. Once you come to the Media screen of the install, select “Floppy” and you will be prompted for the rest. Before installing from a MS-DOS partition To prepare for installation from an MS-DOS partition, copy the files from the distribution into a directory called c:\freebsd. The directory tree structure of the CDROM must be partially reproduced within this directory so we suggest using the DOS xcopy command. For example, to prepare for a minimal installation of FreeBSD: C:\> md c:\freebsd C:\> xcopy /s e:\bin c:\freebsd\bin\ C:\> xcopy /s e:\manpages c:\freebsd\manpages\ Assuming that C: is where you have free space and E: is where your CDROM is mounted. For as many DISTS you wish to install from MS-DOS (and you have free space for), install each one under c:\freebsd — the BIN dist is only the minimal requirement. Before installing from QIC/SCSI Tape Installing from tape is probably the easiest method, short of an on-line install using FTP or a CDROM install. The installation program expects the files to be simply tar'ed onto the tape, so after getting all of the files for distribution you are interested in, simply tar them onto the tape with a command like: &prompt.root; cd /freebsd/distdir &prompt.root; tar cvf /dev/rwt0 dist1 ... dist2 When you go to do the installation, you should also make sure that you leave enough room in some temporary directory (which you will be allowed to choose) to accommodate the full contents of the tape you have created. Due to the non-random access nature of tapes, this method of installation requires quite a bit of temporary storage. You should expect to require as much temporary storage as you have stuff written on tape. When going to do the installation, the tape must be in the drive before booting from the boot floppy. The installation probe may otherwise fail to find it. Before installing over a network You can do network installations over 3 types of communications links: Serial port SLIP or PPP Parallel port PLIP (laplink cable) Ethernet A standard ethernet controller (includes some PCMCIA). SLIP support is rather primitive, and limited primarily to hard-wired links, such as a serial cable running between a laptop computer and another computer. The link should be hard-wired as the SLIP installation does not currently offer a dialing capability; that facility is provided with the PPP utility, which should be used in preference to SLIP whenever possible. If you are using a modem, then PPP is almost certainly your only choice. Make sure that you have your service provider's information handy as you will need to know it fairly soon in the installation process. You will need to know how to dial your ISP using the “AT commands” specific to your modem, as the PPP dialer provides only a very simple terminal emulator. If you are using PAP or CHAP, you will need to type the necessary set authname and set authkey commands before typing term. Refer to the user-ppp handbook and FAQ entries for further information. If you have problems, logging can be directed to the screen using the command set log local .... If a hard-wired connection to another FreeBSD (2.0R or later) machine is available, you might also consider installing over a “laplink” parallel port cable. The data rate over the parallel port is much higher than what is typically possible over a serial line (up to 50k/sec), thus resulting in a quicker installation. Finally, for the fastest possible network installation, an ethernet adaptor is always a good choice! FreeBSD supports most common PC ethernet cards, a table of supported cards (and their required settings) is provided in Supported Hardware. If you are using one of the supported PCMCIA ethernet cards, also be sure that it is plugged in before the laptop is powered on! FreeBSD does not, unfortunately, currently support hot insertion of PCMCIA cards during installation. You will also need to know your IP address on the network, the netmask value for your address class, and the name of your machine. Your system administrator can tell you which values to use for your particular network setup. If you will be referring to other hosts by name rather than IP address, you will also need a name server and possibly the address of a gateway (if you are using PPP, it is your provider's IP address) to use in talking to it. If you do not know the answers to all or most of these questions, then you should really probably talk to your system administrator first before trying this type of installation. Once you have a network link of some sort working, the installation can continue over NFS or FTP. Preparing for NFS installation NFS installation is fairly straight-forward: Simply copy the FreeBSD distribution files you want onto a server somewhere and then point the NFS media selection at it. If this server supports only “privileged port” access (as is generally the default for Sun workstations), you will need to set this option in the Options menu before installation can proceed. If you have a poor quality ethernet card which suffers from very slow transfer rates, you may also wish to toggle the appropriate Options flag. In order for NFS installation to work, the server must support subdir mounts, e.g., if your FreeBSD &rel.current; distribution directory lives on: ziggy:/usr/archive/stuff/FreeBSD Then ziggy will have to allow the direct mounting of /usr/archive/stuff/FreeBSD, not just /usr or /usr/archive/stuff. In FreeBSD's /etc/exports file, this is controlled by the option. Other NFS servers may have different conventions. If you are getting Permission Denied messages from the server then it is likely that you do not have this enabled properly. Preparing for FTP Installation FTP installation may be done from any mirror site containing a reasonably up-to-date version of FreeBSD &rel.current;. A full menu of reasonable choices from almost anywhere in the world is provided by the FTP site menu. If you are installing from some other FTP site not listed in this menu, or you are having troubles getting your name server configured properly, you can also specify your own URL by selecting the “Other” choice in that menu. A URL can also be a direct IP address, so the following would work in the absence of a name server: ftp://165.113.121.81/pub/FreeBSD/&rel.current;-RELEASE There are two FTP installation modes you can use: FTP Active For all FTP transfers, use “Active” mode. This will not work through firewalls, but will often work with older ftp servers that do not support passive mode. If your connection hangs with passive mode (the default), try active! FTP Passive For all FTP transfers, use “Passive” mode. This allows the user to pass through firewalls that do not allow incoming connections on random port addresses. Active and passive modes are not the same as a “proxy” connection, where a proxy FTP server is listening and forwarding FTP requests! For a proxy FTP server, you should usually give name of the server you really want as a part of the username, after an @-sign. The proxy server then 'fakes' the real server. An example: Say you want to install from ftp.FreeBSD.org, using the proxy FTP server foo.bar.com, listening on port 1234. In this case, you go to the options menu, set the FTP username to ftp@ftp.FreeBSD.org, and the password to your e-mail address. As your installation media, you specify FTP (or passive FTP, if the proxy support it), and the URL ftp://foo.bar.com:1234/pub/FreeBSD /pub/FreeBSD from ftp.FreeBSD.org is proxied under foo.bar.com, allowing you to install from that machine (which fetch the files from ftp.FreeBSD.org as your installation requests them). Installing FreeBSD Once you have taken note of the appropriate preinstallation steps, you should be able to install FreeBSD without any further trouble. Should this not be true, then you may wish to go back and re-read the relevant preparation section above for the installation media type you are trying to use, perhaps there is a helpful hint there that you missed the first time? If you are having hardware trouble, or FreeBSD refuses to boot at all, read the Hardware Guide provided on the boot floppy for a list of possible solutions. The FreeBSD boot floppies contain all the on-line documentation you should need to be able to navigate through an installation and if it does not then we would like to know what you found most confusing. Send your comments to the &a.doc;. It is the objective of the FreeBSD installation program (sysinstall) to be self-documenting enough that painful “step-by-step” guides are no longer necessary. It may take us a little while to reach that objective, but that is the objective! Meanwhile, you may also find the following “typical installation sequence” to be helpful: Boot the kern.flp floppy and, when asked, remove it and insert the mfsroot.flp floppy and hit return. After a boot sequence which can take anywhere from 30 seconds to 3 minutes, depending on your hardware, you should be presented with a menu of initial choices. If the kern.flp floppy does not boot at all, or the boot hangs at some stage, go read the Q&A section of the Hardware Guide for possible causes. Press F1. You should see some basic usage instructions on the menu system and general navigation. If you have not used this menu system before then please read this thoroughly! Select the Options item and set any special preferences you may have. Select a Novice, Custom or Express install, depending on whether or not you would like the installation to help you through a typical installation, give you a high degree of control over each step of the installation or simply whizz through it (using reasonable defaults when possible) as fast as possible. If you have never used FreeBSD before then the Novice installation method is most recommended. The final configuration menu choice allows you to further configure your FreeBSD installation by giving you menu-driven access to various system defaults. Some items, like networking, may be especially important if you did a CDROM/Tape/Floppy installation and have not yet configured your network interfaces (assuming you have any). Properly configuring such interfaces here will allow FreeBSD to come up on the network when you first reboot from the hard disk. MS-DOS User's Questions and Answers Many FreeBSD users wish to install FreeBSD on PCs inhabited by MS-DOS. Here are some commonly asked questions about installing FreeBSD on such systems. Help! I have no space! Do I need to delete everything first? If your machine is already running MS-DOS and has little or no free space available for FreeBSD's installation, all is not lost! You may find the FIPS utility, provided in the tools directory on the FreeBSD CDROM or on the various FreeBSD ftp sites, to be quite useful. FIPS allows you to split an existing MS-DOS partition into two pieces, preserving the original partition and allowing you to install onto the second free piece. You first defragment your MS-DOS partition, using the DOS 6.xx DEFRAG utility or the Norton Disk tools, then run FIPS. It will prompt you for the rest of the information it needs. Afterwards, you can reboot and install FreeBSD on the new free slice. See the Distributions menu for an estimation of how much free space you will need for the kind of installation you want. Can I use compressed MS-DOS filesystems from FreeBSD? No. If you are using a utility such as Stacker(tm) or DoubleSpace(tm), FreeBSD will only be able to use whatever portion of the filesystem you leave uncompressed. The rest of the filesystem will show up as one large file (the stacked/dblspaced file!). Do not remove that file! You will probably regret it greatly! It is probably better to create another uncompressed MS-DOS primary partition and use this for communications between MS-DOS and FreeBSD. Can I mount my MS-DOS extended partitions? Yes. DOS extended partitions are mapped in at the end of the other “slices” in FreeBSD, e.g. your D: drive might be /dev/da0s5, your E: drive /dev/da0s6, and so on. This example assumes, of course, that your extended partition is on SCSI drive 0. For IDE drives, substitute wd for da appropriately. You otherwise mount extended partitions exactly like you would mount any other DOS drive, e.g.: &prompt.root; mount -t msdos /dev/da0s5 /dos_d