<!--
     The FreeBSD Documentation Project

     $FreeBSD$
-->

<chapter id="install">
  <chapterinfo>
    <authorgroup>
      <author>
        <firstname>Jim</firstname>
	<surname>Mock</surname>
	<contrib>Restructured, reorganized, and parts
	  rewritten by </contrib>
      </author>
    </authorgroup>

    <authorgroup>
      <author>
	<firstname>Randy</firstname>
	<surname>Pratt</surname>
	<contrib>The sysinstall walkthrough, screenshots, and general
	  copy by </contrib>
      </author>
    </authorgroup>
    <!-- January 2000 -->
  </chapterinfo>

  <title>Installing FreeBSD</title>

  <sect1>
    <title>Synopsis</title>

    <indexterm><primary>installation</primary></indexterm>

    <para>FreeBSD is provided with a text-based, easy to use installation
      program called <application>Sysinstall</application>.  This is the
      default installation program for FreeBSD, although vendors are free to
      provide their own installation suite if they wish.  This chapter
      describes how to use <application>Sysinstall</application> to install
      FreeBSD.</para>

    <para>After reading this chapter, you will know:</para>

    <itemizedlist>
      <listitem>
	<para>How to create the FreeBSD installation disks.</para>
      </listitem>
      
      <listitem>
	<para>How FreeBSD refers to, and subdivides, your hard disks.</para>
      </listitem>

      <listitem>
	<para>How to start <application>Sysinstall</application>.</para>
      </listitem>

      <listitem>
	<para>The questions <application>Sysinstall</application> will ask
	  you, what they mean, and how to answer them.</para>
      </listitem>
    </itemizedlist>

    <para>Before reading this chapter, you should:</para>

    <itemizedlist>
      <listitem>
	<para>Read the supported hardware list that shipped with the version
	  of FreeBSD you are installing, and verify that your hardware is
	  supported.</para>
      </listitem>
    </itemizedlist>

    <note>
      <para>In general, these installation instructions are written
        for i386 (<quote>PC compatible</quote>) architecture
        computers.  Where applicable, instructions specific to other
        platforms (for example, Alpha) will be listed.</para>
    </note>

  </sect1>

  <sect1 id="install-pre">
    <title>Pre-installation Tasks</title>

    <sect2 id="install-inventory">
      <title>Inventory Your Computer</title>

      <para>Before installing FreeBSD you should attempt to inventory the
	components in your computer.  The FreeBSD installation routines will
	show you the components (hard disks, network cards, CDROM drives, and
	so forth) with their model number and manufacturer.  FreeBSD will also
	attempt to determine the correct configuration for these devices,
	which includes information about IRQ and IO port usage.  Due to the
	vagaries of PC hardware this process is not always completely
	successful, and you may need to correct FreeBSD's determination of
	your configuration.</para>

      <para>If you already have another operating system installed, such as
	Windows or Linux, it is a good idea to use the facilities provided
	by those operating systems to see how your hardware is already
	configured.  If you are really not sure what settings an expansion
	card is using, you may find it printed on the card itself.  Popular IRQ
	numbers are 3, 5, and 7, and IO port addresses are normally written as
	hexadecimal numbers, such as 0x330.</para>

      <para>We recommend you print or write down this information before
	installing FreeBSD.  It may help to use a table, like this:</para>

      <table pgwide="1" frame="none">
	<title>Sample Device Inventory</title>

	<tgroup cols="4">
	  <thead>
	    <row>
	      <entry>Device Name</entry>

	      <entry>IRQ</entry>

	      <entry>IO port(s)</entry>

	      <entry>Notes</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry>First hard disk</entry>

	      <entry>N/A</entry>

	      <entry>N/A</entry>

	      <entry>4GB, made by Seagate, first IDE master</entry>
	    </row>

	    <row>
	      <entry>CDROM</entry>

	      <entry>N/A</entry>

	      <entry>N/A</entry>

	      <entry>First IDE slave</entry>
	    </row>

	    <row>
	      <entry>Second hard disk</entry>

	      <entry>N/A</entry>

	      <entry>N/A</entry>

	      <entry>2GB, made by IBM, second IDE master</entry>
	    </row>

	    <row>
	      <entry>First IDE controller</entry>

	      <entry>14</entry>

	      <entry>0x1f0</entry>

	      <entry></entry>
	    </row>

	    <row>
	      <entry>Network card</entry>

	      <entry>N/A</entry>

	      <entry>N/A</entry>

	      <entry>Intel 10/100</entry>
	    </row>

	    <row>
	      <entry>Modem</entry>

	      <entry>N/A</entry>

	      <entry>N/A</entry>

	      <entry>3Com 56K faxmodem, on COM1</entry>
	    </row>

	    <row>
	      <entry>&hellip;</entry>
	    </row>
	  </tbody>
	</tgroup>
      </table>
    </sect2>

    <sect2>
      <title>Backup Your Data</title>
      
      <para>If the computer you will be installing FreeBSD on contains
	valuable data then ensure you have it backed up, and that you have
	tested the backups before installing FreeBSD.  The FreeBSD
	installation routine will prompt you several times before writing any
	data to your disk, but once that process has started it cannot be
	undone.</para>
    </sect2>

    <sect2 id="install-where">
      <title>Decide Where to Install FreeBSD</title>

      <para>If you want FreeBSD to use all your disk, then there is nothing
	more to concern yourself with at this point &mdash; you can skip to the
	next section.</para>

      <para>However, if you need FreeBSD to co-exist with other operating
	systems then you need to have a rough understanding of how data is
	laid out on the disk, and how this affects you.</para>

      <sect3 id="install-where-i386">
	<title>Disk Layouts for the i386</title>

      <para>A PC disk can be divided into discrete chunks.  These chunks are
	called <firstterm>partitions</firstterm>.  By design, the PC only
	supports four partitions per disk.  These partitions are called
	<firstterm>primary partitions</firstterm>.  To work around this
	limitation and allow more than four partitions, a new partition type
	was created, the <firstterm>extended partition</firstterm>.  A disk
	may contain only one extended partition.  Special partitions, called
	<firstterm>logical partitions</firstterm>, can be created inside this
	extended partition.</para>

      <para>Each partition has a <firstterm>partition ID</firstterm>, which is
	a number used to identify the type of data on the partition. FreeBSD
	partitions have the partition ID <literal>165</literal>.</para>

      <para>In general, each operating system that you use will identify
	partitions in a particular way.  For example, DOS, and its
	descendants, like Windows, assign each primary and logical partition a
	<firstterm>drive letter</firstterm>, starting with
	<devicename>C:</devicename>.</para>

      <para>FreeBSD must be installed into a primary partition.  FreeBSD can
	keep all its data, including any files that you create, on this one
	partition.  However, if you have multiple disks, then you can create a
	FreeBSD partition on all, or some, of them. When you install FreeBSD,
	you must have one partition available.  This might be a blank
	partition that you have prepared, or it might be an existing partition
	that contains data that you no longer care about.</para>

      <para>If you are already using all the partitions on all your disks, then
	you will have to free one of them for FreeBSD using the tools
	provided by the other operating systems you use (e.g.,
	<command>fdisk</command> on DOS or Windows).</para>

      <para>If you have a spare partition then you can use that.  However, you
	may need to shrink one or more of your existing partitions
	first.</para>

      <para>A minimal installation of FreeBSD takes as little as 100MB of disk
	space.  However, that is a <emphasis>very</emphasis> minimal install,
	leaving almost no space for your own files.  A more realistic minimum
	is 250MB without a graphical environment, and 350MB or more if you
	want a graphical user interface.  If you intend to install a lot of
	third party software as well, then you will need more space.</para>

      <para>You can use a commercial tool such as <application>Partition
	  Magic</application> to resize your partitions to make space for
	FreeBSD.  The <filename>tools</filename> directory on the CDROM
	contains two free software tools which can carry out this task,
	<application>FIPS</application> and
	<application>PResizer</application>.  Documentation for both of these
	is in the same directory.</para>

      <warning>
	<para>Incorrect use of these tools can delete the data on your disk.
	  Be sure that you have recent, working backups before using
	  them.</para>
      </warning>

      <example>
	<title>Using an existing partition unchanged</title>

	<para>Suppose that you have a computer with a single 4GB disk that
	  already has a version of Windows installed, and you have split the
	  disk into two drive letters, <devicename>C:</devicename> and
	  <devicename>D:</devicename>, each of which is 2GB in size.  You have
	  1GB of data on <devicename>C:</devicename>, and 0.5GB of data on
	  <devicename>D:</devicename>.</para>

	<para>This means that your disk has two partitions on it, one per
	  drive letter.  You can copy all your existing data from
	  <devicename>D:</devicename> to <devicename>C:</devicename>, which
	  will free up the second partition, ready for FreeBSD.</para>
      </example>

      <example>
	<title>Shrinking an existing partition</title>

	<para>Suppose that you have a computer with a single 4GB disk, that
	  already has a version of Windows installed.  When you installed
	  Windows you created one large partition, giving you a
	  <devicename>C:</devicename> drive that is 4GB in size.  You are
	  currently using 1.5GB of space, and want FreeBSD to have 2GB of
	  space.</para>

	<para>In order to install FreeBSD you will need to either:</para>

	<orderedlist>
	  <listitem>
	    <para>Backup your Windows data, and then reinstall Windows,
	      asking for a 2GB partition at install time.</para>
	  </listitem>

	  <listitem>
	    <para>Use one of the tools such as <application>Partition
		Magic</application>, described above, to shrink your Windows
		partition.</para>
	  </listitem>
	</orderedlist>
      </example>

      </sect3>

      <sect3>
	<title>Disk Layouts for the Alpha</title>

	<indexterm><primary>Alpha</primary></indexterm>

	<para>You will need a dedicated disk for FreeBSD on the
	  Alpha. It is not possible to share a disk with another
	  operating system at this time.  Depending on the specific
	  Alpha machine you have, this disk can either be a SCSI disk
	  or an IDE disk, as long as your machine is capable of
	  booting from it.</para>

	<para>Following the conventions of the Digital / Compaq
	  manuals all SRM input is shown in uppercase. SRM is case
	  insensitive.</para>

	<para>To find the names and types of disks in your machine, use
	  the <literal>SHOW DEVICE</literal> command from the SRM
	  console prompt:</para>

	<screen>&gt;&gt;&gt;<userinput>show device</userinput>
dka0.0.0.4.0               DKA0           TOSHIBA CD-ROM XM-57  3476
dkc0.0.0.1009.0            DKC0                       RZ1BB-BS  0658
dkc100.1.0.1009.0          DKC100             SEAGATE ST34501W  0015
dva0.0.0.0.1               DVA0
ewa0.0.0.3.0               EWA0              00-00-F8-75-6D-01
pkc0.7.0.1009.0            PKC0                  SCSI Bus ID 7  5.27
pqa0.0.0.4.0               PQA0                       PCI EIDE
pqb0.0.1.4.0               PQB0                       PCI EIDE</screen>

	<para>This example is from a Digital Personal Workstation
	  433au and shows three disks attached to the machine. The
	  first is a CDROM drive called <devicename>DKA0</devicename> and
	  the other two are disks and are called
	  <devicename>DKC0</devicename> and
	  <devicename>DKC100</devicename> respectively.</para>

	<para>Disks with names of the form <devicename>DKx</devicename>
	  are SCSI disks. For example <devicename>DKA100</devicename>
	  refers to a SCSI with SCSI target ID 1 on the first SCSI bus (A), 
	  whereas <devicename>DKC300</devicename> refers to a SCSI disk
	  with SCSI ID 3 on the third SCSI bus (C). Devicename <devicename>
	  PKx</devicename> refers to the SCSI host bus adapter. As
	  seen in the <literal>SHOW DEVICE</literal> output SCSI
	  CDROM drives are treated as any other SCSI hard disk drive.</para>

	<para>IDE disks have names similar to <devicename>DQx</devicename>,
	  while <devicename>PQx</devicename> is the associated IDE
	  controller.</para>

      </sect3>
    </sect2>

    <sect2>
      <title>Collect Your Network Configuration Details</title>

      <para>If you intend to connect to a network as part of your FreeBSD
	installation (for example, if you will be installing from an FTP
	site, or an
	NFS server), then you need to know your network configuration.  You
	will be prompted for this information during the installation so that
	FreeBSD can connect to the network to complete the install.</para>

      <sect3>
	<title>Connecting to an Ethernet Network, or Cable/DSL Modem</title>

	<para>If you connect to an Ethernet network, or you have an Internet
	  connection via cable or DSL, then you will need the following
	  information:</para>

	<orderedlist>
	  <listitem>
	    <para>IP address.</para>
	  </listitem>

	  <listitem>
	    <para>IP address of the default gateway.</para>
	  </listitem>

	  <listitem>
	    <para>Hostname.</para>
	  </listitem>

	  <listitem>
	    <para>DNS server IP addresses.</para>
	  </listitem>
	</orderedlist>

	<para>If you do not know this information, then ask your system
	  administrator or service provider.  They may say that this
	  information is assigned automatically, using
	  <firstterm>DHCP</firstterm>.  If so, make a note of this.</para>
      </sect3>

      <sect3>
	<title>Connecting Using a Modem</title>

	<para>If you dial up to an ISP using a regular modem then you can
	  still install FreeBSD over the Internet, it will just take a very
	  long time.</para>

	<para>You will need to know:</para>

	<orderedlist>
	  <listitem>
	    <para>The phone number to dial for your ISP.</para>
	  </listitem>

	  <listitem>
	    <para>The COM: port your modem is connected to.</para>
	  </listitem>

	  <listitem>
	    <para>The username and password for your ISP account.</para>
	  </listitem>
	</orderedlist>
      </sect3>
    </sect2>
    <sect2>
      <title>Check for FreeBSD Errata</title>
      
      <para>Although the FreeBSD project strives to ensure that each release
	of FreeBSD is as stable as possible, bugs do occasionally creep into
	the process.  On very rare occasions those bugs affect the
	installation process.  As these problems are discovered and fixed they
	are noted in the FreeBSD Errata, posted on the FreeBSD web site.  You
	should check the errata before installing to make sure that there are
	no late-breaking problems which you should be aware of.</para>

      <para>Information about all the releases, including the errata for each
	release, can be found on the 
	<ulink
	url="../../../../releases/index.html">release
	information</ulink> section of the 
	<ulink
	  url="../../../../index.html">FreeBSD web site</ulink>.</para>
    </sect2>

    <sect2 id="install-floppies">
      <title>Prepare the Boot Discs</title>
      
      <para>FreeBSD can be installed from a number of different media; CDROM,
	DVD, FTP (both anonymous and non-anonymous), NFS, tape, or an existing
	MS-DOS partition.</para>

      <tip>
	<para>If you have FreeBSD on CDROM or DVD, and your computer allows
	  you to boot from the CDROM or DVD (typically a BIOS option called
	  <quote>Boot Order</quote> or similar) then you can skip this
	  section. The FreeBSD CDROM and DVD images are bootable and can be
	  used to install FreeBSD without any other special
	  preparation.</para>
      </tip>
    
      <para>The FreeBSD installation process is started by booting your
	computer into the FreeBSD installer&mdash;it is not a program you run
	within another operating system.  To do this, you must create some
	floppy disks that can be booted from, and then boot from them.</para>

      <para>If you are <emphasis>not</emphasis> installing directly from
	CDROM, DVD, or FTP then you are probably preparing your own
	installation media (e.g., an MS-DOS partition), which must be prepared
	before you install FreeBSD.  This is a slightly more advanced, 
	infrequent activity, and is documented in <xref
	linkend="install-diff-media">.  This includes the scenario where you
	want to create your own FTP site on your own network so that other
	computers can use your site as a FreeBSD FTP installation site.</para>

      <para>In general, to create boot floppy images, follow these
	steps:</para>

      <procedure>
	<step>
	  <title>Acquire the Boot Floppy Images</title>
	  
	  <para>The boot discs are available on your installation media
	    in the floppies directory, and
	    can also be downloaded from the <ulink
	    url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/">
	      floppies directory</ulink>.</para>

	  <para>The floppy images have a <filename>.flp</filename> extension.
	    The <filename>floppies/</filename> directory contains a number of
	    different images, and the ones you will need to use depends on the
	    version of FreeBSD you are installing, and in some cases, the
	    hardware you are installing to.  In most cases you will need two
	    files, <filename>kern.flp</filename> and
	    <filename>mfsroot.flp</filename>, but check
	    <filename>README.TXT</filename> in the same directory to be
	    sure.</para>

	  <important>
	    <para>Your FTP program must use <emphasis>binary mode</emphasis>
	      to download these disk images.  Some web browsers have been
	      known to use <emphasis>text</emphasis> (or
	      <emphasis>ASCII</emphasis>) mode, which will be apparent if you
	      cannot boot from the disks.</para>
	  </important>
	</step>

	<step>
	  <title>Prepare the Floppy Disks</title>
	  
	  <para>You must prepare one floppy disk per image file you had to
	    download.  It is imperative that these disks are free from
	    defects.  The easiest way to test this is to format the disks
	    for yourself.  Do not trust pre-formatted floppies.</para>
	  
	  <important>
	    <para>If you try to install FreeBSD and the installation
	      program crashes, freezes, or otherwise misbehaves, one of
	      the first things to suspect is the floppies.  Try writing
	      the floppy image files to some other disks and try
	      again.</para>
	  </important>
	</step>

	<step>
	  <title>Write the Image Files to the Floppy Disks</title>

	  <para>The <filename>.flp</filename> files are
	    <emphasis>not</emphasis> regular files you copy to the disk.
	    Instead, they are images of the complete contents of the
	    disk.  This means that you <emphasis>cannot</emphasis> use
	    commands like DOS' <command>copy</command> to write the
	    files.  Instead, you must use specific tools to write the
	    images directly to the disk.</para>

	  <indexterm><primary>DOS</primary></indexterm>
	  <para>If you are creating the floppies on a computer running
      DOS/Windows, then we provide a tool to do
      this called <command>fdimage</command>.</para>

	  <para>If you are using the floppies from the CDROM, and your
	    CDROM is the <devicename>E:</devicename> drive, then you would 
	    run this:</para>

	  <screen><prompt>E:\&gt;</prompt> <userinput>tools\fdimage floppies\kern.flp A:</userinput></screen>

	  <para>Repeat this command for each <filename>.flp</filename>
	    file, replacing the floppy disk each time, being sure to label
	    the disks with the name of the file that you copied to them.
	    Adjust the command line as necessary, depending on where you have
	    placed the <filename>.flp</filename> files.  If you do not have
	    the CDROM, then <command>fdimage</command> can be downloaded from
	    the <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/"><filename>tools</filename> directory</ulink> on the FreeBSD FTP site.</para>
	  
	  <para>If you are writing the floppies on a Unix system (such as
	    another FreeBSD system) you can use the &man.dd.1; command to
	    write the image files directly to disk.  On FreeBSD, you would
	    run:</para>
	  
	  <screen>&prompt.root; <userinput>dd if=kern.flp of=/dev/fd0</userinput></screen>

	  <para>On FreeBSD, <filename>/dev/fd0</filename> refers to the
	    first floppy disk (the <devicename>A:</devicename> drive).
	    <filename>/dev/fd1</filename> would be the
	    <devicename>B:</devicename> drive, and so on.  Other Unix
	    variants might have different names for the floppy disk
	    devices, and you will need to check the documentation for the
	    system as necessary.</para>
	</step>
      </procedure>

      <para>You are now ready to start installing FreeBSD.</para>
    </sect2>
  </sect1>

  <sect1 id="install-start">
    <title>Starting the Installation</title>

    <important>
      <para>By default, the installation will not make any changes to your
	disk(s) until you see the following message:</para>

      <literallayout class="monospaced">Last Chance: Are you SURE you want continue the installation?

If you're running this on a disk with data you wish to save then WE
STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!

We can take no responsibility for lost disk contents!</literallayout>

      <para>The install can be exited at any time prior to the final
	warning without changing the contents of the hard drive.  If you are
	concerned that you have configured something incorrectly you can just
	turn the computer off before this point, and no damage will be
	done.</para>
    </important>

    <sect2 id="install-starting">
      <title>Booting</title>

      <sect3 id="install-starting-i386">
        <title>Booting for the i386</title>

      <procedure>
	<step>
	  <para>Start with your computer turned off.</para>
	</step>

	<step>
	  <para>Turn on the computer.  As it starts it should display an
	    option to enter the system set up menu, or BIOS, commonly reached
	    by keys like <keycap>F2</keycap>, <keycap>F10</keycap>,
	    <keycap>Del, </keycap>or
	    <keycombo action="simul">
	      <keycap>Alt</keycap>
	      <keycap>S</keycap>
	    </keycombo>.  Use whichever keystroke is indicated on screen.  In
	    some cases your computer may display a graphic while it starts.
	    Typically, pressing <keycap>Esc</keycap> will dismiss the graphic
	    and allow you to see the necessary messages.</para>
	</step>

	<step>
	  <para>Find the setting that controls which devices the system boots
	    from.  This is commonly shown as a list of devices, such as
	    <literal>Floppy</literal>, <literal>CDROM</literal>,
	    <literal>First Hard Disk</literal>, and so on.</para>

	  <para>If you needed to prepare boot floppies, then make sure that the
	    floppy disk is selected.  If you are booting from the CDROM then
	    make sure that that is selected instead.  In case of doubt, you
	    should consult the manual that came with your computer, and/or its
	    motherboard.</para>

	  <para>Make the change, then save and exit.  The computer should now
	    restart.</para>
	</step>

	<step>
	  <para>If you needed to prepare boot floppies, as described in 
	    <xref linkend="install-floppies"> then one of them will be the
	    first boot disc, probably the one containing
	    <filename>kern.flp</filename>.  Put this disc in your floppy
	    drive.</para>

	  <para>If you are booting from CDROM, then you will need to turn on
	    the computer, and insert the CDROM at the first
	    opportunity.</para>

	  <para>If your computer starts up as normal, and loads your existing
	    operating system then either:</para>

	  <orderedlist>
	    <listitem>
	      <para>The disks were not inserted early enough in the boot
		process.  Leave them in, and try restarting your
		computer.</para>
	    </listitem>

	    <listitem>
	      <para>The BIOS changes earlier did not work correctly.  You
		should redo that step until you get the right option.</para>
	    </listitem>
	</orderedlist>
	</step>
    
	<step>
	  <para>FreeBSD will start to boot.  If you are booting from CDROM you
	    will see a display similar to this:</para>
	  
	  <screen>Verifying DMI Pool Data ........
Boot from ATAPI CD-ROM :
 1. FD 2.88MB  System Type-(00)
Uncompressing ... done

BTX loader 1.00 BTX version is 1.01
Console: internal video/keyboard
BIOS drive A: is disk0
BIOS drive B: is disk1
BIOS drive C: is disk2
BIOS drive C: is disk3
BIOS 639kB/261120kB available memory

FreeBSD/i386 bootstrap loader, Revision 0.8
(murray@builder.freebsdmall.com, Thu Jan 17 19:28:57 PST 2002)
/kernel text=0x266691 data=0x407c+0x20d68 \
|
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 9 seconds... _</screen>
	
	  <para>If you are booting from floppy disc, you will see a display
	    similar to this:</para>
	
	  <screen>Verifying DMI Pool Data ........ 

BTX loader 1.00  BTX version is 1.01 
Console: internal video/keyboard 
BIOS drive A: is disk0 
BIOS drive C: is disk1 
BIOS 639kB/261120kB available memory 

FreeBSD/i386 bootstrap loader, Revision 0.8 
 (murray@builder.freebsdmall.com, Thu Jan 17 19:28:57 PST 2002) 
/kernel text=0x266691 data=0x407c+0x20d68 | 

Please insert MFS root floppy and press enter:</screen>

	  <para>Follow these instructions by removing the
	    <filename>kern.flp</filename> disc, insert the
	    <filename>mfsroot.flp</filename> disc, and press
	    <keycap>Enter</keycap>.</para>
	</step>

	<step>
	  <para>Irrespective of whether you booted from floppy or CDROM, the
	    boot process will then get to this point:</para>

	  <screen>Hit [Enter] to boot immediately, or any other key for command prompt. 
Booting [kernel] in 9 seconds... _</screen>

	  <para>Either wait ten seconds, or press <keycap>Enter</keycap>.  This
	    will then launch the kernel configuration menu.</para>
	</step>
      </procedure>

      </sect3>
      <sect3>
        <title>Booting for the Alpha</title>

	<indexterm><primary>Alpha</primary></indexterm>

      <procedure>
	<step>
	  <para>Start with your computer turned off.</para>
	</step>

	<step>
	  <para>Turn on the computer and wait for a boot monitor
	    prompt.</para>
        </step>

	<step>
	  <para>If you needed to prepare boot floppies, as described in 
	    <xref linkend="install-floppies"> then one of them will be the
	    first boot disc, probably the one containing
	    <filename>kern.flp</filename>.  Put this disc in your floppy
	    drive and type the following command to boot the disk
	    (substituting the name of your floppy drive if
	    necessary):</para>

	  <screen>&gt;&gt;&gt;<userinput>BOOT DVA0 -FLAGS '' -FILE ''</userinput></screen>

	  <para>If you are booting from CDROM, insert the CDROM into
	    the drive and type the following command to start the
	    installation (substituting the name of the appropriate
	    CDROM drive if necessary):</para>

          <screen>&gt;&gt;&gt;<userinput>BOOT DKA0 -FLAGS '' -FILE ''</userinput></screen>
	</step>
    
	<step>
	  <para>FreeBSD will start to boot.  If you are booting from a
	    floppy disc, at some point you will see the message:</para>

	  <screen>Please insert MFS root floppy and press enter:</screen>

	  <para>Follow these instructions by removing the
	    <filename>kern.flp</filename> disc, insert the
	    <filename>mfsroot.flp</filename> disc, and press
	    <keycap>Enter</keycap>.</para>
	</step>

	<step>
	  <para>Irrespective of whether you booted from floppy or CDROM, the
	    boot process will then get to this point:</para>

	  <screen>Hit [Enter] to boot immediately, or any other key for command prompt. 
Booting [kernel] in 9 seconds... _</screen>

	  <para>Either wait ten seconds, or press <keycap>Enter</keycap>.  This
	    will then launch the kernel configuration menu.</para>
	</step>
      </procedure>

      </sect3>

    </sect2>

    <sect2 id="start-userconfig">
      <title>Kernel Configuration</title>

      <para>The <firstterm>kernel</firstterm> is the core of the operating
	system.  It is responsible for many things, including access to all
	the devices you may have on your system, such as hard disks, network
	cards, sound cards, and so on.  Each piece of hardware supported by
	the FreeBSD kernel has a driver associated with it.  Each driver has a
	two or three letter name, such as <devicename>sa</devicename> for the
	SCSI sequential access driver, or <devicename>sio</devicename> for the
	Serial I/O driver (which manages COM ports).</para>

      <para>When the kernel starts, each driver checks the system to see
	whether or not the hardware it supports exists on your system.  If it
	does, then the driver configures the hardware and makes it available
	to the rest of the kernel.</para>

      <para>This checking is commonly referred to as <firstterm>device
	  probing</firstterm>.  Unfortunately, it is not always possible to do
	this in a safe way.  Some hardware drivers do not co-exist well
	together, and probing for one piece of hardware can sometimes leave
	another in an inconsistent state.  This is a basic
	limitation of the design of the PC.</para>

      <para>Many older devices are called ISA devices&mdash;as opposed
	to PCI devices.  The ISA specification requires each device to have
	some information hard coded into it, typically the Interrupt Request
	Line number (IRQ) and IO port address that the driver uses.  This
	information is commonly set by using physical
	<firstterm>jumpers</firstterm> on the card, or by using a DOS based
	utility.</para>

      <para>This was often a source of problems, because it was not possible
	to have two devices that shared the same IRQ or port address.</para>

      <para>Newer devices follow the PCI specification, which does not require
	this, as the devices are supposed to cooperate with the BIOS, and be
	told which IRQ and IO port addresses to use.</para>

      <para>If you have any ISA devices in your computer then FreeBSD's
	driver for that device will need to be configured with the IRQ and
	port address that you have set the card to.  This is why carrying out
	an inventory of	your hardware (see <xref
	linkend="install-inventory">) can be useful.</para>

      <para>Unfortunately, the default IRQs and memory ports used by some
	drivers clash.  This is because some ISA devices are shipped with IRQs
	or memory ports that clash.  The defaults in FreeBSD's drivers are
	deliberately set to mirror the manufacturer's defaults, so that, out
	of the box, as many devices as possible will work.</para>

      <para>This is almost never an issue when running FreeBSD day-to-day.
	Your computer will not normally contain two pieces of hardware that
	clash, because one of them would not work (irrespective of the
	operating system you are using).</para>

      <para>It becomes an issue when you are installing FreeBSD for the first
	time because the kernel used to carry out the install has to contain
	as many drivers as possible, so that many different hardware
	configurations can be supported.  This means that some of
	those drivers will have conflicting configurations.  The devices are
	probed in a strict order, and if you own a device that is probed late
	in the process, but conflicted with an earlier probe, then your
	hardware might not function or be probed correctly when you install
	FreeBSD.</para>

      <para>Because of this, the first thing you have the opportunity to do
	when installing FreeBSD is look at the list of drivers that are
	configured into the kernel, and either disable some of them, if you
	do not own that device, or confirm (and alter) the driver's
	configuration if you do own the device but the defaults are
	wrong.</para>

      <para>This probably sounds much more complicated than it actually
	is.</para>

      <para><xref linkend="kernel-config"> shows the first kernel
	configuration menu.  We recommend that you choose the
	<guimenuitem>Start kernel configuration in full-screen visual
	  mode</guimenuitem> option, as it presents the easiest interface for
	the new user.</para>

      <figure id="kernel-config">
	<title>Kernel Configuration Menu</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/userconfig" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The kernel configuration screen (<xref linkend="fig-userconfig">)
	is then divided into four sections.</para>

      <orderedlist>
	<listitem>
	  <para>A collapsible list of all the drivers that are currently
	    marked as <quote>active</quote>, subdivided into groups such as
	    <literal>Storage</literal>, and <literal>Network</literal>.  Each
	    driver is shown as a description, its two or three letter driver
	    name, and the IRQ and memory port used by that driver.  In
	    addition, if an active driver conflicts with another active driver
	    then <literal>CONF</literal> is shown next to the driver name.
	    This section also shows the total number of conflicting drivers
	    that are currently active.</para>
	</listitem>

	<listitem>
	  <para>Drivers that have been marked inactive. They remain in the
	    kernel, but they will not probe for their device when the kernel
	    starts.  These are subdivided into groups in the same way as the
	    active driver list.</para>
	</listitem>

	<listitem>
	  <para>More detail about the currently selected driver, including its
	    IRQ and memory port address.</para>
	</listitem>

	<listitem>
	  <para>Information about the keystrokes that are valid at this point
	    in time.</para>
	</listitem>
      </orderedlist>

      <figure id="fig-userconfig">
	<title>The Kernel Device Configuration Visual Interface</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/userconfig2" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>At this point there will always be conflicts listed.  Do not worry
	about this, it is to be expected; all the drivers are enabled, and
	as has already been explained, some of them will conflict with one
	another.</para>

      <para>You now have to work through the list of drivers, resolving the
	conflicts.</para>

      <procedure>
	<title>Resolving Driver Conflicts</title>

	<step>
	  <para>Press <keycap>X</keycap>.  This will completely expand the
	    list of drivers, so you can see all of them.  You will need to use
	    the arrow keys to scroll back and forth through the active driver
	    list.</para>

	  <para><xref linkend="hardware-conflicts"> shows the result of
	    pressing <keycap>X</keycap>.  </para>

	  <figure id="hardware-conflicts">
	    <title>Expanded Driver List</title>

	    <mediaobject>
	      <imageobject>
		<imagedata fileref="install/hdwrconf" format="PNG">
	      </imageobject>
	    </mediaobject>
	  </figure>
	</step>

	<step>
	  <para>Disable all the drivers for devices that you do not have.  To
	    disable a driver, highlight it with the arrow keys and press
	    <keycap>Del</keycap>.  The driver will be moved to the
	    <literal>Inactive Drivers</literal> list.</para>

	  <para>If you inadvertently disable a device that you need then press
	    <keycap>Tab</keycap> to switch to the <literal>Inactive
	    Drivers</literal> list, select the driver that you disabled, and
	    press <keycap>Enter</keycap> to move it back to the active
	    list.</para>

	  <important>
	    <para>Do not disable <devicename>sc0</devicename>.  This controls
	      the screen, and you will need this unless you are installing
	      over a serial cable.</para>
	  </important>

	  <important>
	    <para>Only disable <devicename>atkbd0</devicename> if you are
	      using a USB keyboard.  If you have a normal keyboard then you
	      must keep <devicename>atkbd0</devicename>.</para>
	  </important>
	</step>

	<step>
	  <para>If there are no conflicts listed then you can skip this step.
	    Otherwise, the remaining conflicts need to be examined.  If they
	    do not have the indication of an <quote>allowed conflict</quote> in the message
	    area, then either the IRQ/address for device probe will need to be
	    changed, <emphasis>or</emphasis> the IRQ/address on the hardware
	    will need to be changed.</para>

	  <para>To change the driver's configuration for IRQ and IO port
	    address, select the device and press <keycap>Enter</keycap>.  The
	    cursor will move to the third section of the screen, and you can
	    change the values.  You should enter the values for IRQ and port
	    address that you discovered when you made your hardware inventory.
	    Press <keycap>Q</keycap> to finish editing the device's
	    configuration and return to the active driver list.</para>
	  
	  <para>If you are not sure what these figures should be then you can
	    try using <literal>-1</literal>.  Some FreeBSD drivers can safely
	    probe the hardware to discover what the correct value should be,
	    and a value of <literal>-1</literal> configures them to do
	    this.</para>

	  <para>The procedure for changing the address on the hardware varies
	    from device to device.  For some devices you may need to
	    physically remove the card from your computer and adjust jumper
	    settings or DIP switches.  Other cards may have come with a DOS
	    floppy that contains the programs used to reconfigure the card.
	    In any case, you should refer to the documentation that came with
	    the device.  This will obviously entail restarting your computer,
	    so you will need to boot back into the FreeBSD installation
	    routine when you have reconfigured the card.</para>
	</step>

	<step>
	  <para>When all the conflicts have been resolved the screen will look
	    similar to <xref linkend="userconfig-done">.</para>

	  <figure id="userconfig-done">
	    <title>Driver Configuration With No Conflicts</title>

	    <mediaobject>
	      <imageobject>
		<imagedata fileref="install/probstart" format="PNG">
	      </imageobject>
	    </mediaobject>
	  </figure>

	  <para>As you can see, the active driver list is now much smaller,
	    with only drivers for the hardware that actually exists being
	    listed.</para>
	  
	  <para>You can now save these changes, and move on to the next step
	    of the install.  Press <keycap>Q</keycap> to quit the device
	    configuration interface.  This message will appear:</para>

	  <screen>Save these parameters before exiting? ([Y]es/[N]o/[C]ancel)</screen>

	  <para>Answer <keycap>Y</keycap> to save the parameters and the
	    probing will start.  After displaying the probe results in white
	    on black text <application>Sysinstall</application> will start
	    and display its main menu 
	    (<xref linkend="sysinstall-main">).</para>

	  <figure id="sysinstall-main">
	    <title>Sysinstall Main Menu</title>
	    
	    <mediaobject>
	      <imageobject>
		<imagedata fileref="install/main1" format="PNG">
	      </imageobject>
	    </mediaobject>
	  </figure>
	</step>
      </procedure>
    </sect2>

    <sect2 id="view-probe">
      <title>Reviewing the Device Probe Results</title>

      <para>The last few hundred lines that have been displayed on screen are
	stored and can be reviewed.</para>

      <para>To review the buffer, press <keycap>Scroll Lock</keycap>. This
	turns on scrolling in the display. You can then use the arrow keys, or
	<keycap>PageUp</keycap> and <keycap>PageDown</keycap> to view the
	results.  Press <keycap>Scroll Lock</keycap> again to stop
	scrolling.</para>

      <para>Do this now, to review the text that scrolled off the screen when
	the kernel was carrying out the device probes.  You will see text
	similar to <xref linkend="install-dev-probe">, although the precise
	text will differ depending on the devices that you have in your
	computer.</para>

      <figure id="install-dev-probe">
	<title>Typical Device Probe Results</title>

	<screen>avail memory = 254611456 (248644K bytes)
Preloaded elf kernel "kernel" at 0xc069a000.
Preloaded mfs_root "/mfsroot" at 0xc069a084.
md1: Malloc disk
npx0: &lt;math processor> on motherboard
npx0: INT 16 interface
pcib0: &lt;Host to PCI bridge> on motherboard
pci0: &lt;PCI bus> on pcib0
pcib1: &lt;VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP bridge> at device 1.0 on pci0
pci1: &lt;PCI bus> on pcib1
pci1: &lt;Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11
isab0: &lt;VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0
isa0: &lt;ISA bus> on isab0
atapci0: &lt;VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
uhci0: &lt;VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0
usb0: &lt;VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
chip1: &lt;VIA 82C586B ACPI interface> at device 7.3 on pci0
ed0: &lt;NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at device 10.0 on pci0
ed0: address 52:54:05:de:73:1b, type NE2000 (16bit)
isa0: too many dependant configs (8)
isa0: unexpected small tag 14
orm0; &lt;Option ROM> at iomem 0xc0000-0xc7fff on isa0
fdc0: &lt;NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq6 drq2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: &lt;1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: &lt;keyboard controller (i8042)> at port 0x60-0x64 on isa0
atkbd0: &lt;AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: &lt;PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
vga0: &lt;Generic ISA VGA> at port 0x3c0-0c3df iomem 0xa0000-0xbffff on isa0
sc0: &lt;System console> at flags 0x100 on isa0
sc0: VGA &lt;16 virtual consoles, flags-0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1: at port 0x2f8-0x2ff irq3 on isa0
sio1: type 16550A
ppc0: &lt;Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/15 bytes threshold
ppbus0: IEEE1284 device found /NIBBLE
Probing for PnP devices on ppbus0:
ppi0: &lt;Parallel I/O> on ppbus0
plip0: &lt;PLIP network interface> on ppbus0
ad0: 8063MB &lt;IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33
acd0: CDROM &lt;DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4
Mounting root from ufs:/dev/md0c
/stand/sysinstall running as init on vty0</screen>
      </figure>

      <para>Check the probe results carefully to make sure that FreeBSD found
	all the devices you expected.  If a device was not found, then it will
	not be listed.  If the device's driver required configuring
	with the IRQ and port address then you should check that you entered
	them correctly.</para>

      <para>If you need to make changes to the UserConfig device probing,
	its easy to exit the <application>sysinstall</application> program
	and start over again.  Its also a good way to become more familiar
	with the process.</para>

      <figure id="sysinstall-exit">
	<title>Select Sysinstall Exit</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/sysinstall-exit" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Use the arrow keys to select 
	<guimenuitem>Exit Install</guimenuitem> from the Main
	Install Screen menu.  The following message will display:</para>


      <screen>                      User Confirmation Requested 
         Are you sure you wish to exit? The system will reboot 
           (be sure to remove any floppies from the drives).

                            [ Yes ]    No</screen>

      <para>The install program will start again if the CDROM is left
	in the drive and <guibutton>[Yes]</guibutton> is selected.</para>

      <para>If you are booting from floppies it will be necessary to remove
	the <filename>mfsroot.flp</filename> floppy and replace it with
	<filename>kern.flp</filename> before rebooting.</para>
    </sect2>
  </sect1>

  <sect1 id="using-sysinstall">
    <title>Introducing Sysinstall</title>

    <para><application>Sysinstall</application> is the installation
      application provided by the FreeBSD Project.  It is console based and is
      divided into a number of menus and screens that you can use to
      configure and control the installation process.</para>

    <para>The <application>Sysinstall</application> menu system is controlled
      by the arrow keys, <keycap>Enter</keycap>, <keycap>Space</keycap>, and
      other keys.  A detailed description of these keys, and what they do, is
      contained in <application>Sysinstall's</application> usage 
      information.</para>

    <para>To review this information, ensure that the
      <guimenuitem>Usage</guimenuitem> entry is highlighted and that the
      <guibutton>[Select]</guibutton> button is selected, as shown in <xref
      linkend="sysinstall-main3">, then press <keycap>Enter</keycap>.</para>

    <para>The instructions for using the menu system will be displayed.  After
      reviewing them, press <keycap>Enter</keycap> to return to the Main
      Menu.</para>

    <figure id="sysinstall-main3">
      <title>Selecting Usage From Sysinstall Main Menu</title>

      <mediaobject>
	<imageobject>
	  <imagedata fileref="install/main1" format="PNG">
	</imageobject>
      </mediaobject>
    </figure>

    <sect2 id="select-doc">
      <title>Selecting The Documentation Menu</title>

      <para>From the Main Menu, select <guimenuitem>Doc</guimenuitem> with
	the arrow keys and
	press <keycap>Enter</keycap>.</para>

      <figure id="main-doc">
	<title>Selecting Documentation Menu</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/main-doc" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>This will display the Documentation Menu.</para>

      <figure id="docmenu1">
	<title>Sysinstall Documentation Menu</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/docmenu1" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>It is important to read the documents provided.</para>

      <para>To view a document, select it with the arrow keys and
	press <keycap>Enter</keycap>.  When finished reading a document,
	pressing <keycap>Enter</keycap> will return to the Documentation
	Menu.</para>

      <para>To return to the Main Installation Menu, select
	<guimenuitem>Exit</guimenuitem> with the 
	arrow keys and press <keycap>Enter</keycap>.</para>
    </sect2>

    <sect2 id="keymap">
      <title>Selecting The Keymap Menu</title>

      <para>To change the keyboard mapping, use the arrow keys to select
	<guimenuitem>Keymap</guimenuitem> from the menu and press
	<keycap>Enter</keycap>.</para>

      <figure id="sysinstall-keymap">
	<title>Sysinstall Main Menu</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/main-keymap" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>A different keyboard mapping may be chosen by selecting the
	menu item using up/down arrow keys and pressing <keycap>Space</keycap>.
	Pressing <keycap>Space</keycap> again will unselect the item. When
	finished, choose the &gui.ok; using the
	arrow keys and press
	<keycap>Enter</keycap>.</para>

      <para>Only a partial list is shown in this screen representation.
	Selecting &gui.cancel; will use the default
	keymap and return to the Main Install Menu.</para>

      <figure id="sysinstall-keymap-menu">
	<title>Sysinstall Keymap Menu</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/keymap" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

    </sect2>

    <sect2 id="viewsetoptions">
      <title>Installation Options Screen</title>

    <para>Select <guimenuitem>Options</guimenuitem> and press
	<keycap>Enter</keycap>.</para>

    <figure id="sysinstall-options">
      <title>Sysinstall Main Menu</title>

      <mediaobject>
        <imageobject>
	  <imagedata fileref="install/main-options" format="PNG">
	</imageobject>
      </mediaobject>
    </figure>

      <figure id="options">
	<title>Sysinstall Options</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/options" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The default values are usually fine for most users and do
	not need to be changed.</para>

      <para>The description of the selected item will appear at the
	bottom of the screen highlighted in blue. Notice that one of the
	options is <guimenuitem>Use Defaults</guimenuitem> to reset all
	values to startup defaults.</para>

      <para>Press <keycap>F1</keycap> to read the help screen about the
	various options.</para>

      <para>Pressing <keycap>Q</keycap> will return to the Main Install
	menu.</para>
    </sect2>

    <sect2 id="start-install">
      <title>Begin A Standard Installation</title>

      <para>The <guimenuitem>Standard</guimenuitem> installation is the
	option recommended for those new to Unix or FreeBSD.  Use the arrow
	keys to select <guimenuitem>Standard</guimenuitem> and
	then press <keycap>Enter</keycap> to start the installation.</para>

      <figure id="sysinstall-standard">
	<title>Begin Standard Installation</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/main-std" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>
    </sect2>
  </sect1>

  <sect1 id="install-steps">
    <title>Allocating Disk Space</title>

    <para>Your first task is to allocate disk space for FreeBSD, and label
      that space so that <application>Sysinstall</application> can prepare
      it.  In order to do this you need to know how FreeBSD expects to find
      information on the disk.</para>

    <sect2 id="install-drive-bios-numbering">
      <title>BIOS Drive Numbering</title>

      <para>Before you install and configure FreeBSD on your system, there is an
	important subject that you should be aware of, especially if you have
	multiple hard drives.</para>

      <indexterm><primary>DOS</primary></indexterm>
      <indexterm><primary>Microsoft Windows</primary></indexterm>
      <para>In a PC running a BIOS-dependent operating system such as
	MS-DOS or Microsoft Windows, the BIOS is able to abstract the
	normal disk drive order, and
	the operating system goes along with the change.  This allows the user
	to boot from a disk drive other than the so-called <quote>primary
	  master</quote>.  This is especially convenient for some users who have
	found that the simplest and cheapest way to keep a system backup is to
	buy an identical second hard drive, and perform routine copies of the
	first drive to the second drive using 
	<application>Ghost</application> or <application>XCOPY</application>
	.  Then, if the
	first drive fails, or is attacked by a virus, or is scribbled upon by an
	operating system defect, he can easily recover by instructing the BIOS
	to logically swap the drives. It is like switching the cables on the
	drives, but without having to open the case.</para>

      <indexterm><primary>SCSI</primary></indexterm>
      <indexterm><primary>BIOS</primary></indexterm>
      <para>More expensive systems with SCSI controllers often include BIOS
	extensions which allow the SCSI drives to be re-ordered in a similar
	fashion for up to seven drives.</para>

      <para>A user who is accustomed to taking advantage of these features may
	become surprised when the results with FreeBSD are not as expected.
	FreeBSD does not use the BIOS, and does not know the <quote>logical BIOS
	  drive mapping</quote>.  This can lead to very perplexing situations,
	especially when drives are physically identical in geometry, and have
	also been made as data clones of one another.</para>

      <para>When using FreeBSD, always restore the BIOS to natural drive
	numbering before installing FreeBSD, and then leave it that way.  If you
	need to switch drives around, then do so, but do it the hard way, and
	open the case and move the jumpers and cables.</para>

      <sidebar>
	<title>An Illustration from the Files of Bill and Fred's Exceptional
	  Adventures:</title>
      
	<para>Bill breaks-down an older Wintel box to make another FreeBSD box
	  for Fred. Bill installs a single SCSI drive as SCSI unit zero and
	  installs FreeBSD on it.</para>

	<para>Fred begins using the system, but after several days notices that
	  the older SCSI drive is reporting numerous soft errors and reports
	  this fact to Bill.</para>

	<para>After several more days, Bill decides it is time to address the
	  situation, so he grabs an identical SCSI drive from the disk drive
	  <quote>archive</quote> in the back room.  An initial surface scan
	  indicates that
	  this drive is functioning well, so Bill installs this drive as SCSI
	  unit four and makes an image copy from drive zero to drive four.  Now
	  that the new drive is installed and functioning nicely, Bill decides
	  that it is a good idea to start using it, so he uses features in the
	  SCSI BIOS to re-order the disk drives so that the system boots from
	  SCSI unit four.  FreeBSD boots and runs just fine.</para>

	<para>Fred continues his work for several days, and soon Bill and Fred
	  decide that it is time for a new adventure -- time to upgrade to a
	  newer version of FreeBSD.  Bill removes SCSI unit zero because it was
	  a bit flaky and replaces it with another identical disk drive from
	  the <quote>archive</quote>.  Bill then installs the new version of FreeBSD onto the
	  new SCSI unit zero using Fred's magic Internet FTP floppies.  The
	  installation goes well.</para>

	<para>Fred uses the new version of FreeBSD for a few days, and certifies
	  that it is good enough for use in the engineering department.  It is
	  time to copy all of his work from the old version.  So Fred mounts
	  SCSI unit four (the latest copy of the older FreeBSD version).  Fred
	  is dismayed to find that none of his precious work is present on SCSI
	  unit four.</para>

	<para>Where did the data go?</para>

	<para>When Bill made an image copy of the original SCSI unit zero onto
	  SCSI unit four, unit four became the <quote>new clone</quote>.
	  When Bill
	  re-ordered the SCSI BIOS so that he could boot from SCSI unit four, he
	  was only fooling himself. FreeBSD was still running on SCSI unit zero.
	  Making this kind of BIOS change will cause some or all of the Boot and
	  Loader code to be fetched from the selected BIOS drive, but when the
	  FreeBSD kernel drivers take-over, the BIOS drive numbering will be
	  ignored, and FreeBSD will transition back to normal drive numbering.
	  In the illustration at hand, the system continued to operate on the
	  original SCSI unit zero, and all of Fred's data was there, not on SCSI
	  unit four.  The fact that the system appeared to be running on SCSI
	  unit four was simply an artifact of human expectations.</para>

	<para>We are delighted to mention that no data bytes were killed or
	  harmed in any way by our discovery of this phenomenon.  The older SCSI
	  unit zero was retrieved from the bone pile, and all of Fred's work was
	  returned to him, (and now Bill knows that he can count as high as
	  zero).</para>

	<para>Although SCSI drives were used in this illustration, the concepts
	  apply equally to IDE drives.</para>
      </sidebar>
    </sect2>

    <sect2>
      <title>Disk Organization</title>

      <para>The smallest unit of organization that FreeBSD uses to find files
	is the filename.  Filenames are case-sensitive, which means that
	<filename>readme.txt</filename> and <filename>README.TXT</filename>
	are two separate files.  FreeBSD does not use the extension
	(<filename>.txt</filename>) of a file to determine whether the file is
	program, or a document, or some other form of data.</para>

      <para>Files are stored in directories.  A directory may contain no
	files, or it may contain many hundreds of files.  A directory can also
	contain other directories, allowing you to build up a hierarchy of
	directories within one another.  This makes it much easier to organize
	your data.</para>

      <para>Files and directories are referenced by giving the file or
	directory name, followed by a forward slash, <literal>/</literal>,
	followed by any other directory names that are necessary.  If you have
	directory <filename>foo</filename>, which contains directory
	<filename>bar</filename>, which contains the file
	<filename>readme.txt</filename>, then the full name, or
	<firstterm>path</firstterm> to the file is
	<filename>foo/bar/readme.txt</filename>.</para>

      <para>Directories and files are stored in a filesystem.  Each filesystem
	contains exactly one directory at the very top level, called the
	<firstterm>root directory</firstterm> for that filesystem.  This root
	directory can then contain other directories.</para>

      <para>So far this is probably similar to any other operating system you
	may have used.  There are a few differences; for example, DOS uses
	<literal>\</literal> to separate file and directory names, while MacOS
	uses <literal>:</literal>.</para>

      <para>FreeBSD does not use drive letters, or other drive names in the
	path.  You would not write <filename>c:/foo/bar/readme.txt</filename>
	on FreeBSD.</para>

      <para>Instead, one filesystem is designated the <firstterm>root
	  filesystem</firstterm>.  The root filesystem's root directory is
	referred to as <literal>/</literal>.  Every other filesystem is then
	<firstterm>mounted</firstterm> under the root filesystem.  No matter
	how many disks you have on your FreeBSD system, every directory
	appears to be part of the same disk.</para>

      <para>Suppose you have three filesystems, called <literal>A</literal>,
	<literal>B</literal>, and <literal>C</literal>.  Each filesystem has
	one root directory, which contains two other directories, called
	<literal>A1</literal>, <literal>A2</literal> (and likewise
	<literal>B1</literal>, <literal>B2</literal> and
	<literal>C1</literal>, <literal>C2</literal>).</para>

      <para>Call <literal>A</literal> the root filesystem.  If you used the
	<command>ls</command> command to view the contents of this directory
	you would see two subdirectories, <literal>A1</literal> and
	<literal>A2</literal>.  The directory tree looks like this:</para>

      <literallayout class="monospaced"> /
 |
 +--- A1
 |
 `--- A2</literallayout>

      <para>A filesystem must be mounted on to a directory in another
	filesystem.  So now suppose that you mount filesystem
	<literal>B</literal> on to the directory <literal>A1</literal>.  The
	root directory of <literal>B</literal> replaces <literal>A1</literal>,
	and the directories in <literal>B</literal> appear accordingly:</para>

      <literallayout class="monospaced"> /
 | 
 +--- A1
 |     |
 |     +--- B1
 |     |
 |     `--- B2
 |
 `--- A2</literallayout>

      <para>Any files that are in the <literal>B1</literal> or
	<literal>B2</literal> directories can be reached with the path
	<filename>/A1/B1</filename> or <filename>/A1/B2</filename> as
	necessary.  Any files that were in <filename>/A1</filename> have been
	temporarily hidden.  They will reappear if <literal>B</literal> is
	<firstterm>unmounted</firstterm> from A.</para>

      <para>If <literal>B</literal> had been mounted on <literal>A2</literal>
	then the diagram would look like this:</para>

      <literallayout class="monospaced"> /
 |
 +--- A1
 |
 `--- A2
       |
       +--- B1
       |
       `--- B2</literallayout>

      <para>and the paths would be <filename>/A2/B1</filename> and
	<filename>/A2/B2</filename> respectively.</para>

      <para>Filesystems can be mounted on top of one another.  Continuing the
	last example, the <literal>C</literal> filesystem could be mounted on
	top of the <literal>B1</literal> directory in the <literal>B</literal>
	filesystem, leading to this arrangement:</para>

      <literallayout class="monospaced"> /
 |
 +--- A1
 |
 `--- A2
       |
       +--- B1
       |     |
       |     +--- C1
       |     |
       |     `--- C2
       |
       `--- B2</literallayout>

      <para>Or <literal>C</literal> could be mounted directly on to the
	<literal>A</literal> filesystem, under the <literal>A1</literal>
	directory:</para>

      <literallayout class="monospaced"> /
 |
 +--- A1
 |     |
 |     +--- C1
 |     |
 |     `--- C2
 |
 `--- A2
       |
       +--- B1
       |
       `--- B2</literallayout>

      <para>If you are familiar with DOS, this is similar, although not
	identical, to the <command>join</command> command.</para>

      <para>This is not normally something you need to concern yourself with.
	Typically you create filesystems when installing FreeBSD and decide
	where to mount them, and then never change them unless you add a new
	disk.</para>

      <para>It is entirely possible to have one large root filesystem, and not
	need to create any others.  There are some drawbacks to this approach,
	and one advantage.</para>

      <itemizedlist>
	<title>Benefits of multiple filesystems</title>
      
	<listitem>
	  <para>Different filesystems can have different <firstterm>mount
	      options</firstterm>.  For example, with careful planning, the
	    root filesystem can be mounted read-only, making it impossible for
	    you to inadvertently delete or edit a critical file.</para>
	</listitem>

	<listitem>
	  <para>FreeBSD automatically optimizes the layout of files on a
	    filesystem, depending on how the filesystem is being used.  So a
	    filesystem that contains many small files that are written
	    frequently will have a different optimization to one that contains
	    fewer, larger files.  By having one big filesystem this
	    optimization breaks down.</para>
	</listitem>
	
	<listitem>
	  <para>FreeBSD's filesystems are very robust should you lose power.
	    However, a power loss at a critical point could still damage the
	    structure of the filesystem.  By splitting your data over multiple
	    filesystems it is more likely that the system will still come up,
	    making it easier for you to restore from backup as
	    necessary.</para>
	</listitem>
      </itemizedlist>

      <itemizedlist>
	<title>Benefit of a single filesystem</title>

	<listitem>
	  <para>Filesystems are a fixed size.  If you create a filesystem when
	    you install FreeBSD and give it a specific size, you may later
	    discover that you need to make the partition bigger.  This is not
	    easily accomplished without backing up, recreating the filesystems
	    with the size, and then restoring.</para>

	  <important>
	    <para>FreeBSD 4.4 and up have a featured command, the
	      &man.growfs.8;, which will makes it possible to
	      increase the size of a filesystem on the fly, removing this
	      limitation.</para>
	  </important>
	</listitem>
      </itemizedlist>
    
      <para>Filesystems are contained in partitions.  This does not have the
	same meaning as the earlier usage of the term partition in this
	chapter, because of FreeBSD's Unix heritage.  Each partition is
	identified by a letter, <literal>a</literal> through to
	<literal>h</literal>.  Each partition can only contain one filesystem,
	which means that filesystems are often described by either their
	typical mount point on the root filesystem, or the letter of the
	partition they are contained in.</para>

      <para>FreeBSD also uses disk space for <firstterm>swap
	  space</firstterm>. Swap space provides FreeBSD with
	<firstterm>virtual memory</firstterm>.  This allows your computer to
	behave as though it has much more memory than it actually does.  When
	FreeBSD runs out of memory it moves some of the data that is not
	currently being used to the swap space, and moves it back in (moving
	something else out) when it needs it.</para>

      <para>Some partitions have certain conventions associated with
	them.</para>

      <informaltable frame="none">
	<tgroup cols="2">
	  <thead>
	    <row>
	      <entry>Partition</entry>

	      <entry>Convention</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry><literal>a</literal></entry>

	      <entry>Normally contains the root filesystem</entry>
	    </row>

	    <row>
	      <entry><literal>b</literal></entry>

	      <entry>Normally contains swap space</entry>
	    </row>

	    <row>
	      <entry><literal>c</literal></entry>

	      <entry>Normally the same size as the enclosing slice.  This
		allows utilities that need to work on the entire slice (for
		example, a bad block scanner) to work on the
		<literal>c</literal> partition.  You would not normally create
		a filesystem on this partition.</entry>
	    </row>

	    <row>
	      <entry><literal>d</literal></entry>

	      <entry>Partition <literal>d</literal> used to have a special
		meaning associated with it, although that is now gone.  To
		this day, some tools may operate oddly if told to work on
		partition <literal>d</literal>, so
		<application>Sysinstall</application> will not normally create
		partition <literal>d</literal>.</entry>
	    </row>
	  </tbody>
	</tgroup>
      </informaltable>

      <para>Each partition-that-contains-a-filesystem is stored in what
	FreeBSD calls a <firstterm>slice</firstterm>.  Slice is FreeBSD's term
	for what were earlier called partitions, and again, this is because of
	FreeBSD's Unix background.  Slices are numbered, starting at 1,
	through to 4.</para>

	<indexterm><primary>slices</primary></indexterm>
	<indexterm><primary>partitions</primary></indexterm>
	<indexterm><primary>dangerously dedicated</primary></indexterm>

      <para>Slice numbers follow
	the device name, prefixed with an <literal>s</literal>,
	starting at 1. So <quote>da0<emphasis>s1</emphasis></quote>
	is the first slice on the first SCSI drive. There can only be
	four physical slices on a disk, but you can have logical
	slices inside physical slices of the appropriate type. These
	extended slices are numbered starting at 5, so
	<quote>ad0<emphasis>s5</emphasis></quote> is the first
	extended slice on a disk. These devices are used by file
	systems that expect to occupy a slice.</para> 

      <para>Slices, <quote>dangerously dedicated</quote> physical
	drives, and other drives contain
	<firstterm>partitions</firstterm>, which are represented as
	letters from <literal>a</literal> to <literal>h</literal>.
	This letter is appended to the device name, so
	<quote>da0<emphasis>a</emphasis></quote> is the a partition on
	the first da drive, which is <quote>dangerously dedicated</quote>.
	<quote>ad1s3<emphasis>e</emphasis></quote> is the fifth partition
	in the third slice of the second IDE disk drive.</para>
	
      <para>Finally, each disk on the system is identified.  A disk name
	starts with a code that indicates the type of disk, and then a number,
	indicating which disk it is.  Unlike slices, disk numbering starts at
	0. Common codes that you will see are listed in 
	<xref linkend="install-dev-codes">.</para>

      <para>When referring to a partition FreeBSD requires that you also name
	the slice and disk that contains the partition, and when referring to
	a slice you should also refer to the disk name.  Do this by listing
	the disk name, <literal>s</literal>, the slice number, and then the
	partition letter.  Examples are shown in 
	<xref linkend="install-disk-slice-part">.</para>

      <para><xref linkend="install-concept-disk-model"> shows a conceptual
	model of the disk layout that should help make things clearer.</para>

      <para>In order to install FreeBSD you must first configure the disk
	slices, then create partitions within the slice you will use for
	FreeBSD, and then create a filesystem (or swap space) in each
	partition, and decide where that filesystem will be mounted.</para>

      <table frame="none" id="install-dev-codes">
	<title>Disk Device Codes</title>

	<tgroup cols="2">
	  <thead>
	    <row>
	      <entry>Code</entry>
	    
	      <entry>Meaning</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry><devicename>ad</devicename></entry>

	      <entry>ATAPI (IDE) disk</entry>
	    </row>

	    <row>
	      <entry><devicename>da</devicename></entry>
	      
	      <entry>SCSI direct access disk</entry>
	    </row>
	    
	    <row>
	      <entry><devicename>acd</devicename></entry>
	      
	      <entry>ATAPI (IDE) CDROM</entry>
	    </row>
	    
	    <row>
	      <entry><devicename>cd</devicename></entry>
	      
	      <entry>SCSI CDROM</entry>
	    </row>
	    
	    <row>
	      <entry><devicename>fd</devicename></entry>
	      
	      <entry>Floppy disk</entry>
	    </row>
	  </tbody>
	</tgroup>
      </table>
      
      <example id="install-disk-slice-part">
	<title>Sample Disk, Slice, and Partition Names</title>
	
	<informaltable frame="none">
	  <tgroup cols="2">
	    <thead>
	      <row>
		<entry>Name</entry>
		
		<entry>Meaning</entry>
	      </row>
	    </thead>
	    
	    <tbody>
	      <row>
		<entry><literal>ad0s1a</literal></entry>
		
		<entry>The first partition (<literal>a</literal>) on the first
		  slice (<literal>s1</literal>) on the first IDE disk
		  (<literal>ad0</literal>).</entry>
	      </row>

	      <row>
		<entry><literal>da1s2e</literal></entry>
		
		<entry>The fifth partition (<literal>e</literal>) on the
		  second slice (<literal>s2</literal>) on the second SCSI disk
		  (<literal>da1</literal>).</entry>
	      </row>
	    </tbody>
	  </tgroup>
	</informaltable>
      </example>

      <example id="install-concept-disk-model">
	<title>Conceptual Model of a Disk</title>

	<para>This diagram shows FreeBSD's view of the first IDE disk attached
	  to the system.  Assume that the disk is 4GB in size, and contains
	  two 2GB slices (DOS partitions).  The first slice contains a DOS
	  disk, <devicename>C:</devicename>, and the second slice contains a
	  FreeBSD installation.  This example FreeBSD installation has three
	  partitions, and a swap partition.</para>

	<para>The three partitions will each hold a filesystem.  Partition
	  <literal>a</literal> will be used for the root filesystem,
	  <literal>e</literal> for the <filename>/var</filename> directory
	  hierarchy, and <literal>f</literal> for the
	  <filename>/usr</filename> directory hierarchy.</para>

        <mediaobject>
          <imageobject>
            <imagedata fileref="install/disk-layout" format="EPS">
          </imageobject>
 
          <textobject>
	    <literallayout class="monospaced">.-----------------.  --.
|                 |    |
|  DOS / Windows  |    |
:                 :     >  First slice, ad0s1
:                 :    |
|                 |    |
:=================:  ==:                               --.
|                 |    |  Partition a, mounted as /      |
|                 |     > referred to as ad0s2a          |
|                 |    |                                 |
:-----------------:  ==:                                 |
|                 |    |  Partition b, used as swap      |
|                 |     > referred to as ad0s2b          |
|                 |    |                                 |
:-----------------:  ==:                                 |  Partition c, no
|                 |    |  Partition e, used as /var       > filesystem, all 
|                 |     > referred to as ad0s2e          |  of FreeBSD slice,
|                 |    |                                 |  ad0s2c
:-----------------:  ==:                                 |
|                 |    |                                 |
:                 :    |  Partition f, used as /usr      |
:                 :     > referred to as ad0s2f          |
:                 :    |                                 |
|                 |    |                                 |
|                 |  --'                                 |
`-----------------'                                    --'</literallayout>
          </textobject>
        </mediaobject>
      </example>
    </sect2>


    <sect2 id="main-fdisk">
      <title>Creating Slices using FDisk</title>

      <note>
	<para>No changes you make at this point will be written to the disk.
	  If you think you have made a mistake and want to start again you can
	  use the menus to exit <application>Sysinstall</application> and try
	  again.  If you get confused and can not see how to exit you can
	  always turn your computer off.</para>
      </note>

      <para>After choosing to begin a standard installation in
	<application>Sysinstall</application> you will be shown this
	message:</para>

      <screen>                                 Message
 In the next menu, you will need to set up a DOS-style ("fdisk")
 partitioning scheme for your hard disk. If you simply wish to devote
 all disk space to FreeBSD (overwriting anything else that might be on
 the disk(s) selected) then use the (A)ll command to select the default
 partitioning scheme followed by a (Q)uit. If you wish to allocate only
 free space to FreeBSD, move to a partition marked "unused" and use the
 (C)reate command. 
                                [  OK  ] 

                      [ Press enter to continue ]</screen>

      <para>Press <keycap>Enter</keycap> as instructed.  You will then be
	shown a list of all the hard drives that the kernel found when it
	carried out the device probes.  
	<xref linkend="sysinstall-fdisk-drive1"> shows an example from a
	system with two IDE disks.  They have been called
	<devicename>ad0</devicename> and <devicename>ad2</devicename>.</para>

      <figure id="sysinstall-fdisk-drive1">
	<title>Select Drive for FDisk</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/fdisk-drive1" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>You might be wondering why <devicename>ad1</devicename> is not
	listed here.  Why has it been missed?</para>

      <para>Consider what would happen if you had two IDE hard disks, one
	as the master on the first IDE controller, and one as the master on
	the second IDE controller.  If FreeBSD numbered these as it found
	them, as <devicename>ad0</devicename> and
	<devicename>ad1</devicename> then everything would work.</para>

      <para>But if you then added a third disk, as the slave device on the
	first IDE controller, it would now be <devicename>ad1</devicename>,
	and the previous <devicename>ad1</devicename> would become
	<devicename>ad2</devicename>.  Because device names (such as
	<devicename>ad1s1a</devicename>) are used to find filesystems, you
	may suddenly discover that some of your filesystems no longer
	appear correctly, and you would need to change your FreeBSD
	configuration.</para>
      
      <para>To work around this, the kernel can be configured to name IDE
	disks based on where they are, and not the order in which they were
	found.  With this scheme the master disk on the second IDE
	controller will <emphasis>always</emphasis> be
	<devicename>ad2</devicename>, even if there are no
	<devicename>ad0</devicename> or <devicename>ad1</devicename>
	devices.</para>

      <para>This configuration is the default for the FreeBSD kernel, which
	is why this display shows <devicename>ad0</devicename> and
	<devicename>ad2</devicename>.  The machine on which this screenshot
	was taken had IDE disks on both master channels of the IDE
	controllers, and no disks on the slave channels.</para>

      <para>You should select the disk on which you want to install FreeBSD,
	and then press &gui.ok;.
	<application>FDisk</application> will start, with a display similar to
	that shown in <xref linkend="sysinstall-fdisk1">.</para>

      <para>The <application>FDisk</application> display is broken into three
	sections.</para>

      <para>The first section, covering the first two lines of the display,
	shows details about the currently selected disk, including its FreeBSD
	name, the disk geometry, and the total size of the disk.</para>

      <para>The second section shows the slices that are currently on the
	disk, where they start and end, how large they are, the name FreeBSD
	gives them, and their description and sub-type.  This example shows two
	small unused slices, which are artifacts of disk layout schemes on the
	PC.  It also shows one large FAT slice, which almost certainly appears
	as <devicename>C:</devicename> in DOS / Windows, and an extended
	slice, which may contain other drive letters for DOS / Windows.</para>

      <para>The third section shows the commands that are available in
	<application>FDisk</application>.</para>

      <figure id="sysinstall-fdisk1">
	<title>Typical Fdisk Partitions Before Editing</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/fdisk-edit1" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>What you do now will depend on how you want to slice up your
	disk.</para>

      <para>If you want to use FreeBSD for the entire disk (which will delete
	all the other data on this disk when you confirm that you want
	<application>Sysinstall</application> to continue later in the
	installation process) then you can press <keycap>A</keycap>, which
	corresponds to the <guimenuitem>Use Entire Disk</guimenuitem> option.
	The existing slices will be removed, and replaced with a small area
	flagged as <literal>unused</literal> (again, an artifact of PC disk
	layout), and then one large slice for FreeBSD.  If you do this then
	you should then select the newly created FreeBSD slice using the arrow
	keys, and press <keycap>S</keycap> to mark the slice as being
	bootable.  The screen will then look very similar to 
	<xref linkend="sysinstall-fdisk2">.  Note the
	<literal>A</literal> in the <literal>Flags</literal> column, which
	indicates that this slice is <emphasis>active</emphasis>, and will be
	booted from.</para>

      <para>If you will be deleting an existing slice to make space for
	FreeBSD then you should select the slice using the arrow keys, and
	then press <keycap>D</keycap>.  You can then press <keycap>C</keycap>,
	and be prompted for size of slice you want to create.  Enter the
	appropriate figure and press <keycap>Enter</keycap>.</para>
      
      <para>If you have already made space for FreeBSD (perhaps by using a
	tool such as <application>Partition Magic</application>) then you can
	press <keycap>C</keycap> to create a new slice.  Again, you will be
	prompted for the size of slice you would like to create.</para>

      <figure id="sysinstall-fdisk2">
	<title>Fdisk Partition Using Entire Disk</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/fdisk-edit2" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>When finished, press <keycap>Q</keycap>.  Your changes will be
	saved in <application>Sysinstall</application>, but will not yet be
	written to disk.</para>
    </sect2>

    <sect2 id="bootmgr">
      <title>Install a Boot Manager</title>

      <para>You now have the option to install a boot manager.  In general,
	you should choose to install the FreeBSD boot manager if:</para>

      <itemizedlist>
	<listitem>
	  <para>You have more than one drive, and have installed FreeBSD onto
	    a drive other than the first one.</para>
	</listitem>

	<listitem>
	  <para>You have installed FreeBSD alongside another operating system
	    on the same disk, and you want to choose whether to start FreeBSD
	    or the other operating system when you start the computer.</para>
	</listitem>
      </itemizedlist>

      <para>Make your choice and press <keycap>Enter</keycap>.</para>

      <figure id="sysinstall-bootmgr">
	<title>Sysinstall Boot Manager Menu</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/boot-mgr" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The help screen, reached by pressing <keycap>F1</keycap>,
	discusses the problems that can be encountered when trying to share
	the hard disk between operating systems.</para>
    </sect2>

    <sect2>
      <title>Creating Slices on Another Drive</title>

      <para>If there is more than one drive, it will return to the
	Select Drives screen after the boot manager selection.  If you wish to
	install FreeBSD on to more than one disk, then you can select another
	disk here and repeat the slice process using
	<application>FDisk</application>.</para>

      <figure id="sysinstall-fdisk-drive2">
	<title>Exit Select Drive</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/fdisk-drive2" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The <keycap>Tab</keycap> key toggles between the last drive
	selected, &gui.ok;, and 
	&gui.cancel;.</para>

      <para>Press the <keycap>Tab</keycap> once to toggle to the
	&gui.ok;, then
	press <keycap>Enter</keycap>
	to continue with the installation.</para>
    </sect2>

    <sect2 id="disklabeleditor">
      <title>Creating Partitions using
	<application>Disklabel</application></title>
      
      <para>You must now create some partitions inside each slice that you
	have just created.  Remember that each partition is lettered, from
	<literal>a</literal> through to <literal>h</literal>, and that
	partitions <literal>b</literal>, <literal>c</literal>, and
	<literal>d</literal> have conventional meanings that you should adhere
	to.</para>

      <para>Certain applications can benefit from particular partition
	schemes, especially if you are laying out partitions across more than
	one disk. However, for this, your first FreeBSD installation, you do
	not need to give too much thought to how you partition the disk.  It
	is more important that you install FreeBSD and start learning how to
	use it.  You can always re-install FreeBSD to change your partition
	scheme when you are more familiar with the operating system.</para>

      <para>This scheme features four partitions&mdash;one for swap space, and
	three for filesystems.</para>

      <table frame="none">
	<title>Partition Layout for First Disk</title>

	<tgroup cols="4">
	  <thead>
	    <row>
	      <entry>Partition</entry>
	      
	      <entry>Filesystem</entry>

	      <entry>Size</entry>

	      <entry>Description</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry><literal>a</literal></entry>

	      <entry><filename>/</filename></entry>

	      <entry>100MB</entry>

	      <entry>This is the root file system.  Every other filesystem
		will be mounted somewhere under this one.  100MB is a
		reasonable size for this filesystem.  You will not be storing
		too much data on it, as a regular FreeBSD install will put
		about 40MB of data here.  The remaining space is for temporary
		data, and also leaves expansion space if future versions of
		FreeBSD need more space in <filename>/</filename>.</entry>
	    </row>

	    <row>
	      <entry><literal>b</literal></entry>

	      <entry>N/A</entry>

	      <entry>2-3 x RAM</entry>

	      <entry><para>The system's swap space is kept on this partition.
		  Choosing the right amount of swap space can be a bit of an
		  art.  A good rule of thumb is that your swap
		  space should be two or three times as much as the
		  available physical memory (RAM).
		  You should also have at least 64MB of swap, so if you have
		  less than 32MB of RAM in your computer then set the swap
		  amount to 64MB.</para><para>

		  If you have more than one disk then you can put swap
		  space on each disk.  FreeBSD will then use each disk for 
		  swap, which effectively speeds up the act of swapping.  In
		  this case, calculate the total amount of swap you need
		  (e.g., 128MB), and then divide this by the number of disks
		  you have (e.g., two disks) to give the amount of swap you
		  should put on each disk, in this example, 64MB of swap per
		  disk.</para></entry>
	    </row>

	    <row>
	      <entry><literal>e</literal></entry>

	      <entry><filename>/var</filename></entry>

	      <entry>50MB</entry>

	      <entry>The <filename>/var</filename> directory contains variable
		length files; log files, and other administrative files.  Many
		of these files are read-from or written-to extensively during
		FreeBSD's day-to-day running.  Putting these files on another
		filesystem allows FreeBSD to optimise the access of these
		files without affecting other files in other directories that
		do not have the same access pattern.</entry>
	    </row>

	    <row>
	      <entry><literal>f</literal></entry>

	      <entry><filename>/usr</filename></entry>

	      <entry>Rest of disk</entry>

	      <entry>All your other files will typically be stored in
		<filename>/usr</filename>, and its subdirectories.</entry>
	    </row>
	  </tbody>
	</tgroup>
      </table>
      
      <para>If you will be installing FreeBSD on to more than one disk then
	you must also create partitions in the other slices that you
	configured.  The easiest way to do this is to create two partitions on
	each disk, one for the swap space, and one for a filesystem.</para>

      <table frame="none">
	<title>Partition Layout for Subsequent Disks</title>

	<tgroup cols="4">
	  <thead>
	    <row>
	      <entry>Partition</entry>
	      
	      <entry>Filesystem</entry>

	      <entry>Size</entry>

	      <entry>Description</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry><literal>b</literal></entry>

	      <entry>N/A</entry>

	      <entry>See description</entry>

	      <entry>As already discussed, you can split swap space across
		each disk.  Even though the <literal>a</literal> partition is
		free, convention dictates that swap space stays on the
		<literal>b</literal> partition.</entry>
	    </row>

	    <row>
	      <entry><literal>e</literal></entry>

	      <entry>/disk<replaceable>n</replaceable></entry>

	      <entry>Rest of disk</entry>

	      <entry>The rest of the disk is taken up with one big partition.
		This could easily be put on the <literal>a</literal>
		partition, instead of the <literal>e</literal> partition.
		However, convention says that the <literal>a</literal>
		partition on a slice is reserved for the filesystem that will
		be the root (<filename>/</filename>) filesystem.  You do not
		have to follow this convention, but
		<application>Sysinstall</application> does, so following it
		yourself makes the installation slightly cleaner.  You can
		choose to mount this filesystem anywhere; this example
		suggests that you mount them as directories
		<filename>/disk<replaceable>n</replaceable></filename>, where
		<replaceable>n</replaceable> is a number that changes for each
		disk.  But you can use another scheme if you prefer.</entry>
	    </row>
	  </tbody>
	</tgroup>
      </table>

      <para>Having chosen your partition layout you can now create it using
	<application>Sysinstall</application>.  You will see this
	message:</para>

      <screen>                                 Message
 Now, you need to create BSD partitions inside of the fdisk
 partition(s) just created. If you have a reasonable amount of disk
 space (200MB or more) and don't have any special requirements, simply
 use the (A)uto command to allocate space automatically. If you have
 more specific needs or just don't care for the layout chosen by
 (A)uto, press F1 for more information on manual layout.  

                                [  OK  ] </screen>

      <para>Press <keycap>Enter</keycap> to start the FreeBSD partition
	editor, called <application>Disklabel</application>.</para>

      <para><xref linkend="sysinstall-label"> shows the display when you first
	start <application>Disklabel</application>.  The display is divided in
	to three sections.</para>

      <para>The first few lines show the name of the disk you are currently
	working on, and the slice that contains the partitions you are
	creating (at this point <application>Disklabel</application> calls
	this the <literal>Partition name</literal> rather than slice name).
	This display also shows the amount of free space within the slice;
	that is, space that was set aside in the slice, but that has not yet
	been assigned to a partition.</para>

      <para>The middle of the display shows the partitions that have been
	created, the name of the filesystem that each partition contains,
	their size, and some options pertaining to the creation of the
	filesystem.</para>

      <para>The bottom third of the screen shows the keystrokes that are valid
	in <application>Disklabel</application>.</para>

      <figure id="sysinstall-label">
	<title>Sysinstall Disklabel Editor</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/disklabel-ed1" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para><application>Disklabel</application> can automatically create
	partitions for you and assign them default sizes.  Try this now, by
	Pressing <keycap>A</keycap>.  You will see a display similar to that
	shown in <xref linkend="sysinstall-label2">.  Depending on the size of
	the disk you are using the defaults may or may not be appropriate.
	This does not matter, as you do not have to accept the
	defaults.</para>

	<note>
	  <para>Beginning with FreeBSD 4.5, the default partitioning assigns
	    the <filename>/tmp</filename> directory its own partition instead
	    of being part of the <filename>/</filename> partition.  This
	    helps avoid filling the <filename>/</filename> partition with
	    temporary files.</para>
	</note>

      <figure id="sysinstall-label2">
	<title>Sysinstall Disklabel Editor With Auto Defaults</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/disklabel-auto" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>To delete the suggested partitions, and replace them with your
	own, use the arrow keys to select the first partition, and press
	<keycap>D</keycap> to delete it.  Repeat this to delete all the
	suggested partitions.</para>

      <para>To create the first partition (<literal>a</literal>, mounted as
	<filename>/</filename>), make sure the disk information at the top of
	the screen is selected, and press <keycap>C</keycap>.  A dialog box
	will appear prompting you for the size of the new partition (as shown
	in <xref linkend="sysinstall-label-add">).  You can enter the size as
	the number of disk blocks you want to use, or, more usefully, as a
	number followed by either <literal>M</literal> for megabytes,
	<literal>G</literal> for gigabytes, or <literal>C</literal> for
	cylinders.</para>

      <figure id="sysinstall-label-add">
	<title>Free Space For Root Partition</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/disklabel-root1" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The default size shown will create a partition that takes up the
	rest of the slice.  If you are using the partition sizes described
	earlier, then delete the existing figure using
	<keycap>Backspace</keycap>, and then type in
	<userinput>64M</userinput>, as shown in 
	<xref linkend="sysinstall-label-add2">.  Then press
	&gui.ok;.</para>
      
      <figure id="sysinstall-label-add2">
	<title>Edit Root Partition Size</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/disklabel-root2" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Having chosen the partition's size you will then asked whether
	this partition will contain a filesystem or swap space.  The dialog
	box is shown in <xref linkend="sysinstall-label-type">.  This first
	partition will contain a filesystem, so check that
	<guimenuitem>FS</guimenuitem> is selected and then press
	<keycap>Enter</keycap>.</para>

      <figure id="sysinstall-label-type">
	<title>Choose The Root Partition Type</title>
	
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/disklabel-fs" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>
      
      <para>Finally, because you are creating a filesystem, you must tell
	<application>Disklabel</application> where the filesystem is to be
	mounted.  The dialog box is shown in 
	<xref linkend="sysinstall-label-mount">.  The root filesystem's mount
	point is <filename>/</filename>, so type <userinput>/</userinput>, and
	then press <keycap>Enter</keycap>.</para>

      <figure id="sysinstall-label-mount">
	<title>Choose The Root Mount Point</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/disklabel-root3" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The display will then update to show you the newly created
	partition.  You should repeat this procedure for the other
	partitions.  When you create the swap partition you will not be
	prompted for the filesystem mount point, as swap partitions are never
	mounted.  When you create the final partition,
	<filename>/usr</filename>, you can leave the suggested size as is, to
	use the rest of the slice.</para>

      <para>Your final FreeBSD DiskLabel Editor screen will appear similar to
	<xref linkend="sysinstall-label4">, although your values chosen may
	be different. Press <keycap>Q</keycap> to finish.</para>

      <figure id="sysinstall-label4">
	<title>Sysinstall Disklabel Editor</title>
	
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/disklabel-ed2" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>
    </sect2>
  </sect1>

  <sect1>
    <title>Choosing What To Install</title>

    <sect2 id="distset">
      <title>Select The Distribution Set</title>

      <para>Deciding which distribution set to install will depend largely
	on the intended use of the system and the amount of disk space
	available.  The predefined options range from installing the
	smallest possible configuration to everything.  Those who are
	new to Unix and/or FreeBSD should almost certainly select one
	of these canned options.  Customizing a distribution set is
	typically for the more experienced user.</para>

      <para>Press <keycap>F1</keycap> for more information on the 
	distribution set options and what they contain.  When finished
	reviewing the help, pressing <keycap>Enter</keycap> will return
	to the Select Distributions Menu.</para>

      <para>If a graphical user interface is desired then a distribution
	set that is preceded by an <literal>X</literal> should be
	chosen.  The configuration of XFree86 and selection of a default
	desktop is part of the post-installation steps.</para>

      <para>The default XFree86 version installed is the 3.x branch.  You
	should check to see whether your video card is supported at the
	<ulink url="http://www.xfree86.org/">XFree86</ulink> web site.
	If it is only supported under the 4.x branch, then you will need
	to install and configure XFree86 4.x after installation.  Select a
	distribution without X and refer to <xref linkend="x11"> for
	more information.</para>

      <para>If compiling a custom kernel is anticipated, select an option
	which includes the source code.  For more information on why a
	custom kernel should be built or how to build a custom kernel see
	<xref linkend="kernelconfig">.</para>

      <para>Obviously, the most versatile system is one that includes
	everything.  If there is adequate disk space, select 
	<guimenuitem>All</guimenuitem> as shown in
	<xref linkend="distribution-set1"> by using the arrow keys and
	press <keycap>Enter</keycap>.  If there is a concern about disk
	space consider using an option that is more suitable for the
	situation.  Other distributions can be added after installation.</para>

      <figure id="distribution-set1">
	<title>Choose Distributions</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/dist-set" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>
    </sect2>

    <sect2 id="portscol">
      <title>Installing The Ports Collection</title>

      <para>After selecting the desired distribution, an opportunity to
	install the FreeBSD Ports Collection is presented.  The ports
	collection is an easy and convenient way to install software.
	The ports collection does not contain the source code necessary
	to compile the software.  It is a collection of files which
	automates the downloading, compiling and installation.
	<xref linkend="ports"> discusses how to use the ports
	collection.</para>

      <para>The installation program does not check to see if you have
	adequate space.  Select this option only if you have
	adequate hard disk space.</para>

<screen>                         User Confirmation Requested
 Would you like to install the FreeBSD ports collection? 

 This will give you ready access to over &os.numports; ported software packages,
 at a cost of around 100MB of disk space when "clean" and possibly much
 more than that if a lot of the distribution tarballs are loaded
 (unless you have the extra CDs from a FreeBSD CD/DVD distribution
 available and can mount it on /cdrom, in which case this is far less
 of a problem). 

 The ports collection is a very valuable resource and well worth having
 on your /usr partition, so it is advisable to say Yes to this option. 

 For more information on the ports collection & the latest ports,
 visit: 
     http://www.FreeBSD.org/ports  

                              [ Yes ]     No</screen>

      <para>Select <guibutton>[ Yes ]</guibutton> with the arrow keys to
	install the ports collection or <guibutton>[ No ]</guibutton> to
	skip this option.  Press <keycap>Enter</keycap> to continue.
	The Choose Distributions menu will redisplay.</para>

      <figure id="distribution-set2">
	<title>Confirm Distributions</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/dist-set2" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>If satisfied with the options, select
	<guimenuitem>Exit</guimenuitem> with the arrow keys, ensure that
	&gui.ok; is highlighted, and press
	<keycap>Enter</keycap> to continue.</para>

    </sect2>
  </sect1>

  <sect1 id="install-media">
    <title>Choosing Your Installation Media</title>

    <para>If Installing from a CDROM, use the arrow keys to highlight 
      <guimenuitem>Install from a FreeBSD CD/DVD</guimenuitem>.  Ensure
      that &gui.ok; is highlighted, then press
      <keycap>Enter</keycap> to proceed with the installation.</para>
    
    <para>For other methods of installation, select the appropriate
      option and follow the instructions.</para>

    <para>Press <keycap>F1</keycap> to display the Online Help for
      installation media.  Press <keycap>Enter</keycap> to return
      to the media selection menu.</para>

    <figure id="choose-media">
      <title>Choose Installation Media</title>

      <mediaobject>
	<imageobject>
	  <imagedata fileref="install/media" format="PNG">
	</imageobject>
      </mediaobject>
    </figure>

    <note>
      <title>FTP Installation Modes</title>

      <indexterm>
	<primary>installation</primary>
	<secondary>network</secondary>
	<tertiary>FTP</tertiary>
      </indexterm>
      
      <para>There are three FTP installation modes you can choose from:
	active FTP, passive FTP, or via a HTTP proxy.</para>

      <variablelist>
	<varlistentry>
	  <term>FTP Active, <guimenuitem>Install from an FTP
	      server</guimenuitem></term>
	  
	  <listitem>
	    <para>This option will make all FTP transfers 
	      use <quote>Active</quote>
	      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!</para>
	  </listitem>
	</varlistentry>
	
	<varlistentry>
	  <term>FTP Passive, <guimenuitem>Install from an FTP server through a
	      firewall</guimenuitem></term>
	  
	  <listitem>
	    <indexterm>
	      <primary>FTP</primary>
	      <secondary>Passive mode</secondary>
	    </indexterm>

	    <para>This option instructs FreeBSD to use 
	      <quote>Passive</quote> mode for all FTP operations.  
	      This allows the user to pass through firewalls
	      that do not allow incoming connections on random port
	      addresses.</para>
	  </listitem>
	</varlistentry>
	
	<varlistentry>
	  <term>FTP via a HTTP proxy, <guimenuitem>Install from an FTP server
	      through a http proxy</guimenuitem></term>
	    
	  <listitem>
	    <indexterm>
	      <primary>FTP</primary>
	      <secondary>via a HTTP proxy</secondary>
	    </indexterm>
	    
	    <para>This option instructs FreeBSD to use the HTTP
	      protocol (like a web browser) to connect to a proxy
	      for all FTP operations.  The proxy will translate
	      the requests and send them to the FTP server.
	      This allows the user to pass through firewalls
	      that do not allow FTP at all, but offer a HTTP
	      proxy.
	      In this case, you have to specify the proxy in
	      addition to the FTP server.</para>
	  </listitem>
	</varlistentry>
      </variablelist>
      
      <para>For a proxy FTP server, you should usually give the name of the
	server you really want as a part of the username, after an
	<quote>@</quote> sign.  The proxy server then <quote>fakes</quote>
	the real server.  For example, assuming you want to install from
	<hostid role="fqdn">ftp.FreeBSD.org</hostid>, using the proxy FTP
	server <hostid role="fqdn">foo.example.com</hostid>, listening on port
	1024.</para>
      
      <para>In this case, you go to the options menu, set the FTP username
	to <literal>ftp@ftp.FreeBSD.org</literal>, and the password to your
	email address.  As your installation media, you specify FTP (or
	passive FTP, if the proxy supports it), and the URL
	<literal>ftp://foo.example.com:1234/pub/FreeBSD</literal>.</para>

      <para>Since <filename>/pub/FreeBSD</filename> from 
	<hostid role="fqdn">ftp.FreeBSD.org</hostid> is proxied under 
	<hostid role="fqdn">foo.example.com</hostid>, you are able to install
	from <emphasis>that</emphasis> machine (which will fetch the files
	from <hostid role="fqdn">ftp.FreeBSD.org</hostid> as your 
	installation requests them).</para>
    </note>
  </sect1>

  <sect1 id="install-final-warning">
    <title>Committing to the Installation</title>

    <para>The installation can now proceed if desired.  This is also
      the last chance for aborting the installation to prevent changes
      to the hard drive.</para>

    <screen>                       User Confirmation Requested
 Last Chance! Are you SURE you want to continue the installation? 

 If you're running this on a disk with data you wish to save then WE
 STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! 

 We can take no responsibility for lost disk contents!  

                             [ Yes ]    No</screen>

    <para>Select <guibutton>[ Yes ]</guibutton> and press 
      <keycap>Enter</keycap> to proceed.</para>

    <para>The installation time will vary according to the distribution
      chosen, installation media used, and the speed of the computer.
      There will be a series of
      messages displayed indicating the status.</para>
    
    <para>The installation is complete when the following message is
      displayed:</para>

    <screen>                               Message 

Congratulations! You now have FreeBSD installed on your system. 

We will now move on to the final configuration questions. 
For any option you do not wish to configure, simply select No. 

If you wish to re-enter this utility after the system is up, you may
do so by typing: /stand/sysinstall .  

                                 [ OK ] 

                      [  Press enter to continue  ]</screen>

    <para>Press <keycap>Enter</keycap> to proceed with post-installation
      configurations.</para>

    <para>Selecting <guibutton>[ No ]</guibutton> and pressing
      <keycap>Enter</keycap> will abort
      the installation so no changes will be made to your system.  The
      following message will appear:</para>

    <screen>                                Message
Installation complete with some errors.  You may wish to scroll
through the debugging messages on VTY1 with the scroll-lock feature. 
You can also choose "No" at the next prompt and go back into the
installation menus to try and retry whichever operations have failed. 

                                 [ OK ]</screen>

    <para>This message is generated because nothing was installed.
      Pressing <keycap>Enter</keycap> will return to the
      Main Installation Menu to exit the installation.</para>
  </sect1>

  <sect1 id="install-post">
    <title>Post-installation</title>

    <para>Configuration of various options follows the successful 
      installation.    An option can be configured by re-entering the
      configuration options before booting the new FreeBSD
      system or after installation using
      <command>/stand/sysinstall</command> and selecting
      <guimenuitem>Configure</guimenuitem>.</para>

    <sect2 id="inst-network-dev">
      <title>Network Device Configuration</title>

      <para>If you previously configured PPP for an FTP install, this screen
	will not display and can be configured later as described
	above.</para>

      <para>For detailed information on Local Area Networks and
	configuring FreeBSD as a gateway/router refer to the tutorial
	<ulink url="../ppp-primer/index.html">
	PPP - Pedantic PPP Primer</ulink>.</para>

      <screen>                      User Confirmation Requested 
   Would you like to configure Ethernet or SLIP/PPP network devices?

                             [ Yes ]   No</screen>

      <para>To configure a network device, select
	<guibutton>[ Yes ]</guibutton> and press <keycap>Enter</keycap>.
      Otherwise, select <guibutton>[ No ]</guibutton> to continue.</para>

      <figure id="ed-config1">
	<title>Selecting An Ethernet Device</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/ed0-conf" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Select the interface to be configured with the arrow keys and press
	<keycap>Enter</keycap>.</para>

      <screen>                      User Confirmation Requested 
       Do you want to try IPv6 configuration of the interface?

                              Yes   [ No ]</screen>

      <para>In this private local area network the current Internet
	type protocol (IPv4) was sufficient and <guibutton>[ No ]</guibutton>
	was selected with the arrow keys and <keycap>Enter</keycap>
	pressed.</para>

      <para>If you want to try the new Internet protocol (IPv6), choose
	<guibutton>[ Yes ]</guibutton> and press <keycap>Enter</keycap>.
	It will take several seconds to scan for RA servers.</para>

      <screen>                             User Confirmation Requested 
        Do you want to try DHCP configuration of the interface?

                              Yes   [ No ]</screen>

      <para>If DHCP (Dynamic Host Configuration Protocol) is not required
	select <guibutton>[ No ]</guibutton> with the arrow keys and press
	<keycap>Enter</keycap>.</para>

      <para>Selecting <guibutton>[ Yes ]</guibutton> will execute
	<application>dhclient</application>, and if successful, will fill
	in the network configuration information automatically.  Refer to
	<xref linkend="dhcp"> for more information.</para>

      <para>The following Network Configuration screen shows the
	configuration of the Ethernet device for a system that will act
	as the gateway for a Local Area Network.</para>

      <figure id="ed-config2">
	<title>Set Network Configuration For ed0</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/ed0-conf2" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Use <keycap>Tab</keycap> to select the information fields and
	fill in appropriate information:</para>

      <variablelist>
	<varlistentry>
	  <term>Host</term>

	  <listitem>
	    <para>The fully-qualified hostname, e.g. k6-2.example.com in
	      this case.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Domain</term>

	  <listitem>
	    <para>The name of the domain that your machine is
	      in, e.g. example.com for this case.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>IPv4 Gateway</term>

	  <listitem>
	    <para>IP address of host forwarding packets to non-local
	      destinations. Fill this in only if the machine is a node
	      on the network. <emphasis>Leave this field blank</emphasis>
	      if the machine is the gateway to the Internet for the
	      network.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Name server</term>

	  <listitem>
	    <para>IP address of your local DNS server. There is no local
	      DNS server on this private local area network so the IP
	      address of the provider's DNS server (208.163.10.2) was
	      used.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>IPv4 address</term>

	  <listitem>
	    <para>The IP address to be used for this interface was
	      192.168.0.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Netmask</term>

	  <listitem>
	    <para>The address block being used for this local area
	      network is a Class C block (192.168.0.0 -
	      192.168.255.255).  The default netmask is for a Class C
	      network (255.255.255.0).</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Extra options to ifconfig</term>

	  <listitem>
	    <para>Any interface-specific options to <command>ifconfig</command>
	      you would like to add. There were none in this case.</para>
	  </listitem>
	</varlistentry>

      </variablelist>

      <para>Use <keycap>Tab</keycap> to select &gui.ok;
	when finished and press <keycap>Enter</keycap>.</para>


      <screen>                      User Confirmation Requested 
        Would you like to Bring Up the ed0 interface right now?

                             [ Yes ]   No</screen>

      <para>Choosing <guibutton>[ Yes ]</guibutton> and pressing
	<keycap>Enter</keycap> will bring
	the machine up on the network and be ready for use after leaving
	the installation.</para>
    </sect2>

    <sect2 id="gateway">
      <title>Configure Gateway</title>

      <screen>                       User Confirmation Requested 
       Do you want this machine to function as a network gateway?

                              [ Yes ]    No</screen>

      <para>If the machine will be acting as the gateway for a local area
	network and forwarding packets between other machines then select
	<guibutton>[ Yes ]</guibutton> and press <keycap>Enter</keycap>.
	If the machine is a node on a network then 
	select <guibutton>[ No ]</guibutton> and press
	<keycap>Enter</keycap> to continue.</para>
    </sect2>

    <sect2 id="inetd-services">
      <title>Configure Internet Services</title>

      <screen>                      User Confirmation Requested
Do you want to configure inetd and the network services that it provides?

                               Yes   [ No ]</screen>

      <para>If <guibutton>[ No ]</guibutton> is selected, various services
	such <application>telnetd</application> will not be enabled.  This
	means that remote users will not be able to
	<application>telnet</application> into this machine.  Local users
	will be still be able to access remote machines with
	<application>telnet</application>.</para>

      <para>These services can be enabled after installation by editing
	<filename>/etc/inetd.conf</filename> with your favorite text editor.
	See <xref linkend="inetd-overview"> for more information.</para>

      <para>Select <guibutton>[ Yes ]</guibutton> if you wish to
	configure these services during install.  An additional
	confirmation will display.</para>

      <screen>                      User Confirmation Requested
The Internet Super Server (inetd) allows a number of simple Internet
services to be enabled, including finger, ftp and telnetd.  Enabling
these services may increase risk of security problems by increasing
the exposure of your system.

With this in mind, do you wish to enable inetd?

                             [ Yes ]   No</screen>

      <para>Select <guibutton>[ Yes ]</guibutton> to continue.</para>

      <screen>                      User Confirmation Requested
inetd(8) relies on its configuration file, /etc/inetd.conf, to determine
which of its Internet services will be available.  The default FreeBSD
inetd.conf(5) leaves all services disabled by default, so they must be
specifically enabled in the configuration file before they will
function, even once inetd(8) is enabled.  Note that services for
IPv6 must be seperately enabled from IPv4 services.

Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to
use the current settings.

                             [ Yes ]   No</screen>

      <para>Selecting <guibutton>[ Yes ]</guibutton> will allow adding
	services by deleting the <literal>#</literal> at the beginning
	of a line.</para>

      <figure id="inetd-edit">
	<title>Editing <filename>inetd.conf</filename></title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/edit-inetd-conf" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>After adding the desired services, pressing <keycap>Esc</keycap>
	will display a menu which will allow exiting and saving 
	the changes.</para>

    </sect2>

    <sect2 id="ftpanon">
      <title>Anonymous FTP</title>

      <screen>                      User Confirmation Requested
 Do you want to have anonymous FTP access to this machine? 

                              Yes    [ No ]</screen>

      <sect3 id="deny-anon">
	<title>Deny Anonymous FTP</title>
      
	<para>Selecting the default <guibutton>[ No ]</guibutton> and pressing
	  <keycap>Enter</keycap> will still allow users who have accounts
	  with passwords to use FTP to access the machine.</para>
      </sect3>

      <sect3 id="ftpallow">
	<title>Allow Anonymous FTP</title>

	<para>Anyone can access your machine if you elect to allow
	  anonymous FTP connections.  The security implications should be
	  considered before enabling this option. For more information
	  about security see <xref linkend="security">.</para>

	<para>To allow anonymous FTP, use the arrow keys to select
	  <guibutton>[ Yes ]</guibutton> and press <keycap>Enter</keycap>.
	  The following screen (or similar) will display:</para>

	<figure id="anon-ftp2">
	  <title>Default Anonymous FTP Configuration</title>

	  <mediaobject>
	    <imageobject>
	      <imagedata fileref="install/ftp-anon1" format="PNG">
	    </imageobject>
	  </mediaobject>
	</figure>

	<para>Pressing <keycap>F1</keycap> will display the help:</para>

	<screen>This screen allows you to configure the anonymous FTP user.

The following configuration values are editable:

UID:     The user ID you wish to assign to the anonymous FTP user.
         All files uploaded will be owned by this ID.

Group:   Which group you wish the anonymous FTP user to be in.

Comment: String describing this user in /etc/passwd


FTP Root Directory:

        Where files available for anonymous FTP will be kept.

Upload subdirectory:

        Where files uploaded by anonymous FTP users will go.</screen>

	<para>The ftp root directory will be put in <filename>/var</filename>
	  by default.  If you do not have enough room there for the
	  anticipated FTP needs, the <filename>/usr</filename> directory
	  could be used by setting the FTP Root Directory to
	  <filename>/usr/ftp</filename>.</para>

	<para>When you are satisfied with the values, press 
	  <keycap>Enter</keycap> to continue.</para>

	<screen>                          User Confirmation Requested 
         Create a welcome message file for anonymous FTP users?

                              [ Yes ]    No</screen>

	<para>If you select <guibutton>[ Yes ]</guibutton> and press
	  <keycap>Enter</keycap>, an editor will automatically start
	  allowing you to edit the message.</para>

	<figure id="anon-ftp4">
	  <title>Edit The FTP Welcome Message</title>

	  <mediaobject>
	    <imageobject>
	      <imagedata fileref="install/ftp-anon2" format="PNG">
	    </imageobject>
	  </mediaobject>
	</figure>

	<para>This is a text editor called <command>ee</command>.  Use the
	  instructions to change the message or change the message later
	  using a text editor of your choice.  Note the file name/location
	  at the bottom of the editor screen.</para>

	<para>Press <keycap>Esc</keycap> and a pop-up menu will default
	  to <guimenuitem>a) leave editor</guimenuitem>.  Press
	  <keycap>Enter</keycap> to exit and continue.</para>
      </sect3>
    </sect2>

    <sect2 id="nfsconf">
      <title>Configure Network File Services</title>

      <para>Network File Services (NFS) allows sharing of files across a
	network.  A machine can be configured as a server, a client, or
	both.  Refer to <xref linkend="nfs"> for a more information.</para>

      <sect3 id="nsf-server-options">
	<title>NFS Server</title>

	<screen>                       User Confirmation Requested
 Do you want to configure this machine as an NFS server? 

                              Yes    [ No ]</screen>

	<para>If there is no need for a Network File System server or
	  client, select <guibutton>[ No ]</guibutton> and press
	  <keycap>Enter</keycap>.</para>

	<para>If <guibutton>[ Yes ]</guibutton> is chosen, a message will
	  pop-up indicating that the <filename>exports</filename> file must be created.</para>

	<screen>                               Message
Operating as an NFS server means that you must first configure an
/etc/exports file to indicate which hosts are allowed certain kinds of
access to your local file systems.
Press [Enter] now to invoke an editor on /etc/exports
                               [ OK ]</screen>

	<para>Press <keycap>Enter</keycap> to continue.  A text editor will
	  start allowing the <filename>exports</filename> file to be created and edited.</para>

	<figure id="nfs-server-edit">
	  <title>Editing <filename>exports</filename></title>

	  <mediaobject>
	    <imageobject>
	      <imagedata fileref="install/nfs-server-edit" format="PNG">
	    </imageobject>
	  </mediaobject>
	</figure>

	<para>Use the instructions to add the actual exported filesystems
	  now or later using a text editor of your choice.  Note the
	  file name/location at the bottom of the editor screen.</para>

	<para>Press <keycap>Esc</keycap> and a pop-up menu will default to
	  <guimenuitem>a) leave editor</guimenuitem>.  Press
	  <keycap>Enter</keycap> to exit and continue.</para>
      </sect3>

      <sect3 id="nfs-client-options">
	<title>NFS Client</title>

	<screen>                       User Confirmation Requested
 Do you want to configure this machine as an NFS client? 

                              Yes   [ No ]</screen>

	<para>With the arrow keys, select <guibutton>[ Yes ]</guibutton>
	  or <guibutton>[ No ]</guibutton> as appropriate and
	  press <keycap>Enter</keycap>.</para>
      </sect3>
    </sect2>

    <sect2 id="securityprofile">
      <title>Security Profile</title>

      <para>A <quote>security profile</quote> is a set of
	configuration options that attempts to achieve the desired
	ratio of security to convenience by enabling and disabling
	certain programs and other settings.  The more severe the
	security profile, the fewer programs will be enabled by
	default.  This is one of the basic principles of security: do
	not run anything except what you must.</para>

      <para>Please note that the security profile is just a default
	setting.  All programs can be enabled and disabled after you
	have installed FreeBSD by editing or adding the appropriate
	line(s) to <filename>/etc/rc.conf</filename>.  For more
	information, please see the &man.rc.conf.5; manual
	page.</para>

      <para>The following table describes what each of the security
	profiles does.  The columns are the choices you have for a
	security profile, and the rows are the program or feature that
	the profile enables or disables.</para>

      <table>
	<title>Possible security profiles</title>

	<tgroup cols=3>
	  <thead>
	    <row>
	      <entry></entry>

	      <entry>Extreme</entry>

	      <entry>Moderate</entry>
	    </row>
	  </thead>

	  <tbody>

	    <row>
	      <entry>&man.sendmail.8;</entry>

	      <entry>NO</entry>

	      <entry>YES</entry>
	    </row>

	    <row>
	      <entry>&man.sshd.8;</entry>

	      <entry>NO</entry>

	      <entry>YES</entry>
	    </row>

	    <row>
	      <entry>&man.portmap.8;</entry>

	      <entry>NO</entry>

	      <entry>MAYBE
		<footnote>
		  <para>The portmapper is enabled if the machine has
		    been configured as an NFS client or server earlier
		    in the installation.</para>
		</footnote>
	      </entry>
	    </row>

	    <row>
	      <entry>NFS server</entry>

	      <entry>NO</entry>

	      <entry>YES</entry>
	    </row>

	    <row>
	      <entry>&man.securelevel.8;</entry>

	      <entry>YES (2)
		<footnote>
		  <para>If you choose a security profile that sets the
		    securelevel (Extreme or High), you must be aware
		    of the implications.  Please read the &man.init.8;
		    manual page and pay particular attention to the
		    meanings of the security levels, or you may have
		    significant trouble later!</para>
		</footnote>
	      </entry>

	      <entry>NO</entry>
	    </row>
	  </tbody>
	</tgroup>
      </table>

      <screen>                       User Confirmation Requested
 Do you want to select a default security profile for this host (select
 No for "medium" security)? 

                            [ Yes ]    No</screen>

      <para>Selecting <guibutton>[ No ]</guibutton> and pressing
	<keycap>Enter</keycap> will set the security profile to medium.</para>

      <para>Selecting <guibutton>[ Yes ]</guibutton> and pressing
	<keycap>Enter</keycap> will allow selecting a different security
	profile.</para>

      <figure id="security-profile">
	<title>Security Profile Options</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/security" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Press <keycap>F1</keycap> to display the help.  Press
	<keycap>Enter</keycap> to return to selection menu.</para>

      <para>Use the arrow keys to choose <guimenuitem>Medium</guimenuitem>
	unless your are sure that another level is required for your needs.
	With &gui.ok; highlighted, press
	<keycap>Enter</keycap>.</para>

      <para>An appropriate confirmation message will display depending on
	which security setting was chosen.</para>

      <screen>                                 Message

Moderate security settings have been selected.

Sendmail and SSHd have been enabled, securelevels are
disabled, and NFS server setting have been left intact.
PLEASE NOTE that this still does not save you from having
to properly secure your system in other ways or exercise
due diligence in your administration, this simply picks
a standard set of out-of-box defaults to start with.

To change any of these settings later, edit /etc/rc.conf

                                  [OK]</screen>

      <screen>                                 Message

Extreme security settings have been selected.

Sendmail, SSHd, and NFS services have been disabled, and
securelevels have been enabled.
PLEASE NOTE that this still does not save you from having
to properly secure your system in other ways or exercise
due diligence in your administration, this simply picks
a more secure set of out-of-box defaults to start with.

To change any of these settings later, edit /etc/rc.conf

                                  [OK]</screen>

      <para>Press <keycap>Enter</keycap> to continue with the
	post-installation configuration.</para>

      <warning>
	<para>The security profile is not a silver bullet!  Even if
	  you use the extreme setting, you need to keep up with
	  security issues by reading an appropriate <ulink
	  url="../handbook/eresources.html#ERESOURCES-MAIL">mailing
	  list</ulink>, using good passwords and passphrases, and
	  generally adhering to good security practices.  It simply
	  sets up the desired security to convenience ratio out of the
	  box.</para>
      </warning>

    </sect2>

    <sect2 id="console">
      <title>System Console Settings</title>

      <para>There are several options available to customize the system
	console.</para>

      <screen>                      User Confirmation Requested 
       Would you like to customize your system console settings?

                              [ Yes ]  No</screen>

      <para>To view and configure the options, select
	<guibutton>[ Yes ]</guibutton> and press <keycap>Enter</keycap>.</para>

      <figure id="saver-options">
	<title>System Console Configuration Options</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/console-saver1" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>A commonly used option is the screensaver.  Use the arrow keys
	to select <guimenuitem>Saver</guimenuitem> and then press
	<keycap>Enter</keycap>.</para>

      <figure id="saver-select">
	<title>Screensaver Options</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/console-saver2" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Select the desired screen saver using the arrow keys
	and then press <keycap>Enter</keycap>.  The System Console
	Configuration menu will redisplay.</para>

      <para>The default time interval is 300 seconds.  To change the time
	interval, select <guimenuitem>Saver</guimenuitem> again.  At the
	Screensaver Options menu, select <guimenuitem>Timeout</guimenuitem>
	using the arrow keys and press <keycap>Enter</keycap>.  A pop-up
	menu will appear:</para>

      <figure id="saver-timeout">
	<title>Screensaver Timeout</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/console-saver3" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The value can be changed, then select &gui.ok;
	and press <keycap>Enter</keycap> to return to the System Console
	Configuration menu.</para>

      <figure id="saver-exit">
	<title>System Console Configuration Exit</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/console-saver4" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Selecting <guimenuitem>Exit</guimenuitem> and pressing
	<keycap>Enter</keycap> will continue with the post-installation
	configurations.</para>
    </sect2>

    <sect2 id="timezone">
      <title>Setting The Time Zone</title>

      <para>Setting the timezone for your machine will allow it to
	automatically correct for any regional time changes and perform
	other timezone related functions properly.</para>

      <para>The example shown is for a machine located in the Eastern
	time zone of the United States.  Your selections will vary according
	to your geographical location.</para>

      <screen>                      User Confirmation Requested 
          Would you like to set this machine's time zone now?

                            [ Yes ]   No</screen>

      <para>Select <guibutton>[ Yes ]</guibutton> and press
	<keycap>Enter</keycap> to set the time zone.</para>

      <screen>                       User Confirmation Requested
 Is this machine's CMOS clock set to UTC? If it is set to local time
 or you don't know, please choose NO here! 

                              Yes   [ No ]</screen>

      <para>Select <guibutton>[ Yes ]</guibutton> 
	or <guibutton>[ No ]</guibutton> according to how the machine's
	clock is configured and press <keycap>Enter</keycap>.</para>

      <figure id="set-timezone-region">
	<title>Select Your Region</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/timezone1" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The appropriate region is selected using the arrow keys
	and then press <keycap>Enter</keycap>.</para>

      <figure id="set-timezone-country">
	<title>Select Your Country</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/timezone2" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Select the appropriate country using the arrow keys
	and press <keycap>Enter</keycap>.</para>

      <figure id="set-timezone-locality">
	<title>Select Your Timezone</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/timezone3" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The appropriate time zone is selected using the arrow
	keys and pressing <keycap>Enter</keycap>.</para>

      <screen>                            Confirmation 
            Does the abbreviation 'EDT' look reasonable?

                            [ Yes ]   No</screen>

      <para>Confirm the abbreviation for the time zone is correct.
	If it looks okay, press <keycap>Enter</keycap> to continue with
	the post-installation configuration.</para>
    </sect2>

    <sect2 id="linuxcomp">
      <title>Linux Compatibility</title>

      <screen>                      User Confirmation Requested 
          Would you like to enable Linux binary compatibility?

                            [ Yes ]   No</screen>

      <para>Selecting <guibutton>[ Yes ]</guibutton> and pressing
	<keycap>Enter</keycap> will allow
	running Linux software on FreeBSD.  The install will proceed to add
	the appropriate packages for Linux compatibility.</para>

      <para>If installing by FTP, the machine will need to be connected to
	the Internet.  Sometimes a remote ftp site will not have all the
	distributions like the Linux binary compatibility.  This can
	be installed later if necessary.</para>
    </sect2>

    <sect2 id="mouse">
      <title>Mouse Settings</title>

      <para>This option will allow you to cut and paste text in the
	console and user programs with a 3-button mouse. If using a 2-button
	mouse, refer to manual page, &man.moused.8;, after installation for
	details on emulating the 3-button style.  This example depicts a
	non-USB mouse.</para>

      <screen>                      User Confirmation Requested 
         Does this system have a non-USB mouse attached to it?

                            [ Yes ]   No</screen>

      <para>Select <guibutton>[ Yes ]</guibutton> for a non-USB mouse or
	<guibutton>[ No ]</guibutton> for a USB mouse and press
	<keycap>Enter</keycap>.</para>

      <figure id="mouse-protocol">
	<title>Select Mouse Protocol Type</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/mouse1" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Use the arrow keys to select <guimenuitem>Type</guimenuitem> and
	press <keycap>Enter</keycap></para>

      <figure id="set-mouse-protocol">
	<title>Set Mouse Protocol</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/mouse2" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The mouse used in this example is a PS/2 type, so the default
	<guimenuitem>Auto</guimenuitem> was
	appropriate.  To change protocol, use the arrow keys to select
	another option.  Ensure that &gui.ok; is
	highlighted and press <keycap>Enter</keycap> to exit this menu.</para>

      <figure id="config-mouse-port">
	<title>Configure Mouse Port</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/mouse3" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Use the arrow keys to select <guimenuitem>Port</guimenuitem> and
	press <keycap>Enter</keycap>.</para>

      <figure id="set-mouse-port">
	<title>Setting The Mouse Port</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/mouse4" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>This system had a PS/2 mouse, so the default 
	<guimenuitem>PS/2</guimenuitem> was
	appropriate.  To change the port, use the arrow keys and then
	press <keycap>Enter</keycap>.</para>

      <figure id="test-daemon">
	<title>Enable The Mouse Daemon</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/mouse5" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Last, the mouse daemon is enabled and tested.</para>

      <figure id="test-mouse-daemon">
	<title>Test The Mouse Daemon</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/mouse6" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The cursor moved around the screen so the mouse daemon is
	running:</para>

      <para>Select <guibutton>[ Yes ]</guibutton> to return to the previous
	menu then select <guimenuitem>Exit</guimenuitem> 
	with the arrow keys and press <keycap>Enter</keycap> to return to 
	continue with the post-installation configuration.</para>
    </sect2>

    <sect2 id="x-server">
      <title>Configure X-Server</title>

      <para>In order to use a graphical user interface such as 
	<application>KDE</application>, <application>GNOME</application>,
	or others, the X server will need to be configured.</para>

      <para>To see whether your video card is supported, check the
	<ulink url="http://www.xfree86.org/">XFree86</ulink> web site.
	If your video card is only supported under XFree86 4.x, refer to
	<xref linkend="x11"> for installation and configuration.</para>

      <screen>                      User Confirmation Requested 
        Would you like to configure your X server at this time?

                            [ Yes ]   No</screen>

      <warning>
	<para>It is necessary to know your monitor specifications and
	  video card information.  Equipment damage can occur if settings
	  are incorrect.  If you do not have this information, select
	  <guibutton>[ No ]</guibutton> and perform the configuration
	  after installation when you have the information using 
	  <command>/stand/sysinstall</command>, selecting
	  <guimenuitem>Configure</guimenuitem> and then 
	  <guimenuitem>XFree86</guimenuitem>.
	</para>
      </warning>

      <para>If you have graphics card and monitor information, select
	<guibutton>[ Yes ]</guibutton> and press <keycap>Enter</keycap>
	to proceed with configuring the X server.</para>

      <figure id="xserver2">
	<title>Select Configuration Method Menu</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/xf86setup" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>There are several ways to configure the X
	server. <application>XF86Setup</application> is fully graphical and
	probably the easiest.  Use the arrow keys to select the
	<guimenuitem>XF86Setup</guimenuitem> and press
	<keycap>Enter</keycap>.</para>

      <screen>                                Message
 You have configured and been running the mouse daemon. 
 Choose "/dev/sysmouse" as the mouse port and "SysMouse" or
 "MouseSystems" as the mouse protocol in the X configuration utility. 

                                 [ OK ]

                      [ Press enter to continue ]</screen>

      <para>This indicates that the mouse daemon previously configured has been
	detected.  Press <keycap>Enter</keycap> to continue.</para>

      <screen>                Press [Enter] to switch to graphics mode. 

                         This may take a while... 

                                 [ OK ]</screen>

      <para>Press <keycap>Enter</keycap> to switch to the graphics mode and
	continue. It will <emphasis>not</emphasis> try to switch to the
	graphics mode until <keycap>Enter</keycap> is pressed.  The screen
	will go black and then shortly a screen with a large X in the
	center will appear. Be patient and wait.</para>

      <para>After a few more moments, the <application>XF86Setup</application>
	introduction will display.  Read all instructions
	<emphasis>carefully</emphasis>.  Press <keycap>Enter</keycap> to
	continue.</para>

      <procedure>
	<title><application>XF86Setup</application> Overview</title>

	<para>There are several areas of configuration to be completed.
	  The configuration choices you make will depend on the hardware
	  in the system so only a general overview can be given here.</para>

	<para>Along the top of the configuration tool there are buttons
	  indicating the areas to be configured.  You should be able to use
	  the mouse if it was previously configured and select each item by
	  clicking on it.  Review each area and make appropriate selections
	  for your system.</para>

	<step>
	<title><guimenuitem>Mouse</guimenuitem></title>

	  <para>The mouse is the first item to be configured.  If you
	    previously configured your mouse, the mouse daemon will already
	    be running and should indicate <guimenuitem>SysMouse</guimenuitem>
	    automatically for the mouse protocol.  If you are use a two
	    button mouse, you should also select 
	    <guimenuitem>Emulate3Buttons</guimenuitem>.  There are other
	    settings that can be tweaked if necessary.</para>

	  <para>After completing your selections, click on the 
	    <guimenuitem>Apply</guimenuitem> and check the mouse actions are
	    working properly.  If further adjustment is needed, make them
	    and recheck the operation by clicking on 
	    <guimenuitem>Apply</guimenuitem> again.  When finished, move
	    on to the next item.</para>
	</step>

	<step>
	  <title><guimenuitem>Keyboard</guimenuitem></title>

	  <para>Select the appropriate keyboard model.  The default
	    keyboard is <guimenuitem>Generic 101-key PC</guimenuitem>.</para>

	  <para>Select the language layout for your keyboard.  The default
	    layout is <guimenuitem>U.S. English</guimenuitem>.  If you are
	    not using a U.S. keyboard, you may need to additionally
	    select a variant.</para>

	  <para>There are other options under Group Shift/Lock behavior and
	    Control Key Position that can be selected if desired.  Generally
	    the default settings are fine.</para>

	  <para>After completing the keyboard configuration, click on
	    <guimenuitem>Apply</guimenuitem> and move on to the next
	    item.</para>
	</step>

	<step>
	  <title><guimenuitem>Card</guimenuitem></title>

	  <para>Click on <guimenuitem>Read README file</guimenuitem> for
	    additional help in configuring your video card.</para>

	  <para>Select the appropriate video card from the list using the
	    scrollbar. Clicking on your card will show as
	    <quote>Card selected:</quote> above the list box.</para>

	  <para>Next, the <guimenuitem>Detailed Setup</guimenuitem> was
	    selected just to check details.  Typically, if your video
	    card was in the list, no changes will be needed here.</para>

	  <para>When finished, move on to the next item.</para>
	</step>

	<step>
	  <title><guimenuitem>Monitor</guimenuitem></title>

	  <para>There are two ways to proceed. One method requires that you
	    enter the horizontal and vertical sweep capabilities of your
	    monitor in the text boxes.</para>

	  <para>Choosing one of the monitor options listed that the monitor
	    is the other method.  After selecting a listed option, the
	    horizontal and vertical sweep rates that will be used will
	    display. Compare those to your monitor specifications.  The
	    monitor must be capable of using those ranges.</para>

	  <para>Do not exceed the ratings of your monitor. Damage could
	    occur. If you have doubts select <guimenuitem>ABORT</guimenuitem>
	    and get the information. The remainder of the installation process
	    will be unaffected and configuring the X-Server can be done
	    later using <command>/stand/sysinstall</command>.</para>

	  <para>When finished, move on to the next item.</para>
	</step>

	<step>
	  <title><guimenuitem>Mode</guimenuitem></title>

	  <para>Select the video mode(s) that you want to use.  You can select
	    more than one option.  Typically, useful ranges are 640x480,
	    800x600, and 1024x768 but those are a function of video card
	    capability, monitor size, and eye comfort.</para>

	  <para>Next, select the default color depth you want to use.  Your
	    choices are 8bpp, 16bpp, 24bpp, and 32bpp.  Select the highest
	    color depth that your video card will support.</para>

	  <para>When finished, move on to the next item.</para>
	</step>

	<step>
	  <title><guimenuitem>Other</guimenuitem></title>

	  <para>The default settings are reasonable values, so you 
	    probably will not need to change anything here.</para>

	  <para>The default setting which allows the server to be killed
	    with the hotkey sequence <keycombo action='simul'>
	    <keycap>Ctrl</keycap><keycap>Alt</keycap>
	    <keycap>Backspace</keycap></keycombo> should be left on.  This
	    can be executed if something is wrong with the server settings and
	    prevent hardware damage.</para>

	  <para>The default setting that allows video mode switching will
	    permit changing of the mode while running X with the hotkey
	    sequence
	    <keycombo action='simul'>
	      <keycap>Alt</keycap><keycap>+</keycap>
	    </keycombo> or 
	    <keycombo action='simul'>
	      <keycap>Alt</keycap><keycap>-</keycap>
	    </keycombo>.
	    
	  </para>
	</step>

	<step>
	  <title>Testing the Server</title>

	  <para>Verify all the settings once again and select
	    <guibutton>Done</guibutton> and the following message will
	    display:</para>

	  <screen>If you've finished configuring everything press the
Okay button to start the X server using the configuration
you've selected.  If you still wish to configure some things,
press one of the buttons at the top and then press "Done" again,
when you've finished.</screen>

	  <para>After selecting <guibutton>Okay</guibutton>, some messages
	    will briefly appear advising to wait and attempting to start
	    the X-server.  This process takes a few moments, so be
	    patient.</para>

	  <para>The screen will go blank for a short period of time and
	    then a screen will appear with the message
	    <quote>Congratulations, you've got a running server!</quote></para>

	  <para>If nothing appears or the display is distorted, 
	    kill the X-server using 
	    <keycombo action='simul'>
	      <keycap>Ctrl</keycap>
	      <keycap>Alt</keycap>
	      <keycap>Backspace</keycap>
	    </keycombo>
	    and adjust the settings or revisit them after installation.</para>
	</step>

	<step>
	  <title>Running <command>xvidtune</command></title>

	  <para>The display can be adjusted for height, width, or centering
	    by using <application>xvidtune</application>.</para>

	  <para>There are warnings that improper settings can
	    damage your equipment.  Heed them. If in doubt, do not do
	    it. Instead, use the monitor controls to adjust the display for
	    x-windows. There may be some display differences when switching
	    back to text mode, but it is better than damaging equipment.
	    <application>xvidtune</application> can be ran later using 
	    <command>/stand/sysinstall</command>.</para>

	  <para>Read the &man.xvidtune.1; man page before making
	    any adjustments.</para>
	</step>

	<step>
	  <title>Saving Configuration</title>

	  <para>When you are satisfied, the configuration can now be saved.
	    Select <guimenuitem>Save the configuration and Exit</guimenuitem>
	    The configuration file will be saved to 
	    <filename>/etc/XF86Config</filename>.</para> 
	</step>
      </procedure>

      <para>Once the configuration is done, the installation program will
	need to create a link to the server:</para>

      <screen>         Do you want to create an 'X' link to the SVGA server? 

               (the link will be created in the directory:
                        /usr/X11R6/bin) Okay?

                            [ Yes ]   No</screen>

      <para>Select <guibutton>[ Yes ]</guibutton> and press
	<keycap>Enter</keycap> to create the link.</para>

      <screen>                        Link created successfully.

                                  [ OK ]</screen>

      <para>Press <keycap>Enter</keycap> to continue configuration.</para>
    </sect2>

    <sect2 id="default-desktop">
      <title>Select Default X Desktop</title>

      <para>There are a variety of window managers available.  They range
	from very basic environments to full desktop environments with a
	large suite of software.  Some require only minimal disk space and
	low memory while others with more features require much more.  The
	best way to determine which is most suitable for you is to try a few
	different ones.  Those are available from the ports collection or as
	packages and can be added after installation.</para>

      <para>You can select one of the popular desktops to be installed
	and configured as the default desktop.  This will allow you
	to start it right after installation.</para>

      <figure id="x-desktop">
	<title>Select Default Desktop</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/desktop" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Use the arrow keys to select a desktop and press
	<keycap>Enter</keycap>.  Installation of the selected desktop will
	proceed.</para>
    </sect2>

    <sect2 id="packages">
    <title>Install Packages</title>

      <para>The packages are pre-compiled binaries and are a convenient
	way to install software.</para>

      <para>Installation of one package is shown for purposes of
	illustration.  Additional packages can also be added at this
	time if desired.  After installation
	<command>/stand/sysinstall</command> can be used to add additional
	packages.</para>

      <screen>                     User Confirmation Requested
 The FreeBSD package collection is a collection of hundreds of
 ready-to-run applications, from text editors to games to WEB servers
 and more. Would you like to browse the collection now? 

                            [ Yes ]   No</screen>

      <para>Selecting <guimenuitem>[ Yes ]</guimenuitem> and pressing
	<keycap>Enter</keycap> will be
	followed by the Package Selection screens:</para>

      <figure id="package-category">
	<title>Select Package Category</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/pkg-cat" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>All packages available will be displayed if 
	<guimenuitem>All</guimenuitem> is selected or you can select a
	particular category.  Highlight your selection with the arrow
	keys and press <keycap>Enter</keycap>.</para>

      <para>A menu will display showing all the packages available for
	the selection made.</para>

      <figure id="package-select">
	<title>Select Packages</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/pkg-sel" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The <application>bash</application> shell is shown selected.
	Select as many as desired by highlighting the package and pressing
	the <keycap>Space</keycap>.
	A short description of each package will appear in the lower left
	corner of the screen.</para>

      <para>Pressing the <keycap>Tab</keycap> key will toggle between the last
	selected package, &gui.ok;, and
	&gui.cancel;.</para>

      <para>When you have finished marking the packages for installation,
	press <keycap>Tab</keycap> once to toggle to the
	&gui.ok; and press
	<keycap>Enter</keycap> to return to the Package Selection menu.</para>

      <para>The left and right arrow keys will also toggle between
	&gui.ok; and &gui.cancel;.
	This method can also be used to select &gui.ok;
	and press <keycap>Enter</keycap> to return to the Package
	Selection menu.</para>

      <figure id="package-install">
	<title>Install Packages</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/pkg-install" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Use the arrow keys to select <guibutton>[ Install ]</guibutton>
	and press <keycap>Enter</keycap>.  You will then need to confirm
	that you want to install the packages.</para>

      <figure id="package-install-confirm">
	<title>Confirm Package Installation</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/pkg-confirm" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Selecting &gui.ok; and pressing
	<keycap>Enter</keycap> will start
	the package installation.  Installing messages will appear until
	completed.  Make note if there are any error messages.</para>

      <para>The final configuration continues after packages are
	installed.</para>
    </sect2>

    <sect2 id="addusers">
      <title>Add User/Groups</title>

      <para>You should add at least one user during the installation so
	that you can use the system without being logged in as
	<username>root</username>.  The root partition is generally small
	and running applications as <username>root</username> can quickly
	fill it.  A bigger danger is noted below:</para>

      <screen>                     User Confirmation Requested
 Would you like to add any initial user accounts to the system? Adding
 at least one account for yourself at this stage is suggested since
 working as the "root" user is dangerous (it is easy to do things which
 adversely affect the entire system). 

                            [ Yes ]   No</screen>

      <para>Select <guibutton>[ Yes ]</guibutton> and press
	<keycap>Enter</keycap> to continue with adding a user.</para>

      <figure id="add-user2">
	<title>Select Add User</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/adduser1" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Select <guimenuitem>Add User</guimenuitem> with the arrow keys
	and press <keycap>Enter</keycap>.</para>

      <figure id="add-user3">
	<title>Add User Information</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/adduser2" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>The following descriptions will appear in the lower part of
	the screen as the items are selected with <keycap>Tab</keycap>
	to assist with entering the required information.</para>

      <variablelist>
	<varlistentry>
	  <term>Login ID</term>

	  <listitem>
	    <para>The login name of the new user (mandatory)</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>UID</term>
	
	  <listitem>
	    <para>The numerical ID for this user (leave blank for
	      automatic choice)</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Group</term>

	  <listitem>
	    <para>The login group name for this user (leave blank for
	      automatic choice)</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Password</term>

	  <listitem>
	    <para>The password for this user (enter this field with
	      care!)</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Full name</term>

	  <listitem>
	    <para>The user's full name (comment)</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Member groups</term>

	  <listitem>
	    <para>The groups this user belongs to (i.e. gets access
	      rights for)</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Home directory</term>

	  <listitem>
	    <para>The user's home directory (leave blank for
	      default)</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Login shell</term>
	  <listitem>
	    <para>The user's login shell (leave blank for
	      default). (<filename>/bin/sh</filename>)</para>
	  </listitem>
	</varlistentry>
      </variablelist>

      <para>The login shell was changed from
	<filename>/bin/sh</filename> to
	<filename>/usr/local/bin/bash</filename> to use the 
	<application>bash</application> shell
	that was previously installed as a package.  Do not try to
	use a shell that does not exist or you will not be able to
	login.</para>

      <para>The user was also added to the group <groupname>wheel</groupname>
	to be able to become a superuser with <username>root</username>
	privileges.</para>

      <para>When you are satisfied, press &gui.ok; and
	the User and Group Management menu will redisplay.</para>

      <figure id="add-user4">
	<title>Exit User and Group Management</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/adduser3" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Groups could also be added at this time if specific needs
	are known. Otherwise, this may be accessed through using
	<filename>/stand/sysinstall</filename> after installation is
	completed.</para>

      <para>When you are finished adding users, select 
	<guimenuitem>Exit</guimenuitem> with the arrow keys and press
	<keycap>Enter</keycap> to continue the installation.</para>
    </sect2>

    <sect2 id="rootpass">
      <title>Set <username>root</username> Password</title>

      <screen>                        Message
 Now you must set the system manager's password.  
 This is the password you'll use to log in as "root". 

                         [ OK ] 

               [ Press enter to continue ]</screen>

      <para>Press <keycap>Enter</keycap> to set the <username>root</username>
	password.</para>

      <para>The password will need to be typed in twice
	correctly. Needless to say, make sure you have a way of finding
	the password if you forget.</para>

      <screen>Changing local password for root. 
 New password : 
 Retype new password :</screen>

      <para>The installation will continue after the password is
	successfully entered.</para>
    </sect2>

    <sect2 id="exit-inst">
      <title>Exiting Install</title>

      <para>If you need to configure additional network devices or to
	do any other configurations, you can do it at this point or
	after installation with <filename>/stand/sysinstall</filename>.</para>

      <screen>                     User Confirmation Requested
 Visit the general configuration menu for a chance to set any last
 options? 

                              Yes   [ No ]</screen>

      <para>Selecting <guibutton>[ No ]</guibutton> with the arrow keys
	and pressing <keycap>Enter</keycap> returns to the Main
	Installation Menu</para>

      <figure id="final-main">
	<title>Exit Install</title>

	<mediaobject>
	  <imageobject>
	    <imagedata fileref="install/mainexit" format="PNG">
	  </imageobject>
	</mediaobject>
      </figure>

      <para>Select <guibutton>[X Exit Install]</guibutton> with the arrow
	keys and press <keycap>Enter</keycap>.  You will be asked to
	confirm exiting the installation:</para>

      <screen>                     User Confirmation Requested
 Are you sure you wish to exit? The system will reboot (be sure to  
 remove any floppies from the drives). 

                            [ Yes ]   No</screen>

      <para>Select <guibutton>[ Yes ]</guibutton> and remove floppy if
	booting from floppy. The CDROM drive is locked until the machine
	starts to reboot. The CDROM drive is then unlocked and can
	be removed from drive (quickly).</para>

      <para>The system will reboot so watch for any error messages that
	may appear.</para>
    </sect2>

    <sect2 id="freebsdboot">
      <title>FreeBSD Bootup</title>

      <sect3 id="freebsdboot-i386">
        <title>FreeBSD Bootup on the i386</title>

      <para>If everything went well, you will see messages scroll
	off the screen and you will arrive at a login prompt.  You can view
	the content of the messages by pressing <keycap>Scroll-Lock</keycap>
	and using <keycap>PgUp</keycap> and <keycap>PgDn</keycap>.
	Pressing <keycap>Scroll-Lock</keycap> again will return
	to the prompt.</para>

      <para>The entire message may not display (buffer limitation) but
	it can be viewed from the command line after logging in by typing
	<command>dmesg</command> at the prompt.</para>

      <para>Login using the username/password you set during installation
	(rpratt, in this example).  Avoid logging in as
	<username>root</username> except when necessary.</para>

      <para>Typical boot messages:</para>

<screen>Copyright (c) 1992-2002 The FreeBSD Project. 
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved. 
FreeBSD 4.5-RC2 #0: Thu Jan 17 21:24:52 GMT 2002
    murray@builder.freebsdmall.com:/usr/src/sys/compile/GENERIC
Timecounter "i8254"  frequency 1193182 Hz
CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU)
  Origin = "AuthenticAMD"  Id = 0x580  Stepping = 0
  Features=0x8001bf&lt;FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX&gt; 
  AMD Features=0x80000800&lt;SYSCALL,3DNow!&gt; 
real memory  = 268435456 (262144K bytes) 
config&gt; di sn0 
config&gt; di lnc0 
config&gt; di le0 
config&gt; di ie0 
config&gt; di fe0 
config&gt; di cs0 
config&gt; di bt0  
config&gt; di aic0 
config&gt; di aha0 
config&gt; di adv0 
config&gt; q 
avail memory = 256311296 (250304K bytes)
Preloaded elf kernel "kernel" at 0xc0491000. 
Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c. 
md0: Malloc disk 
Using $PIR table, 4 entries at 0xc00fde60
npx0: &lt;math processor&gt; on motherboard 
npx0: INT 16 interface 
pcib0: &lt;Host to PCI bridge&gt; on motherboard 
pci0: &lt;PCI bus&gt; on pcib0 
pcib1: &lt;VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge&gt; at device 1.0 on pci0 
pci1: &lt;PCI bus&gt; on pcib1 
pci1: &lt;Matrox MGA G200 AGP graphics accelerator&gt; at 0.0 irq 11 
isab0: &lt;VIA 82C586 PCI-ISA bridge&gt; at device 7.0 on pci0 
isa0: &lt;ISA bus&gt; on isab0 
atapci0: &lt;VIA 82C586 ATA33 controller&gt; port 0xe000-0xe00f at device 7.1 on pci0 
ata0: at 0x1f0 irq 14 on atapci0 
ata1: at 0x170 irq 15 on atapci0 
uhci0: &lt;VIA 83C572 USB controller&gt; port 0xe400-0xe41f irq 10 at device 7.2 on pci0 
usb0: &lt;VIA 83C572 USB controller&gt; on uhci0 
usb0: USB revision 1.0 
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 
uhub0: 2 ports with 2 removable, self powered 
chip1: &lt;VIA 82C586B ACPI interface&gt; at device 7.3 on pci0 
ed0: &lt;NE2000 PCI Ethernet (RealTek 8029)&gt; port 0xe800-0xe81f irq 9 at
device 10.0 on pci0 
ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit) 
isa0: too many dependant configs (8) 
isa0: unexpected small tag 14 
fdc0: &lt;NEC 72065B or clone&gt; at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold 
fd0: &lt;1440-KB 3.5" drive&gt; on fdc0 drive 0 
atkbdc0: &lt;keyboard controller (i8042)&gt; at port 0x60-0x64 on isa0 
atkbd0: &lt;AT Keyboard&gt; flags 0x1 irq 1 on atkbdc0 
kbd0 at atkbd0 
psm0: &lt;PS/2 Mouse&gt; irq 12 on atkbdc0 
psm0: model Generic PS/2 mouse, device ID 0 
vga0: &lt;Generic ISA VGA&gt; at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: &lt;System console&gt; at flags 0x1 on isa0 
sc0: VGA &lt;16 virtual consoles, flags=0x300&gt; 
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 
sio0: type 16550A 
sio1 at port 0x2f8-0x2ff irq 3 on isa0 
sio1: type 16550A 
ppc0: &lt;Parallel port&gt; at port 0x378-0x37f irq 7 on isa0 
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode 
ppc0: FIFO with 16/16/15 bytes threshold 
ppbus0: IEEE1284 device found /NIBBLE
Probing for PnP devices on ppbus0: 
plip0: &lt;PLIP network interface&gt; on ppbus0 
lpt0: &lt;Printer&gt; on ppbus0 
lpt0: Interrupt-driven port 
ppi0: &lt;Parallel I/O&gt; on ppbus0
ad0: 8063MB &lt;IBM-DHEA-38451&gt; [16383/16/63] at ata0-master using UDMA33 
ad2: 8063MB &lt;IBM-DHEA-38451&gt; [16383/16/63] at ata1-master using UDMA33 
acd0: CDROM &lt;DELTA OTC-H101/ST3 F/W by OIPD&gt; at ata0-slave using PIO4 
Mounting root from ufs:/dev/ad0s1a 
swapon: adding /dev/ad0s1b as swap device 
Automatic boot in progress... 
/dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS 
/dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation)
/dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS 
/dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation)
/dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation)
/dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS 
/dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation)
Doing initial network setup: hostname. 
ed0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
        inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1
        ether 52:54:05:de:73:1b
lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; mtu 16384 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8 
        inet6 ::1 prefixlen 128 
        inet 127.0.0.1 netmask 0xff000000 
Additional routing options: IP gateway=YES TCP keepalive=YES
routing daemons:. 
additional daemons: syslogd. 
Doing additional network setup:. 
Starting final network daemons: creating ssh RSA host key 
Generating public/private rsa1 key pair.
Your identification has been saved in /etc/ssh/ssh_host_key. 
Your public key has been saved in /etc/ssh/ssh_host_key.pub. 
The key fingerprint is: 
cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com
 creating ssh DSA host key 
Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key. 
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub. 
The key fingerprint is: 
f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com.
setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib
/usr/local/lib 
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout 
starting standard daemons: inetd cron sshd usbd sendmail.
Initial rc.i386 initialization:. 
rc.i386 configuring syscons: blank_time screensaver moused. 
Additional ABI support: linux. 
Local package initilization:. 
Additional TCP options:. 

FreeBSD/i386 (k6-2.example.com) (ttyv0)

login: rpratt 
Password:</screen>

      <para>Generating the RSA and DSA keys may take some time on slower
	machines.  This happens only on the initial boot-up of a new
	installation.  Subsequent boots will be faster.</para>

      <para>If the X server has been configured and a Default Desktop
	chosen, it can be started by typing <command>startx</command> at
	the command line.</para>

      </sect3>

      <sect3>
        <title>Bootup of FreeBSD on the Alpha</title>

	<indexterm><primary>Alpha</primary></indexterm>

        <para>Once the install procedure has finished, you will be
          able to start FreeBSD by typing something like this to the
          SRM prompt:</para>

	<screen>&gt;&gt;&gt;<userinput>BOOT DKC0</userinput></screen>

	<para>This instructs the firmware to boot the specified
	  disk.  To make FreeBSD boot automatically in the future, use
	  these commands:</para>

	<screen><prompt>&gt;&gt;&gt;</prompt> <userinput>SET BOOT_OSFLAGS A</userinput>
<prompt>&gt;&gt;&gt;</prompt> <userinput>SET BOOT_FILE ''</userinput>
<prompt>&gt;&gt;&gt;</prompt> <userinput>SET BOOTDEF_DEV DKC0</userinput>
<prompt>&gt;&gt;&gt;</prompt> <userinput>SET AUTO_ACTION BOOT</userinput></screen>

	<para>The boot messages will be similar (but not identical) to
	those produced by FreeBSD booting on the i386.</para>
      </sect3>
    </sect2>

    <sect2 id="shutdown">
      <title>FreeBSD Shutdown</title>

      <para>It is important to properly shutdown the operating
	system.  Do not just turn off power.  First, become a superuser by
	typing <command>su</command> at the command line and entering the
	<username>root</username> password.  This will work only if the user
	is a member of the group wheel. Otherwise, login as
	<username>root</username> and use
	<command>shutdown -h now</command>.</para>

      <screen>The operating system has halted. 
Please press any key to reboot.</screen>

      <para>It is safe to turn off the power after the shutdown command
	has been issued and the message <quote>Please press any key to reboot</quote>
	appears. If any key is pressed instead of turning off the power
	switch, the system will reboot.</para>

      <para>You could also use the <keycap>CTRL+ALT+DEL</keycap> key
        combination to reboot the system, however this is not recommended
        during normal operation.</para>

    </sect2>
  </sect1>

  <sect1>
    <title>Supported Hardware</title>

    <indexterm><primary>hardware</primary></indexterm>
    <para>FreeBSD currently runs on a wide variety of ISA, VLB, EISA, and
      PCI bus-based PCs with Intel, AMD, Cyrix, or NexGen
      <quote>x86</quote> processors, as well as a number of
      machines based on the Compaq Alpha processor.
      Support for generic IDE or
      ESDI drive configurations, various SCSI controllers, PCMCIA
      cards, USB devices, and network and
      serial cards is also provided.  FreeBSD also supports IBM's
      microchannel (MCA) bus.</para>

    <para>A list of supported hardware is provided with each FreeBSD
      release in the FreeBSD Hardware Notes.  This document can
      usually be found in a file named
      <filename>HARDWARE.TXT</filename>, in the top-level directory of
      a CDROM or FTP distribution or in <application>sysinstall</application>'s
      documentation menu.  It lists, for a given architecture, what hardware
      devices are known to be supported by each release of FreeBSD.</para>
  </sect1>

  <sect1 id="install-trouble">
    <title>Troubleshooting</title>

    <indexterm>
      <primary>installation</primary>
      <secondary>troubleshooting</secondary>
    </indexterm>
    <para>The following section covers basic installation troubleshooting,
      such as common problems people have reported.  There are also a few
      questions and answers for people wishing to dual-boot FreeBSD with
      MS-DOS.</para>

    <sect2>
      <title>What to Do If Something Goes Wrong...</title>

      <para>Due to various limitations of the PC architecture, it is
        impossible for probing to be 100% reliable, however, there are a
        few things you can do if it fails.</para>

      <para>Check the Hardware Notes document for your version of
        FreeBSD to make sure your hardware is
        supported.</para>

      <para>If your hardware is supported and you still experience
        lock-ups or other problems, reset your computer, and when the
        visual kernel configuration option is given, choose it.  This will
        allow you to go through your hardware and supply information to the
        system about it.  The kernel on the boot disks 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 to find
        things.</para>

      <para>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.</para>

      <note>
        <para>Some installation problems can be avoided or alleviated by
          by updating the firmware on various hardware components, most notably
          the motherboard.  The motherboard firmware may also be referred to
          as <acronym>BIOS</acronym> and most of the motherboard or computer
          manufactures have a website where the upgrades and upgrade information
          may be located.</para>

        <para>Most manufacturers strongly advise against upgrading the motherboard
          <acronym>BIOS</acronym> unless there is a good reason for doing so, which
          could possibly be a critical update of sorts.  The upgrade process
          <emphasis>can</emphasis> go wrong, causing permanent damage to the
          <acronym>BIOS</acronym> chip.</para>
        </note>

      <warning>
        <para>Do not disable any drivers you will need during the
          installation, such as your screen (<devicename>sc0</devicename>).
	  If the installation wedges or fails mysteriously after leaving
	  the configuration editor, you have probably removed or changed
	  something you should not have.  Reboot and try again.</para>
      </warning>

      <para>In configuration mode, you can:</para>

      <itemizedlist>
        <listitem>
          <para>List the device drivers installed in the kernel.</para>
        </listitem>

        <listitem>
          <para>Change device drivers for hardware that is not present in
	    your system.</para>
        </listitem>

        <listitem>
          <para>Change IRQs, DRQs, and IO port addresses used by a device
	    driver.</para>
        </listitem>
      </itemizedlist>

      <para>After adjusting the kernel to match your hardware
        configuration, type <command>Q</command> to boot with the new
        settings.  Once the installation has completed, any changes you
        made in the configuration mode will be permanent so you do not have
        to reconfigure every time you boot.  It is still highly likely that
        you will eventually want to build a <link
        linkend="kernelconfig">custom kernel</link>.</para>
    </sect2>
    
    <sect2>
      <title>MS-DOS User's Questions and Answers</title>

      <indexterm><primary>DOS</primary></indexterm>
      <para>Many users wish to install FreeBSD on PCs inhabited by MS-DOS.
        Here are some commonly asked questions about installing FreeBSD on
        such systems.</para>

      <qandaset>
        <qandaentry>
	  <question>
	    <para>Help, I have no space!  Do I need to delete everything 
	      first?</para>
	  </question>

	  <answer>
	    <para>If your machine is already running MS-DOS and has little
	      or no free space available for the FreeBSD installation, all
	      hope is not lost!  You may find the <application>FIPS</application>
	      utility, provided
	      in the <filename>tools</filename> directory on the FreeBSD
	      CDROM or various FreeBSD FTP sites to be quite
	      useful.</para>

	    <indexterm>
        <primary><command>FIPS</command></primary>
      </indexterm>
	    <para><application>FIPS</application> 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 Windows
	      <application>DEFRAG</application> utility (go into Explorer,
	      right-click on the
	      hard drive, and choose to defrag your
	      hard drive), or Norton Disk Tools. You then must run 
	      <application>FIPS</application>.  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 <emphasis>Distributions</emphasis> menu
	      for an estimate of how much free space you will need for the
	      kind of installation you want.</para>

	    <indexterm>
        <primary><application>Partition Magic</application></primary>
      </indexterm>
	    <para>There is also a <emphasis>very</emphasis> useful
	      product from <ulink
	      url="http://www.powerquest.com/">PowerQuest</ulink>
	      called <application>Partition Magic</application>. This
	      application has far more functionality than 
	      <application>FIPS</application>, and is
	      highly recommended if you plan to often add/remove
	      operating systems (like me). However, it does cost
	      money, and if you plan to install FreeBSD once and then
	      leave it there, <application>FIPS</application> will probably 
	      be fine for you.</para>
	  </answer>
	</qandaentry>

	<qandaentry>
	  <question>
	    <para>Can I use compressed MS-DOS filesystems from
	      FreeBSD?</para>
	  </question>

	  <answer>
	    <para>No.  If you are using a utility such as
	      <trademark class="trade">Stacker</trademark> or
	      <trademark class="trade">DoubleSpace</trademark>, 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/double spaced file!).
	      <emphasis>Do not remove that file or you will probably regret
	      it greatly!</emphasis></para>

	    <para>It is probably better to create another uncompressed
	      primary MS-DOS partition and use this for communications
	      between MS-DOS and FreeBSD.</para>
	  </answer>
	</qandaentry>

	<qandaentry>
	  <question>
	    <para>Can I mount my extended MS-DOS partition?</para>
	  </question>

	  <answer>
	    <indexterm><primary>partitions</primary></indexterm>
	    <indexterm><primary>slices</primary></indexterm>
	    <para>Yes.  DOS extended partitions are mapped in at the end
	      of the other <quote>slices</quote> in FreeBSD, e.g., your
	      <devicename>D:</devicename> drive might be
	      <filename>/dev/da0s5</filename>, your
	      <devicename>E:</devicename> drive,
	      <filename>/dev/da0s6</filename>, and so on.  This example
	      assumes, of course, that your extended partition is on SCSI
	      drive 0.  For IDE drives, substitute <filename>ad</filename>
	      for <filename>da</filename> appropriately if installing
	      4.0-RELEASE or later, and substitute
	      <filename>wd</filename> for <filename>da</filename> if you
	      are installing a version of FreeBSD prior to 4.0.  You otherwise
	      mount extended partitions exactly like you would any other
	      DOS drive, for example:</para>

	    <screen>&prompt.root; <userinput>mount -t msdos /dev/ad0s5 /dos_d</userinput></screen>
	  </answer>
	</qandaentry>
      </qandaset>
    </sect2>

    <sect2>
      <title>Alpha User's Questions and Answers</title>

      <indexterm><primary>Alpha</primary></indexterm>

      <para>This section answers some commonly asked questions about
        installing FreeBSD on Alpha systems.</para>

      <qandaset>
	<qandaentry>
	  <question>
	    <para>Can I boot from the ARC or Alpha BIOS Console?</para>
	  </question>

	  <indexterm><primary>ARC</primary></indexterm>
	  <indexterm><primary>Alpha BIOS</primary></indexterm>
	  <indexterm><primary>SRM</primary></indexterm>

	  <answer>
	    <para>No.  &os;, like Compaq Tru64 and VMS, will only boot
	    from the SRM console.</para>
	  </answer>
	</qandaentry>

	<qandaentry>
	  <question>
	    <para>Help, I have no space!  Do I need to delete
	    everything first?</para>
	  </question>

	  <answer>
	    <para>Unfortunately, yes.</para>
	  </answer>
	</qandaentry>

	<qandaentry>
	  <question>
	    <para>Can I mount my Compaq Tru64 or VMS filesystems?</para>
	  </question>

	  <answer>
	    <para>No, not at this time.</para>
	  </answer>
	</qandaentry>
      </qandaset>
    </sect2>
  </sect1>

  <sect1 id="install-advanced">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Valentino</firstname>
	  <surname>Vaschetto</surname>
	  <contrib>Contributed by </contrib>
	</author>
	<!-- May 2001 -->
      </authorgroup>
    </sect1info>

    <title>Advanced Installation Guide</title>

    <para>This section describes how to install FreeBSD in exceptional
       cases.</para>

    <sect2 id="headless-install">
      <title>Installing FreeBSD on a System without a Monitor or
        Keyboard</title>

      <indexterm>
        <primary>installation</primary>
        <secondary>headless (serial console)</secondary>
      </indexterm>
      <indexterm><primary>serial console</primary></indexterm>
      <para>This type of installation is called a <quote>headless install</quote>,
        because the machine that you are trying to install FreeBSD on
        either does not have a monitor attached to it, or does not even
        have a VGA output. How is this possible you ask? Using a
        serial console. A serial console is basically using another
        machine to act as the main display and keyboard for a
        system. To do this, just follow these steps:</para>

      <procedure>
        <step>
          <title>Fetch the Right Boot Floppy Images</title>

          <para>First you will need to get the right disk images so
            that you can boot into the install program. The secret
            with using a serial console is that you tell the boot
            loader to send I/O through a serial port instead of
            displaying console output to the VGA device and trying to
            read input from a local keyboard.  Enough of that now,
            let's get back to getting these disk images.</para>

	  <para>You will need to get <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/kern.flp">kern.flp</ulink> and
            <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/mfsroot.flp">
            mfsroot.flp</ulink> from the
            <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/">
            floppies directory</ulink>.</para>

        </step>
        <step>
	  <title>Write the Image Files to the Floppy Disks</title>

          <para>The image files, such as
	    <filename>kern.flp</filename>, are
	    <emphasis>not</emphasis> regular files that you copy to
	    the disk.  Instead, they are images of the complete
	    contents of the disk.</para>

	  <para>This means that you can <emphasis>not</emphasis> use
	    commands like DOS' <command>copy</command> to write the
	    files.  Instead, you must use specific tools to write the
	    images directly to the disk.</para>
	  
	  <indexterm>
      <primary><command>fdimage</command></primary>
    </indexterm>
	  <para>If you are creating the floppies on a computer running
	    DOS then we provide a tool to do this called
	    <command>fdimage</command>.</para>
	  
	  <para>If you are using the floppies from the CDROM, and
	    your CDROM is the <devicename>E:</devicename> drive then
	    you would run this:</para>

	  <screen><prompt>E:\&gt;</prompt> <userinput>tools\fdimage floppies\kern.flp A:</userinput></screen> 

	  <para>Repeat this command for each <filename>.flp</filename>
	    file, replacing the floppy disk each time.  Adjust the
	    command line as necessary, depending on where you have
	    placed the <filename>.flp</filename> files.  If you do not
	    have the CDROM then <command>fdimage</command> can be
	    downloaded from the <ulink
	    url="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/"><filename>tools</filename>
	    directory</ulink> on the FreeBSD FTP site.</para>

	  <para>If you are writing the floppies on a Unix system (such
	    as another FreeBSD system) you can use the &man.dd.1;
	    command to write the image files directly to disk.  On
	    FreeBSD you would run:</para>

	  <screen>&prompt.root; <userinput>dd if=kern.flp of=/dev/fd0</userinput></screen>

	  <para>On FreeBSD <filename>/dev/fd0</filename> refers to
	    the first floppy disk (the <devicename>A:</devicename>
	    drive).  <filename>/dev/fd1</filename> would be the
	    <devicename>B:</devicename> drive, and so on.  Other Unix
	    variants might have different names for the floppy disk
	    devices, and you will need to check the documentation for
	    the system as necessary.</para>

	  </step>

	  <step>
	    <title>Enabling the Boot Floppies to Boot into a Serial
	    Console</title>

            <warning>
              <para>Do not try to mount the floppy if it is write-protected</para>
            </warning>

  	    <indexterm>
          <primary><command>mount</command></primary>
        </indexterm>
	    <para>If you were to boot into the floppies that you just
	      made, FreeBSD would boot into its normal install mode. We
	      want FreeBSD to boot into a serial console for our
	      install. To do this, you have to mount the
	      <filename>kern.flp</filename> floppy onto your FreeBSD
	      system using the &man.mount.8; command.</para>

            <screen>&prompt.root; <userinput>mount /dev/fd0 /mnt</userinput></screen>

	    <para>Now that you have the floppy mounted, you must
	      change into the floppy directory</para>

	    <screen>&prompt.root; <userinput>cd /mnt</userinput></screen>

	    <para>Here is where you must set the floppy to boot into a
	      serial console. You have to make a file called
	      <filename>boot.config</filename> containing 
	      <literal>/boot/loader -h</literal>.  All this does is pass a flag to the bootloader to
	      boot into a serial console.</para>

	    <screen>&prompt.root; <userinput>echo "/boot/loader -h" > boot.config</userinput></screen>

	    <para>Now that you have your floppy configured correctly,
	      you must unmount the floppy using the &man.umount.8;
	      command</para>

            <screen>&prompt.root; <userinput>cd /</userinput>
&prompt.root; <userinput>umount /mnt</userinput></screen>

	    <para>Now you can remove the floppy from the floppy
	      drive</para>
	  </step>

	  <step>
	    <title>Connecting Your Null Modem Cable</title>

  	    <indexterm><primary>null-modem cable</primary></indexterm>
	    <para>You now need to connect a null modem cable between
	      the two machines. Just connect the cable to the serial
	      ports of the 2 machines. <emphasis>A normal serial cable
	      will not work here</emphasis>, you need a null modem
	      cable because it has some of the wires inside crossed
	      over.</para>
	  </step>

	  <step>
	    <title>Booting Up for the Install</title>

	    <para>It is now time to go ahead and start the install. Put
	      the <filename>kern.flp</filename> floppy in the floppy
	      drive of the machine you are doing the headless install
	      on, and power on the machine.</para>
	  </step>

	  <step>
	    <title>Connecting to Your Headless Machine</title>
	    <indexterm>
        <primary><command>cu</command></primary>
      </indexterm>
	    <para>Now you have to connect to that machine with
	    &man.cu.1;:</para> 

	    <screen>&prompt.root; <userinput>cu -l /dev/cuaa0</userinput></screen>
	  </step>
      </procedure>

      <para>That's it! You should be able to control the headless
        machine through your <command>cu</command> session now.  It will ask 
	you to put
        in the <filename>mfsroot.flp</filename>, and then it will come
        up with a selection of what kind of terminal to use. Just
        select the FreeBSD color console and proceed with your
        install!</para>

    </sect2>
  </sect1>

  <sect1 id="install-diff-media">
    <title>Preparing Your Own Installation Media</title>

    <note>
      <para>To prevent repetition, <quote>FreeBSD disk</quote> in this context
	means a FreeBSD CDROM or DVD that you have purchased, or produced
	yourself.</para>
    </note>

    <para>There may be some situations in which you need to create your own
      FreeBSD installation media and/or source.  This might be physical media,
      such as a tape, or a source that <application>Sysinstall</application>
      can use to retrieve the files, such as a local FTP site, or an MS-DOS
      partition.  For example:</para>

    <itemizedlist>
      <listitem>
	<para>You have many machines connected to your local network, and one
	  FreeBSD disk.  You want to create a local FTP site using the
	  contents of the FreeBSD disk, and then have your machines use this
	  local FTP site instead of needing to connect to the Internet.</para>
      </listitem>

      <listitem>
	<para>You have a FreeBSD disk, FreeBSD does not recognize your CD/DVD
	  drive, but DOS/Windows does.  You want to copy the FreeBSD
	  installations files to a DOS partition on the same computer, and
	  then install FreeBSD using those files.</para>
      </listitem>

      <listitem>
	<para>The computer you want to install on does not have a CD/DVD
	  drive, or a network card, but you can connect a
	  <quote>Laplink-style</quote> serial or parallel cable to a computer
	  that does.</para>
      </listitem>

      <listitem>
	<para>You want to create a tape that can be used to install
	  FreeBSD.</para>
      </listitem>
    </itemizedlist>
    
    <sect2 id="install-ftp">
      <title>Creating a Local FTP Site with a FreeBSD Disk</title>
	
      <indexterm>
	<primary>installation</primary>
	<secondary>network</secondary>
	<tertiary>FTP</tertiary>
      </indexterm>

      <para>FreeBSD disks are laid out in the same way as the FTP site.  This
	makes it very easy for you to create a local FTP site that can be used
	by other machines on your network when installing FreeBSD.</para>

      <procedure>
	<step>
	  <para>On the FreeBSD computer that will host the FTP site, ensure
	    that the CDROM is in the drive, and mounted on
	    <filename>/cdrom</filename>.</para>

	  <screen>&prompt.root; <userinput>mount /cdrom</userinput></screen>
	</step>

	<step>
	  <para>Create an account for anonymous FTP in
	    <filename>/etc/passwd</filename>.  Do this by editing
	    <filename>/etc/passwd</filename> using &man.vipw.8; and adding
	    this line.</para>

	  <programlisting>ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent</programlisting>
	</step>

	<step>
	  <para>Ensure that the FTP service is enabled in
	    <filename>/etc/inetd.conf</filename>.</para>
	</step>
      </procedure>

      <para>Anyone with network connectivity to your machine can now
	chose a media type of FTP and type in
	<userinput>ftp://<replaceable>your machine</replaceable></userinput>
	after picking <quote>Other</quote> in the FTP sites menu during
	the install.</para>

      <warning>
	<para>This approach is OK for a machine that is on your local network,
	  and that is protected by your firewall.  Offering up FTP services to
	  other machines over the Internet (and not your local network)
	  exposes your computer to the attention of crackers and other
	  undesirables.  We strongly recommend that you follow good security
	  practices if you do this.</para>
      </warning>
    </sect2>

      <sect2>
        <title>Creating Installation Floppies</title>

      <indexterm>
	<primary>installation</primary>
	<secondary>floppies</secondary>
      </indexterm>

      <para>If you must install from floppy disk (which we suggest you
	do <emphasis>not</emphasis> do), either due to unsupported
	hardware or simply because you insist on doing things the hard
	way, you must first prepare some floppies for the installation.</para>

	<para>At a minimum, you will need as many 1.44MB or 1.2MB floppies
	  as it takes to hold all the files in the
	  <filename>bin</filename> (binary distribution) directory.  If
	  you are preparing the floppies from DOS, then they
	  <emphasis>MUST</emphasis> be formatted using the MS-DOS
	  <command>FORMAT</command> command.  If you are using Windows,
	  use Explorer to format the disks (right-click on the
	  <devicename>A:</devicename> drive, and select &quot;Format&quot;.</para>

	<para>Do <emphasis>not</emphasis> trust factory pre-formatted
	  floppies.  Format them again yourself, just to be sure.  Many
	  problems reported by our users in the past have resulted from
	  the use of improperly formatted media, which is why we are
	  making a point of it now.</para>

	<para>If you are creating the floppies on 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
	  <command>disklabel</command> and <command>newfs</command>
	  commands to put a UFS filesystem on them instead, as the
	  following sequence of commands (for a 3.5" 1.44MB floppy)
	  illustrates:</para>

	<screen>&prompt.root; <userinput>fdformat -f 1440 fd0.1440</userinput>
&prompt.root; <userinput>disklabel -w -r fd0.1440 floppy3</userinput>
&prompt.root; <userinput>newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0</userinput></screen>

	<note>
	  <para>Use <literal>fd0.1200</literal> and
	    <literal>floppy5</literal> for 5.25" 1.2MB disks.</para>
	</note>

	<para>Then you can mount and write to them like any other
	  filesystem.</para>

	<para>After you have formatted the floppies, you will need to copy
	  the files to 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 all of the
	  distributions you want packed up in this fashion.  Each
	  distribution should go into a subdirectory on the floppy, e.g.:
	  <filename>a:\bin\bin.aa</filename>,
	  <filename>a:\bin\bin.ab</filename>, and so on.</para>

	<para>Once you come to the Media screen during the install
	  process, select <quote>Floppy</quote> and you will be prompted
	  for the rest.</para>
      </sect2>

      <sect2 id="install-msdos">
        <title>Installing from an MS-DOS Partition</title>

	<indexterm>
    <primary>installation</primary>
    <secondary>from MS-DOS</secondary>
  </indexterm>
	<para>To prepare for an installation from an MS-DOS partition,
	  copy the files from the distribution into a directory on that
	  partition.  For example, <filename>c:\freebsd</filename>.  The directory
	  structure of the CDROM or FTP site must be partially reproduced
	  within this directory, so we suggest using the DOS
	  <command>xcopy</command> command if you are copying it from a
	  CD.  For example, to prepare for a minimal installation of
	  FreeBSD:</para>

	<screen><prompt>C:\&gt;</prompt> <userinput>md c:\freebsd</userinput>
<prompt>C:\&gt;</prompt> <userinput>xcopy e:\bin c:\freebsd\bin\ /s</userinput>
<prompt>C:\&gt;</prompt> <userinput>xcopy e:\manpages c:\freebsd\manpages\ /s</userinput></screen>

	<para>Assuming that <devicename>C:</devicename> is where you have
	  free space and <devicename>E:</devicename> is where your CDROM
	  is mounted.</para>
	
	<para>If you do not have a CDROM drive, you can download the
	distribution from <ulink
	url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">
	ftp.FreeBSD.org</ulink>. Each distribution is in its own directory; 
	for example, the <emphasis>bin</emphasis> distribution can be 
	found in the <ulink
	url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/bin/">&rel.current;/bin/</ulink> directory.</para>
    
	<para>For as many distributions you wish to install from an MS-DOS
	  partition (and you have the free space for), install each one
	  under <filename>c:\freebsd</filename> &mdash; the
	  <literal>BIN</literal> distribution is the only one required for
	  a minimum installation.</para>
      </sect2>

      <sect2>
        <title>Creating an Installation Tape</title>

	<indexterm>
    <primary>installation</primary>
    <secondary>from QIC/SCSI Tape</secondary>
  </indexterm>
	<para>Installing from tape is probably the easiest method, short
	  of an online FTP install or CDROM install.  The installation
	  program expects the files to be simply tarred onto the tape.
	  After getting all of the distribution files you are interested
	  in, simply tar them onto the tape:</para>

	<screen>&prompt.root; <userinput>cd /freebsd/distdir</userinput>
&prompt.root; <userinput>tar cvf /dev/rwt0 dist1 ... dist2</userinput></screen>

	<para>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
	  <emphasis>full</emphasis> 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.</para>

	<note>
	  <para>When starting the installation, the tape must be in the
	    drive <emphasis>before</emphasis> booting from the boot
	    floppy.  The installation probe may otherwise fail to find
	    it.</para>
	</note>
      </sect2>

      <sect2>
        <title>Before Installing over a Network</title>

	<indexterm>
    <primary>installation</primary>
    <secondary>network</secondary>
    <tertiary>serial (SLIP or PPP)</tertiary>
  </indexterm>
	<indexterm>
    <primary>installation</primary>
    <secondary>network</secondary>
    <tertiary>parallel (PLIP)</tertiary>
  </indexterm>
	<indexterm>
    <primary>installation</primary>
    <secondary>network</secondary>
    <tertiary>Ethernet</tertiary>
  </indexterm>
	<para>There are three types of network installations you can do.
	  Serial port (SLIP or PPP), Parallel port (PLIP (laplink cable)),
	  or Ethernet (a standard Ethernet controller (includes some
	  PCMCIA)).</para>

	<para>The 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.</para>

	<para>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
	  early in the installation process.</para>  
	  <para>If you use PAP or CHAP to connect your ISP (in other
	  words, if you can connect to the ISP in Windows without
	  using a script), then all you will need to do is type in
	  <command>dial</command> at the
	  <application>ppp</application> prompt. Otherwise,
	  you will need to know
	  how to dial your ISP using the <quote>AT commands</quote>
	  specific to your modem, as the PPP dialer provides only a very
	  simple terminal emulator. Please refer
	  to the user-ppp <link linkend="userppp">handbook</link> and <ulink
	  url="../faq/ppp.html">FAQ</ulink> entries for further
	  information.  If you have problems, logging can be directed to
	  the screen using the command <command>set log local
	  ...</command>.</para>

	<para>If a hard-wired connection to another FreeBSD (2.0-R or
	  later) machine is available, you might also consider installing
	  over a <quote>laplink</quote> parallel port cable.  The data rate
	  over the parallel port is much higher than what is typically
	  possible over a serial line (up to 50kbytes/sec), thus resulting
	  in a quicker installation.</para>

	<para>Finally, for the fastest possible network installation, an
	  Ethernet adapter is always a good choice!  FreeBSD supports most
	  common PC Ethernet cards; a table of supported cards (and their
	  required settings) is provided in the Hardware Notes
	  for each release of FreeBSD.  If you are
	  using one of the supported PCMCIA Ethernet cards, also be sure
	  that it is plugged in <emphasis>before</emphasis> the laptop is
	  powered on!  FreeBSD does not, unfortunately, currently support
	  hot insertion of PCMCIA cards during installation.</para>

	<para>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.  If you are installing over a PPP connection and do not
	  have a static IP, fear not, the IP address can be dynamically
	  assigned by your ISP.  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 want to install by FTP via a
	  HTTP proxy (see below), you will also need the proxy's address.
	  If you do not know the answers to all or most of these questions,
	  then you should really probably talk to your system administrator
	  or ISP <emphasis>before</emphasis> trying this type of
	  installation.</para>

	<sect3>
	  <title>Before Installing via NFS</title>

    <indexterm>
      <primary>installation</primary>
      <secondary>network</secondary>
      <tertiary>NFS</tertiary>
    </indexterm>
	  <para>The 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.</para>

	  <para>If this server supports only <quote>privileged port</quote>
	    (as is generally the default for Sun workstations), you will
	    need to set this option in the Options menu before
	    installation can proceed.</para>

	  <para>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.</para>

	  <para>In order for NFS installation to work, the server must
	    support subdir mounts, e.g., if your FreeBSD 3.4 distribution
	    directory lives
	    on:<filename>ziggy:/usr/archive/stuff/FreeBSD</filename>, then
	    <hostid>ziggy</hostid> will have to allow the direct mounting
	    of <filename>/usr/archive/stuff/FreeBSD</filename>, not just
	    <filename>/usr</filename> or
	    <filename>/usr/archive/stuff</filename>.</para>

	  <para>In FreeBSD's <filename>/etc/exports</filename> file, this
	    is controlled by the <option>-alldirs</option>.  Other NFS
	    servers may have different conventions.  If you are getting
	    <quote>permission denied</quote> messages from the server, then
	    it is likely that you do not have this enabled
	    properly.</para>
	</sect3>

      </sect2>
  </sect1>
</chapter>

<!-- 
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->
