Installing Debian GNU/Linux 2.1 For SPARC
                 -----------------------------------------

                               Bruce Perens
                               Sven Rudolph
                               Igor Grobman
                               James Treacy
                               Adam Di Carlo

                    version 2.1.8.1, 25 February, 1999


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


Résumé
------

     This document contains installation instructions for the Debian
     GNU/Linux 2.1 system, for the SPARC (``sparc'') architecture. It also
     contains pointers to more information and information on how to make
     the most of your new Debian system. The procedures in this document
     are _not_ to be used for users upgrading existing systems; if you are
     upgrading, see the Debian 2.1 Release Notes
     (http://www.debian.org/releases/2.1/sparc/upgrading).


Copyright
---------

     This document may be distributed and modified under the terms of the
     GNU General Public License.
     © 1996 Bruce Perens
     © 1996, 1997 Sven Rudolph
     © 1998 Igor Grobman, James Treacy
     © 1998, 1999 Adam Di Carlo

     This manual is free software; you may redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
     Free Software Foundation; either version 2, or (at your option) any
     later version.

     This manual is distributed in the hope that it will be useful, but
     _without any warranty_; without even the implied warranty of
     merchantability or fitness for a particular purpose. See the GNU
     General Public License for more details.

     A copy of the GNU General Public License is available as
     `/usr/doc/copyright/GPL' in the Debian GNU/Linux distribution or on
     the World Wide Web at the GNU website
     (http://www.gnu.org/copyleft/gpl.html). You can also obtain it by
     writing to the Free Software Foundation, Inc., 59 Temple Place - Suite
     330, Boston, MA 02111-1307, USA.

     We require that you properly attribute Debian and the authors of this
     document on any materials derived from this document. If you modify
     and improve this document, we request that you notify the authors of
     this document, via <debian-boot@lists.debian.org>.


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


Table des matières
------------------

     1.        Welcome to Debian
     1.1.      Organization of This Document
     1.2.      About Copyrights and Software Licenses

     2.        System Requirements
     2.1.      Supported Hardware
     2.2.      Installation Media
     2.3.      Memory and Disk Space Requirements
     2.4.      Peripherals and Other Hardware
     2.5.      Purchasing Hardware Specifically for GNU/Linux

     3.        Before You Start
     3.1.      Backups
     3.2.      Information You Will Need
     3.3.      Planning Use for the System
     3.4.      Pre-installation Hardware and Operating System Setup

     4.        Partitioning your Hard Drive
     4.1.      Background
     4.2.      Device Names in Linux
     4.3.      Recommended Partitioning Scheme
     4.4.      Examples
     4.5.      Partitioning Prior to Installation

     5.        Methods for Installing Debian
     5.1.      Introduction
     5.2.      Choosing Your Installation Media
     5.3.      Description of Installation System Files
     5.4.      Installing from a Hard Disk
     5.5.      Installing from a CD-ROM
     5.6.      Booting from TFTP
     5.7.      Installing from NFS
     5.8.      Booting from Floppies
     5.9.      Installing Base from Floppies
     5.10.     Creating Floppies from Disk Images

     6.        Booting the Installation System
     6.1.      Boot Parameter Arguments
     6.2.      Booting with the Rescue Floppy
     6.3.      Booting from CD-ROM
     6.4.      Interpreting the Kernel Startup Messages
     6.5.      Troubleshooting the Boot Process

     7.        Using `dbootstrap' for Initial System Configuration
     7.1.      Introduction to `dbootstrap'
     7.2.      ``Select Color or Monochrome display''
     7.3.      ``Debian GNU/Linux Installation Main Menu''
     7.4.      ``Configure the Keyboard''
     7.5.      Last Chance!
     7.6.      ``Partition a Hard Disk''
     7.7.      ``Initialize and Activate a Swap Partition''
     7.8.      ``Initialize a Linux Partition''
     7.9.      ``Mount a Previously-Initialized Partition''
     7.10.     ``Install Operating System Kernel and Modules''
     7.11.     ``Configure Device Driver Modules''
     7.12.     ``Configure the Network''
     7.13.     ``Install the Base System''
     7.14.     ``Configure the Base System''
     7.15.     ``Make Linux Bootable Directly From Hard Disk''
     7.16.     The Moment of Truth
     7.17.     Set the Root Password
     7.18.     Create an Ordinary User
     7.19.     Shadow Password Support
     7.20.     Select and Install Profiles
     7.21.     Log In
     7.22.     Setting up PPP
     7.23.     Installing the Rest of Your System

     8.        Next Steps and Where to Go From Here
     8.1.      If You Are New to Unix
     8.2.      Orienting Yourself to Debian
     8.3.      Further Reading and Information
     8.4.      Compiling a New Kernel

     9.        Technical Information on the Boot Floppies
     9.1.      Source Code
     9.2.      Rescue Floppy
     9.3.      Replacing the Rescue Floppy Kernel
     9.4.      The Base Floppies

     10.       Administrivia
     10.1.     About This Document
     10.2.     Contributing to This Document
     10.3.     Major Contributions
     10.4.     Trademark Acknowledgement


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


1. Welcome to Debian 
---------------------

     We're delighted that you have decided to try Debian. We are sure that
     you will find that Debian is unique among operating system
     distributions. Debian brings together quality free software from
     around the world, integrating it into a coherent whole. The sum is
     truly more than the parts.

     The Debian GNU/Linux distribution is made up of a number of software
     _packages_. Each package consists of executables, scripts,
     documentation, and configuration information. Each package has a
     _maintainer_ that is responsible for that package. In this way, Debian
     grows _scalably_. Anyone who agrees to abide by the Debian Social
     Contract (http://www.debian.org/social_contract) may become a new
     maintainer. Any maintainer can introduce new software into Debian --
     provided it meets our criteria of being free, and the package follows
     our quality standards.

     The Debian Free Software Guidelines
     (http://www.debian.org/social_contract#guidelines) is a clear and
     concise statement of Debian's criteria for free software. It is a very
     influential movement in the Free Software Movement, and provided the
     basis of the Open Source Free Software Guidelines
     (http://opensource.org/osd.html).

     Only Debian has an extensive specification of our standards of
     quality, the Debian Policy (http://www.debian.org/doc/debian-policy/).
     This document defines the qualities and standards to which we hold
     Debian packages.

     To protect your system against trojan horses and other malevolent
     software, Debian verifies that packages have come from their real
     Debian maintainers. Debian packagers also takes great care to
     configure the packages in a secure manner. If security problems do
     arise with shipped packages, fixes are generally quickly available.
     Simply by updating your systems periodically, you will download and
     install security fixes.

     For more general information about Debian, see the Debian FAQ
     (http://www.debian.org/doc/FAQ/).


1.1. Organization of This Document 
-----------------------------------

     This document is meant to serve as a manual for first time Debian
     users. It tries to make as few assumptions as possible about the level
     of expertise of the reader. However, general knowledge of how your
     hardware works is assumed.

     Expert users may also find interesting reference information in this
     document, included minimum installation sizes, details of hardware
     supported by the Debian installation system, and so on. I encourage
     expert users to jump around in the document.
     In general, the document is arranged in linear fashion, walking the
     user through the installation process. Here are the steps, and the
     sections of this document which correlate with the steps. 

     1.   Determine whether your hardware meets the requirements for using
          the installation system, in chapter 2, `System Requirements'.

     2.   Backup your system, and perform any planning and hardware
          configuration prior to installing Debian, in chapter 3, `Before
          You Start'.

     3.   Partition your hard disk as described in chapter 4, `Partitioning
          your Hard Drive'. Partitioning is very important, since you may
          have to live with it for a while.

     4.   In chapter 5, `Methods for Installing Debian', the different ways
          to install Debian are presented. Select and prepare your
          installation media accordingly.

     5.   Next, you shall boot the installation system. Information on this
          step is covered in chapter 6, `Booting the Installation System';
          this chapter also contains troubleshooting procedures in case you
          have a hard time booting.

     6.   Perform initial system configuration, which is discussed in
          chapter 7, `Using `dbootstrap' for Initial System Configuration',
          Sections section 7.1, `Introduction to `dbootstrap'' to section
          7.12, ```Configure the Network'''.

     7.   Install the base system, from section 7.13, ```Install the Base
          System'''.

     8.   Boot into the newly installed base system and run through some
          post-base-installation tasks, from section 7.16, `The Moment of
          Truth'.

     9.   Install the rest of the system, using `dselect', in section 7.23,
          `Installing the Rest of Your System'.

     Once you've got your system installed, you can read chapter 8, `Next
     Steps and Where to Go From Here'. This chapter explains where to look
     to find more information about Unix, Debian, and how to replace your
     kernel. In case you want to build your own install system from
     sources, take a look at chapter 9, `Technical Information on the Boot
     Floppies'.

     Finally, information about this document, and how to contribute to it,
     may be found in chapter 10, `Administrivia'.


1.2. About Copyrights and Software Licenses 
--------------------------------------------

     I'm sure you've read the licenses that come with most commercial
     software -- they say you can only use one copy of the software on one
     computer. The Debian GNU/Linux System isn't like that. We encourage
     you to put a copy on every computer in your school or place of
     business. Lend it to your friends, and help them install it on their
     computers. You can even make thousands of copies and _sell_ them --
     with a few restrictions. That's because Debian is based on _free
     software_.

     Free software doesn't mean that it doesn't have a copyright, and it
     doesn't mean that the CD you buy containing this software is
     distributed at no charge. Free software, in part, means that the
     licenses of individual programs do not require you to pay for the
     privilege of distributing or using the programs. It also means that
     anyone may extend, adapt, and modify the software, and distribute the
     results of their work as well.[1]

     Many of the programs in the system are licensed under the _GNU_
     _General Public License_, or _GPL_. The GPL requires that you make the
     _source code_ of the programs available whenever you distribute a copy
     of the program; that ensures that you, the user, are able to modify
     the software. Thus, we've included the source code for all of those
     programs in the Debian system.[1] There are several other forms of
     copyright and software license used on the programs in Debian. You can
     find the copyrights and licenses of every program by looking in the
     file `/usr/doc/<package-name>/copyright' once you've installed your
     system.

     For more information on licenses and how Debian decides what is free
     enough to be included in the main distribution, see the Debian Free
     Software Guidelines
     (http://www.debian.org/social_contract#guidelines).

     The most important legal notice is that this software comes with _no
     warranties_. The programmers who have created this software have done
     so for the benefit of the community. No guarantee is made as to the
     suitability of the software for any given purpose. However, since the
     software is free, you are empowered to modify software to suit your
     needs as needed -- and enjoy the benefits of others who have extended
     the software in this way.


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


2. System Requirements 
-----------------------

     This section contains information about what hardware you need to get
     started with Debian. You will also find links to further information
     about hardware supported by GNU and Linux.


2.1. Supported Hardware 
------------------------

     Debian does not impose hardware requirements beyond the requirements
     of the Linux kernel and the GNU tool-sets. Therefore, any architecture
     or platform to which the Linux kernel, libc, `gcc', etc. have been
     ported, and for which a Debian port exists, can run Debian.

     There are, however, some limitations in our boot floppy set with
     respect to supported hardware. Some Linux-supported platforms might
     not be directly supported by our boot floppies. If this is the case,
     you may have to create a custom rescue disk, or investigate network
     installations.

     Rather than attempting to describe all the different hardware
     configurations which are supported for SPARC, this section contains
     general information and pointers to where additional information can
     be found.

2.1.1. Supported Architectures 
-------------------------------

     Debian 2.1 supports four architectures: Intel x86-based architectures;
     Motorola 680x0 machines such as Atari, Amiga, and Macintoshes; DEC
     Alpha machines; and Sun SPARC machines. These are referred to as
     _i386_, _m68k_, _alpha_, and _sparc_, respectively.

     This document covers installation for the _sparc_ architecture.
     Separate versions of this document exist for other architectures.

     This is the first official release of Debian GNU/Linux for the Sparc
     architecture. We feel that it has proven itself sufficiently to be
     released. However, because it has not had the exposure (and hence
     testing by users) that our i386 and m68k versions have had, you may
     encounter a few bugs. Use our Bug Tracking System
     (http://www.debian.org/Bugs/) to report any problems; make sure to
     mention the fact that the bug is on the Sparc platform. It can be
     necessary to use the debian-sparc mailing list
     (http://www.debian.org/MailingLists/subscribe) as well. Note that a
     separate porting effort is going on on the UltraSparc (64 bits)
     machines.

2.1.2. CPU, Mainboards, and Video Support 
------------------------------------------

     Sparc architectures are classified by sub-architecture, such as
     ``Sun4m''. Of these sub-architectures, most machines with the
     ``Sun4m'' and ``Sun4c'' sub-architectures are supported. ``Sun4u''
     (UltraSPARC) machines are supported based on the Linux kernel 2.2.1.
     The AP1000 multicomputer and the Tadpole Sparcbook 1 are not
     supported. See the Linux for SPARC Processors FAQ
     (http://www.geog.ubc.ca/s_linux/faq.html) for complete information.

2.1.3. Multiple Processors 
---------------------------

     Multi-processor support -- also called ``symmetric multi-processing''
     or SMP -- is supported for this architecture. However, the standard
     Debian 2.1 kernel image does not support SMP. This should not prevent
     installation, since the standard, non-SMP kernel should boot on SMP
     systems; the kernel will simply use the first CPU.

     In order to take advantage of multiple processors, you'll have to
     replace the standard Debian kernel. You can find a discussion of how
     to do this in section 8.4, `Compiling a New Kernel'. At this time
     (kernel version 2.0.35) the way you enable SMP is to edit the
     top-level Makefile for the kernel and uncomment the line that says
     `SMP = 1'. If you compile software on a multiprocessor system, look
     for the `-j' flag in the documentation on make(1).


2.2. Installation Media 
------------------------

     There are four different media which can be used to install Debian:
     floppies, CD-ROMs, local disk partitions, or the network. Different
     parts of the same Debian installation can mix and match these options;
     we'll go into that in chapter 5, `Methods for Installing Debian'.

     Floppy disk installation is a common option, although generally, the
     least desirable. In many cases, you'll have to do your first boot from
     floppies, using the Rescue Floppy. Generally, all you will need is a
     high-density (1440 kilobytes) 3.5 inch floppy drive.

     CD-ROM based installation is also supported for some architectures. On
     machines which support bootable CD-ROMs, you should be able to do a
     completely floppy-less installation. Even if your system doesn't
     support booting from a CD-ROM, you can use the CD-ROM in conjunction
     with the other techniques to install your system, once you've booted
     up by other means; see section 5.5, `Installing from a CD-ROM'.

     Installation from local disk is another option. If you have free space
     on partitions other than the partitions you're installing to, this is
     definitely a good option. Some platforms even have local installers,
     i.e., for booting from AmigaOS, TOS, or MacOS. Installation from a
     local partition (i.e., SunOS UFS slices) is not currently supported
     for SPARC.

     The last option is network installation. You can install your system
     via NFS. Diskless installation, using NFS-mounting of all local
     filesystems, is another option. You also _boot_ your system over the
     network. After your base system is installed, you can install the rest
     of your system via any sort of network connection (including PPP), via
     FTP, HTTP, or NFS.

     More complete descriptions of these methods, and helpful hints for
     picking which method is best for you, can be found at chapter 5,
     `Methods for Installing Debian'. Please be sure to continue reading to
     make sure the device you intend to boot and install from are supported
     by the Debian installation system.

2.2.1. Supported Storage Systems 
---------------------------------

     The Debian boot disks contain a kernel which is built to maximize the
     number of systems it runs on. Unfortunately, this makes for a larger
     kernel, with a lot of drivers which will never be used (see section
     8.4, `Compiling a New Kernel' to learn how to build your own).
     However, support for the widest possible range of devices is desirable
     in order to ensure that Debian can be installed on the widest array of
     hardware.

     Any storage system supported by the Linux kernel is also supported by
     the boot system. The PTI Qlogic ISP driver is supported as a module.
     See Linux for SPARC Processors FAQ
     (http://www.geog.ubc.ca/s_linux/faq.html) for more information on
     SPARC hardware supported by the Linux kernel.


2.3. Memory and Disk Space Requirements 
----------------------------------------

     You must have at least 5MB of memory and 35MB of hard disk. If you
     want to install a reasonable amount of software, including the X
     window system, and some development programs and libraries, you'll
     need at least 300MB. For a more or less complete installation, you'll
     need around 800MB. To install _everything_ available in Debian, you'll
     probably need around 2 GB. Actually, installing everything doesn't
     even make sense, since some packages conflict with others.


2.4. Peripherals and Other Hardware 
------------------------------------

     Linux supports a large variety of hardware devices such as mice,
     printers, scanners, modems, network cards, PCMCIA devices, etc.
     However, none of these devices are required while installing the
     system. This section contains information about peripherals
     specifically _not_ supported by the installation system, even though
     they may be supported by Linux.
     The following network interface cards (NICs) are supported as modules.
     However, due to the magic of OpenPROM, you still should be able to
     boot from these devices: 

        * Sun Happy Meal

        * Sun QuadEthernet

        * MyriCOM Gigabit Ethernet

     The Sun BigMAC NIC is not supported by the installation system.
     Therefore, you won't be able to do NFS installations on systems with
     this NIC.


2.5. Purchasing Hardware Specifically for GNU/Linux 
----------------------------------------------------

     There are several vendors, now, who ship systems with Debian or other
     distributions of GNU/Linux pre-installed. You might pay more for the
     privilege, but it does buy a level of piece of mind, since you can be
     sure that the hardware is well-supported by GNU/Linux.

     Whether or not you are purchasing a system with Linux bundled, or even
     a used system, it is still important to check that your hardware is
     supported by the Linux kernel. Check if your hardware is listed in the
     references found above. Let your salesperson (if any) know that you're
     shopping for a Linux system. Support Linux-friendly hardware vendors.

2.5.1. Avoid Proprietary or Closed Hardware 
--------------------------------------------

     Some hardware manufacturers simply won't tell us how to write drivers
     for their hardware. Others won't allow us access to the documentation
     without a non-disclosure agreement that would prevent us from
     releasing the Linux source code. One example is the IBM laptop DSP
     sound system used in recent ThinkPad systems -- some of these systems
     also couple the sound system to the modem. Another example is the
     proprietary hardware in the older Macintosh line.

     Since we haven't been granted access to the documentation on these
     devices, they simply won't work under Linux. You can help by asking
     the manufacturers of such hardware to release the documentation. If
     enough people ask, they will realize that free software community is
     an important market.


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


3. Before You Start 
--------------------


3.1. Backups 
-------------

     Before you start, make sure to back up every file that is now on your
     system. The installation procedure can wipe out all of the data on a
     hard disk! The programs used in installation are quite reliable and
     most have seen years of use; still, a false move can cost you. Even
     after backing up be careful and think about your answers and actions.
     Two minutes of thinking can save hours of unnecessary work.

     Even if you are installing a multi-boot system, make sure that you
     have on hand the distribution media of any other present operating
     systems. Especially if you repartition your boot drive, you might find
     that you have to reinstall your operating system's boot loader, or in
     some cases (i.e., Macintosh), the whole operating system itself.


3.2. Information You Will Need 
-------------------------------

     Besides this document, you'll need the fdisk (fdisk.txt) manual page,
     the dselect Tutorial (dselect-beginner.html), and the Linux for SPARC
     Processors FAQ (http://www.geog.ubc.ca/s_linux/faq.html)
     If your computer is connected to a network 24 hours a day (i.e., an
     Ethernet or equivalent connection -- not a PPP connection), you should
     ask your network's system administrator for this information: 

        * Your host name (you may be able to decide this on your own).

        * Your domain name.

        * Your computer's IP address.

        * The IP address of your network.

        * The netmask to use with your network.

        * The broadcast address to use on your network.

        * The IP address of the default gateway system you should route to,
          if your network _has_ a gateway.

        * The system on your network that you should use as a DNS (Domain
          Name Service) server.

        * Whether you connect to the network using Ethernet.

     If your computer's only network connection is via a serial line, using
     PPP or an equivalent dialup connection, you are probably not
     installing the base system over a network. You don't need to worry
     about getting your network setup until your system is already
     installed. See section 7.22, `Setting up PPP' below for information on
     setting up PPP under Debian.


3.3. Planning Use for the System 
---------------------------------

     It is important to decide what type of machine you are creating. This
     will determine disk space requirements and affect your partitioning
     scheme.

     There are a number of default ``Profiles'' which Debian offers for
     your convenience (see section 7.20, `Select and Install Profiles').
     Profiles are simply sets of package selections which make it easier
     for you, in that a number of packages are automatically marked for
     installation.

     Each given profile has a size of the resulting system after
     installation is complete. Even if you don't use these profiles, this
     discussion is important for planning, since it will give you a sense
     of how large your partition or partitions need to be.
     The following are some of the available profiles and their sizes: 

     Server_std
          This is a small server profile, useful for stripped down server
          which does not have a lot of niceties for shell users. It
          basically has an FTP server, a web server, DNS, NIS, and POP. It
          will take up around 50MB. Of course, this is just size of the
          software; any data you serve up would be additional.

     Dialup
          A standard desktop box, including the X window system, graphics
          applications, sound, editors, etc. Size of the packages will be
          around 500MB.

     Work_std
          A more stripped-down user machine, without the X window system or
          X applications. Possibly suitable for a laptop or mobile
          computer. The size is around 140MB. (Note that the author has a
          pretty simple laptop setup including X11 in even less, around
          100MB).

     Devel_comp
          A desktop setup with all the development packages, such as Perl,
          C, C++, etc. Size is around 475MB. Assuming you are adding X11
          and some additional packages for other uses, you should plan
          around 800MB for this type of machine.

     Remember that these sizes don't include all the other materials which
     are usually to be found, such as user files, mail, and data. It is
     always best to be generous when considering the space for your own
     files and data.


3.4. Pre-installation Hardware and Operating System Setup 
----------------------------------------------------------

     There is sometimes some tweaking to your system that must be done
     prior to installation. The x86 platform is the most notorious of
     these; pre-installation hardware setup on other architectures is
     considerably simpler.

     This section will walk you through pre-installation hardware setup, if
     any, that you will need to do prior to installing Debian. Generally,
     this involves checking and possibly changing firmware settings for you
     system. The ``firmware'' is the core software used by the hardware; it
     is most critically invoked during the bootstrap process (after
     power-up).

3.4.1. Invoking OpenBoot 
-------------------------

     OpenBoot provides the basic functions needed to boot the SPARC
     architecture. This is rather similar in function to the BIOS in the
     x86 architecture, although much nicer. he Sun boot proms have a built
     in forth interpreter which lets you do quite a number of things with
     your machine, such as diagnostics, simple scripts, etc.

     To get to the boot prompt you need to hold down the _Stop_ key (on
     older type 4 keyboards, use the _L1_ key, if you have a PC keyboard
     adapter, use the _Break_ key) and press the _A_ key. The boot prom
     will give you a prompt, either `ok' or `>'.

3.4.2. Boot Device Selection 
-----------------------------

     You can use OpenBoot to boot from specific devices, and also to change
     your default boot device. However, you need to know some details about
     how OpenBoot names devices; it's much different from Linux device
     naming, described in section 4.2, `Device Names in Linux'. Also, the
     command will vary a bit, depending on what version of OpenBoot you
     have. More information about OpenBoot can be found in the Sun OpenBoot
     Reference
     (http://docs.sun.com:80/ab2/coll.216.1/@Ab2CollToc?subject=sysadmin).

     Typically, you can use OpenBoot device such as ``floppy'', ``cdrom'',
     ``net'', ``disk'', or ``disk2''. These have the obvious meanings; the
     ``net'' device is for booting from the network. Additionally, the
     device name can specify a particular partition of a disk, such as
     ``disk2:a'' to boot disk2, first partition. Full OpenBoot device names
     have the form `<driver-name>@<unit-address>:<device-arguments>'. The
     command `show-devs' in newer OpenBoot revisions is useful for viewing
     the currently configured devices. For full information, see the Sun
     OpenBoot Reference
     (http://docs.sun.com:80/ab2/coll.216.1/@Ab2CollToc?subject=sysadmin).

     To boot from a specific device, use the command `boot <device>'. You
     can set this behavior as the default using the `setenv' command.
     However, the name of the variable to set changed between OpenBoot
     revisions. In OpenBoot 1.x, use the command `setenv boot-from
     <device>'. In later revisions of OpenBoot, use the command `setenv
     boot-device <device>'.

3.4.3. Over-Clocking your CPU 
------------------------------

     Many people have tried operating their 90 MHz CPU at 100 MHz, etc. It
     sometimes works, but is sensitive to temperature and other factors and
     can actually damage your system. One of the authors of this document
     over-clocked his own system for a year, and then the system started
     aborting the `gcc' program with an unexpected signal while it was
     compiling the operating system kernel. Turning the CPU speed back down
     to its rated value solved the problem.

3.4.4. Bad Memory Modules 
--------------------------

     The `gcc' compiler is often the first thing to die from bad memory
     modules (or other hardware problems that change data unpredictably)
     because it builds huge data structures that it traverses repeatedly.
     An error in these data structures will cause it to execute an illegal
     instruction or access a non-existent address. The symptom of this will
     be `gcc' dying from an unexpected signal.


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


4. Partitioning your Hard Drive 
--------------------------------


4.1. Background 
----------------

     Partitioning your disk simply refers to the act of breaking up your
     disk into sections. Each section is then independent of the others.
     It's roughly equivalent to putting up walls in a house; if you add
     furniture to one room it doesn't affect any other room.

     If you already have an operating system on your system (Windows95,
     Windows NT, OS/2, MacOS, Solaris, FreeBSD) and want to stick Linux on
     the same disk, you will probably need to repartition the disk. In
     general, changing a partition with a filesystem already on it will
     destroy any information there. Thus you should always make backups
     before doing any repartitioning. Using the analogy of the house, you
     would probably want to move all the furniture out of the way before
     moving a wall or you risk destroying it.

     At a bare minimum, GNU/Linux needs one partition for itself. You can
     have a single partition containing the entire operating system,
     applications, and your personal files. Most people feel that the swap
     partition is also a necessity, although it's not strictly true.
     ``Swap'' is scratch space for an operating system, which allows the
     system to use cheap disk storage as ``virtual memory''. By putting
     swap on its own partition Linux can make much more efficient use of it
     (it is possible to force Linux to use a regular file as swap, but it
     is not recommended).

     Most people choose to give GNU/Linux more than the minimum number of
     partitions, however. There are two reasons you might want to break up
     the filesystem into a number of smaller partitions. The first is for
     safety. If something happens to corrupt the file system, generally
     only one partition is affected. Thus, you only have to replace (from
     the backups you've been carefully keeping) a portion of your system.
     At a bare minimum, you should consider creating what is commonly
     called a ``root partition''. This contains the most essential
     components of the system. If any other partitions get corrupted, you
     can still boot into GNU/Linux to fix the system. This can save you the
     trouble of having to reinstall the system from scratch.

     The second reason is generally more important in a business setting,
     but it really depends on your use of the machine. Suppose something
     runs out of control and starts eating disk space. If the process
     causing the problem happens to have root privileges (the system keeps
     a percentage of the disk away from users), you could suddenly find
     yourself out of disk space. This is not good as the OS needs to use
     real files (besides swap space) for many things. It may not even be a
     problem of local origin. For example, getting spammed with e-mail can
     easily fill a partition. By using more partitions, you protect the
     system from many of these problems. Using mail as an example again, by
     putting `/var/spool/mail' on its own partition, the bulk of the system
     will work even if you get spammed.

     The only real drawback to using more partitions is that it is often
     difficult to know in advance what your needs will be. If you make a
     partition too small then you will either have to reinstall the system
     or you will be constantly moving things around to make room in the
     undersized partition. On the other hand, if you make the partition too
     big, you will be wasting space that could be used elsewhere. Disk
     space is cheap nowadays, but why throw your money away?


4.2. Device Names in Linux 
---------------------------
     Linux disks and partition names are different than under other
     operating systems. You need to know the names that Linux uses when you
     partition. Here's the basic naming scheme: 

        * The first floppy drive is named ``/dev/fd0''.

        * The second floppy drive is named ``/dev/fd1''.

        * The first SCSI disk (SCSI ID address-wise) is named ``/dev/sda''.

        * The second SCSI disk (address-wise) is named ``/dev/sdb'', and so
          on.

        * The first SCSI CD-ROM is named ``/dev/scd0'', also known as
          ``/dev/sr0''.

        * The master disk on IDE primary controller is named ``/dev/hda''.

        * The slave disk on IDE primary controller is named ``/dev/hdb''.

        * The master and slave disks of the secondary controller can be
          called ``/dev/hdc'' and ``/dev/hdd'', respectively. Newer IDE
          controllers can actually have two channels, effectively acting
          like two controllers.

     The partitions on each disk are represented by appending a decimal
     number to the disk name: ``sda1'' and ``sda2'' represent the first and
     second partitions of the first SCSI disk drive in your system.

     Here is a real-life example. Let's assume you have a system with 2
     SCSI disks, one at SCSI address 2 and the other at SCSI address 4. The
     first disk (at address 2) is then named ``sda'', and the second
     ``sdb''. If the ``sda'' drive has 5 partitions on it, these will be
     named ``sda1'', ``sda2'', ..., ``sda5''. The same applies to the
     ``sdb'' disk and its partitions.

     Note that if you have two SCSI host bus adapters (i.e., controllers),
     the order of the drives can get confusing. The best solution in this
     case is to watch the boot messages, assuming you know yourself the
     drive models.


4.3. Recommended Partitioning Scheme 
-------------------------------------

     As described above, you should definitely have a separate smaller root
     partition, and a larger `/usr' partition, if you have the space. For
     examples, see below. For most users, the two partitions initially
     mentioned is sufficient. This is especially appropriate when you have
     a single small disk, since breaking out lots of partitions can waste
     space.

     In some cases, you might need a separate `/usr/local' partition if you
     plan to install many programs that are not part of the Debian
     distribution. If your machine will be a mail server, you might need to
     make `/var/spool/mail' a separate partition. Often, putting `/tmp' on
     it's own partition, for instance 20 to 32MB, is a good idea. If you
     are setting up a server with lots of user accounts, it's generally
     good to have a separate, large `/home' partition. In general, the
     partitioning situation varies from computer to computer depending on
     its uses.

     For very complex systems, you should see the Multi Disk HOWTO
     (http://metalab.unc.edu/LDP/HOWTO/Multi-Disk-HOWTO.html). This
     contains in-depth information, mostly of interest to ISPs and people
     setting up servers.

     With respect to the issue of swap partition size, there are many
     views. One rule of thumb which works well is to use as much swap as
     you have system memory, although there probably isn't much point in
     going over 64MB of swap for most users. It also shouldn't be smaller
     than 16MB, in most cases. Of course, there are exceptions to these
     rules. If you are trying to solve 10000 simultaneous equations on a
     machine with 256MB of memory, you may need a gigabyte (or more) of
     swap.

     Note that Linux for your architecture will not use more than 128
     megabytes of swap on a single swap partition. However, you can make
     multiple swap partitions by hand and edit `/etc/fstab' after you've
     installed to get more than 128 megabytes of swap. If your swap
     requirements are this high, however, you should probably try to spread
     the swap across different disks (also called ``spindles''). Or you can
     try the more recent Linux kernels (2.2 and higher) where this
     limitation was relaxed (be careful, it may require other changes in
     your system).


4.4. Examples 
--------------

     As an example, the author's home machine has 32MB of RAM and a 1.7GB
     IDE drive on `/dev/hda'. There is a 500MB DOS partition on `/dev/hda1'
     (should have made it 200MB as it never gets used). A 32MB swap
     partition is used on `/dev/hda3' and the rest (about 1.2GB on
     `/dev/hda2') is the Linux partition.


4.5. Partitioning Prior to Installation 
----------------------------------------

     There are two different times that you can partition: prior to the
     installation of Debian, or during installation of Debian.

4.5.1. Partitioning from SunOS 
-------------------------------


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


5. Methods for Installing Debian 
---------------------------------


5.1. Introduction 
------------------
     As you initially install Debian, there are several steps that you
     shall undergo, in order: 

     1.   booting the installation system

     2.   initial system configuration

     3.   installing the base system

     4.   booting the newly installed base system

     5.   installing the rest of the system

     Booting the Debian installation system, the first step, is generally
     done with the Rescue Floppy or from the CD-ROM. Alternatively, you can
     boot Debian over the network. The first boot is sometimes the hardest,
     depending on your hardware. Therefore, it is described in chapter 6,
     `Booting the Installation System'.

     Once you've booted into Linux, the `dbootstrap' program will launch
     and guide you through the second step, the initial system
     configuration. This step is described in detail in chapter 7, `Using
     `dbootstrap' for Initial System Configuration'.

     The ``Debian base system'' is a core set of packages which are
     required to run Debian in a minimal, stand-alone fashion. Once you
     have configured and installed the base system, your machine can
     ``stand on its own''. The Debian base system can be installed from the
     following media: floppies, hard disk, CD-ROM, or from an NFS server.
     `dbootstrap' will perform this installation; it is described in
     section 7.13, ```Install the Base System'''.

     The final step is the installation of the remainder of the Debian
     system. This would include the applications and documents that you
     actually use on your computer, such as the X Window System, editors,
     shells, and development environments. The rest of the Debian system
     can be installed from CD-ROM or any mirror of the Debian archive (on
     or off the Internet, via HTTP, FTP, or NFS). At this point, you'll be
     using the standard Debian package management tools, such as `dselect'
     or `apt-get'. This step is described in section 7.23, `Installing the
     Rest of Your System'.

     Note that the media you use for one step and the media used for
     another step do _not_ need to be the same. That is, you can boot from
     the Rescue Floppy, install the base system from NFS, and then install
     the remainder of the system from CD-ROM. If you're downloading the
     system from the archive, you'll generally boot and install the base
     system from floppies, installing the complete Debian system from the
     Internet.

     The installation system, which is required for the first three
     installation steps, are divided into three parts: the ``Rescue
     Floppy'', the ``Drivers Floppy'', and the ``Base System''. Below you
     will find a description of the different installation methods, and a
     description of files which might be required for installation. Which
     files you use, and what steps you have to take to prepare your
     installation media, will vary with the method that you select to
     install Debian.


5.2. Choosing Your Installation Media 
--------------------------------------

     First, choose the media to use to boot the installation system. Next,
     choose the method you will use to install the base system.

5.2.1. Choosing Initial Boot Media 
-----------------------------------

     To boot the installation system, you have the following choices:
     floppies, bootable CD-ROM, network boot (TFTP), or a non-Linux boot
     loader.

     Booting from floppies is supported for most platforms, excepting
     Amigas and Macs. It is described in section 5.8, `Booting from
     Floppies'.

     CD-ROM booting is one of the easiest ways to install. If you're
     unlucky and the kernel on the CD-ROM doesn't work for you, you'll have
     to fall back to another technique. Installing from CD-ROM is described
     in section 5.5, `Installing from a CD-ROM'.

     Booting from the network requires that you have a TFTP server, a RARP
     server, and a network connection supported by the boot floppies. This
     installation method is described in section 5.6, `Booting from TFTP'.

     Booting from an existing operating system is often a convenient
     option; for some systems it is the only supported method of
     installation. This method is described in section 5.4, `Installing
     from a Hard Disk'.

5.2.2. Choosing Media for Installing Base 
------------------------------------------

     The base system can be installed in the following ways: from floppies
     (section 5.9, `Installing Base from Floppies'), from a CD-ROM (section
     5.5, `Installing from a CD-ROM'), from an NFS server (section 5.7,
     `Installing from NFS'), or from a local hard disk (section 5.4,
     `Installing from a Hard Disk'). You should choose whatever method
     matches the media you have, and whatever is the most convenient.


5.3. Description of Installation System Files 
----------------------------------------------

     This section contains an annotated list of files you will find in the
     `disks-sparc' directory. You may not need to download these at all; it
     all depends on the booting and base system installation media you have
     chosen.

     Most files are floppy disk images; that is, a single file which can be
     written to a disk to create the necessary floppy disks. These images
     are, obviously, dependent on the size of the target floppy, such as
     1.44MB, 1.2MB, or 720KB. Which sizes are available depends on your
     platform (i.e., 720KB drives are Atari-specific). The images for
     1.44MB drives have `14' embedded in their filenames, 1.2MB images have
     `12' somewhere in their filename, 720KB drives have `72' in their
     filename.
     If you are using a web browser on a networked computer to read this
     document, you can probably retrieve the files by selecting their names
     in your web browser. Otherwise, you can retrieve them from
     ftp://ftp.debian.org/debian/dists/slink/main/disks-sparc/current/, or
     a similar directory in any of the Debian mirror sites
     (http://www.debian.org/distrib/ftplist). 

     resc1440.bin, resc1440-2.2.1.bin, resc1440-2.2.1-sun4u.bin -- the
     Rescue Floppy images
          These are the Rescue Floppy disk images. The Rescue Floppy is
          used for initial setup and for emergencies, such as when your
          system doesn't boot for some reason. Therefore it is recommended
          you write the disk image to the floppy even if you are not using
          floppies for installation.

          If for some reason you need to run the Linux 2.2.1 kernels, you
          will want to use the resc1440-2.2.1.bin rescue image. Sun4u
          architectures, i.e., the ``Ultra'' line, _must_ use the
          resc1440-2.2.1-sun4u.bin images.

     drv1440.bin, drv1440-2.2.1.bin, drv1440-2.2.1-sun4u.bin -- the Drivers
     Floppy images
          These are the Drivers Floppy disk images. They contain the kernel
          modules, or drivers, for all kinds of hardware that are not
          necessary for initial booting. You will be prompted to choose the
          drivers you need during the installation process.

          If you used a special Rescue Floppy image, you need to use the
          corresponding Drivers Floppy image.

     base2_1.tgz, or base14-1.bin, base14-2.bin, base14-3.bin,
     base14-4.bin, base14-5.bin, base14-6.bin, base14-7.bin, base14-8.bin
     -- the base system
          These files contain the base system which will be installed on
          your Linux partition during the installation process. This is the
          bare minimum necessary for you to be able to install the rest of
          the packages. The `base2_1.tgz' file is for installation from
          non-floppy media, i.e., CD-ROM, harddisk, or NFS.

     root.bin -- Root image
          This file contains an image of a temporary filesystem that gets
          loaded into memory when you boot. This is used for installations
          from hard disk and from CD-ROM.

          On your architecture, a root image is required, since it won't
          fit on the Rescue Floppy. If you are booting from floppies
          (section 5.8, `Booting from Floppies'), you'll need to create a
          root floppy as well.

     tftpboot.img, tftpboot-2.2.1.img -- TFTP boot image
          Boot image used for network booting, see section 5.6, `Booting
          from TFTP'. The 2.2.1 image contains both sparc32 and sparc64
          support; use it if you need to use the 2.2.1 Rescue Floppy images
          above.

     install.txt, install.html -- Installation Manual
          This file you are now reading, in plain ASCII or HTML format.

     fdisk.txt
          Instructions for using your available partitioning programs.

     basecont.txt
          Listing of the contents of the base system.



5.4. Installing from a Hard Disk 
---------------------------------

     In some cases, you may wish to boot from an existing operating system.
     You can also boot into the installation system using other means, but
     install the base system from disk.

5.4.1. Installing from a Linux Partition 
-----------------------------------------

     You can install Debian from an ext2fs partition or from a Minix
     partition. This installation technique may be appropriate if you are
     completely removing your current Linux system with Debian, for
     instance.

     Note that the partition you are installing _from_ should not be the
     same as the partitions you are installing Debian _to_ (i.e., `/, /usr,
     /lib', and all that).
     To install from an already existing Linux partition, follow these
     instructions. 
     1.   Get the following files and place them in a directory on your
          Linux partition. Use the largest possible files for your
          architecture: 

             * a Rescue Floppy image

             * a Drivers Floppy image

             * base2_1.tgz

     2.   You can use any other functional boot method when installing from
          a partition. The following assumes you are booting with floppies;
          however, any boot installation can be used.

     3.   Create the Rescue Floppy as discussed in section 5.10, `Creating
          Floppies from Disk Images'. Note that you won't need the Drivers
          Floppy.

     4.   Insert the Rescue Floppy into your floppy drive, and reboot the
          computer.

     5.   Skip down to chapter 6, `Booting the Installation System'.



5.5. Installing from a CD-ROM 
------------------------------

     If you have a CD which is bootable, and if you architecture and system
     supports booting from a CD-ROM, you don't need any floppies. Then put
     the CD-ROM into the drive, and reboot. Now you can skip down to
     chapter 6, `Booting the Installation System'.

     However you decide to boot, you can install the base Debian system
     from the CD-ROM. Simply boot using one of the other installation
     techniques; when it is time to install the base system, and when you
     install the complete system, just point your installation system at
     the CD-ROM drive as described in section 7.13, ```Install the Base
     System'''.


5.6. Booting from TFTP 
-----------------------

     You need to setup two servers: a RARP server and a TFTP server. The
     Reverse Address Resolution Protocol (RARP) is how your client will
     figure out what IP address to use; the Trivial File Transfer Protocol
     (TFTP) is used to serve the boot image to the client. Theoretically,
     any server, on any platform, which implements these protocols may be
     used. In the examples in this section, we shall provide commands for
     SunOS 4.x, SunOS 5.x (a.k.a. Solaris), and GNU/Linux.

     To setup RARP, you need to know the ethernet address of the client
     (a.k.a. the MAC address). If you don't know this information, you can
     pick it off the initial OpenPROM boot messages, use the OpenBoot
     `.enet-addr' command, or boot into ``Rescue'' mode (i.e., from the
     Rescue Floppy) and use the command `/sbin/ifconfig eth0'.

     In GNU/Linux you need to populate the kernel's RARP table. To do this
     execute 
          /sbin/rarp -s <client-hostname> <client-enet-addr>
          /sbin/arp -s <client-ip> <client-enet-addr>
     Under SunOS, you need to ensure that the ethernet hardware address for
     the client is listed in the ``ethers'' database (either in the
     `/etc/ethers' file, or via NIS/NIS+) and in the ``hosts'' database.
     Then you need to start the RARP daemon. In SunOS 4, issue the command
     (as root): `/usr/etc/rarpd -a'; in SunOS 5, use `/usr/sbin/rarpd -a'.

     To get the TFTP server ready to go, you should first make sure that
     `tftpd' is enabled. This is usually enabled by having the following
     line in `/etc/inetd.conf': 
          tftp dgram udp wait root /usr/etc/in.tftpd in.tftpd -s /boot
     Look in that file and remember the directory which is used for the
     ``-s'' argument of `in.tftpd'; you'll need that below. If you've had
     to change `/etc/inetd.conf', you'll have to notify the running `inetd'
     process that the file has changed. On a Debian machine, run
     `/etc/init.d/netbase reload'; on other machines, find out the process
     ID for `inetd', and run `kill -1 <inetd-pid>'.

     Next, place the TFTP boot image, `tftpboot.img', in the `tftpd' boot
     image directory. Generally, this directory will be `/boot' in Debian,
     and `/tftpboot' in other operating systems. Then, you'll have to make
     a link from that file to the file which `tftpd' will use for booting a
     particular client. The form of the file that `tftpd' will look for is
     `<client-ip-in-hex>.<client-architecture>'. To compute
     <client-ip-in-hex>, take each byte of the client IP address and
     translate it into hexadecimal notation. You have you have a machine
     handy with the `bc' program, you can use the program. First issue the
     `obase=16' command to set the output to hex, then enter the individual
     components of the client IP one at a time. As for
     <client-architecture>, try out some values. Sparc architectures for
     instance use the sub-architecture names, such as ``SUN4M'' or
     ``SUN4C''. Once you've determined the name, make the link like so: `ln
     /boot/tftpboot.img /boot/<file-name>'.

     Now you should be ready to actually boot your system. On machines with
     OpenBoot, simply enter the boot monitor on the machine you are
     installing to, and use the command `boot net'.

5.6.1. TFTP Installation for Low-Memory Systems 
------------------------------------------------

     On some systems, the standard installation RAM-disk, combined with the
     memory requirements of the TFTP boot image, cannot fit in memory. In
     this case, you can still install using TFTP, you'll just have to go
     through the additional step of NFS mounting your root directory over
     the network as well. This type of setup is also appropriate for
     diskless or dataless clients.

     First, follow all the steps above in section 5.6, `Booting from TFTP'.


5.7. Installing from NFS 
-------------------------

     Due to the nature of this method of installation, only the base system
     can be installed via NFS. You will need to have the rescue disk and
     the driver disk available locally using one of the above methods. To
     install the base system via NFS, you'll have to go through the regular
     installation as explained in chapter 7, `Using `dbootstrap' for
     Initial System Configuration'. Do not forget to insert the module
     (driver) for your ethernet card, and the file system module for NFS.

     When `dbootstrap' asks you where the base system is located (section
     7.13, ```Install the Base System'''), you should choose NFS, and
     follow the instructions.


5.8. Booting from Floppies 
---------------------------

     Booting from floppies is a simple process. Simply download the Rescue
     Floppy image and the Drivers Floppy image. Copy these to floppies as
     described in section 5.10, `Creating Floppies from Disk Images'. If
     you need to, you can also modify the Rescue Floppy; see section 9.3,
     `Replacing the Rescue Floppy Kernel'.

     On your architecture, the Rescue Floppy couldn't fit the root
     filesystem image, so you'll need the root image to be written to a
     disk as well. You can create that floppy just as the other images are
     written to floppies. Once the kernel has been loaded from the Rescue
     Floppy, you'll be prompted for the root disk. Insert that floppy and
     continue. See also section 6.2, `Booting with the Rescue Floppy'.


5.9. Installing Base from Floppies 
-----------------------------------

     NOTE: This is not a recommended way of installing Debian, because the
     floppies are generally the least reliable type of media. This is only
     recommended if you have no extra, pre-existing filesystems on any of
     the hard drives on your system.
     Complete these steps: 
     1.   Obtain these disk images (these files are described in greater
          detail in section 5.3, `Description of Installation System
          Files'): 

             * a Rescue Floppy image

             * a Drivers Floppy image

             * the base system disk images, i.e., base14-1.bin,
               base14-2.bin, etc.

     2.   Locate sufficient floppies for all the images you need to write.

     3.   Create the floppies, as discussed in section 5.10, `Creating
          Floppies from Disk Images'.

     4.   Insert the Rescue Floppy into your floppy drive, and reboot the
          computer.

     5.   Skip down to chapter 6, `Booting the Installation System'.



5.10. Creating Floppies from Disk Images 
-----------------------------------------

     Disk images are files containing the complete contents of a floppy
     disk in _raw_ form. Disk images, such as `resc1440.bin', cannot simply
     be copied to floppy drives. A special program is used to write the
     image files to floppy disk in _raw_ mode. This is required because
     these images are raw representations of the disk; it is required to do
     a _sector copy_ of the data from the file onto the floppy.

     There are different techniques for creating floppies from disk images,
     which depend on your platform. This section describes how to create
     floppies from disk images for different platforms.

     No matter which method you use to create your floppies, you should
     remember to flip the tab on the floppies once you have written them,
     to ensure they are not damaged unintentionally.

5.10.1. Writing Disk Images From a Linux or Unix System 
--------------------------------------------------------

     To write the floppy disk image files to the floppy disks, you will
     probably need root access to the system. Place a good, blank floppy in
     the floppy drive. Next, use the command 
          dd if=<file> of=/dev/fd0 bs=512 conv=sync ; sync
     where <file> is one of the floppy disk image files. `/dev/fd0' is a
     commonly used name of the floppy disk device, it may be different on
     your workstation (on Solaris, it is `/dev/fd/0'). The command may
     return to the prompt before Unix has finished writing the floppy disk,
     so look for the disk-in-use light on the floppy drive and be sure that
     the light is out and the disk has stopped revolving before you remove
     it from the drive. On some systems, you'll have to run a command to
     eject the floppy from the drive (on Solaris, use `eject', see the
     manual page).

     Some systems attempt to automatically mount a floppy disk when you
     place it in the drive. You might have to disable this feature before
     the workstation will allow you to write a floppy in _raw mode_.
     Unfortunately, how to accomplish this will vary based on your
     operating system. On Solaris, make sure `vold' isn't running. On other
     systems, ask your system administrator.

5.10.2. Floppy Disk Reliability 
--------------------------------

     The biggest problem for people installing Debian for the first time
     seems to be floppy-disk reliability.

     The Rescue Floppy is the floppy with the worst problems, because it is
     read by the hardware directly, before Linux boots. Often, the hardware
     doesn't read as reliably as the Linux floppy disk driver, and may just
     stop without printing an error message if it reads incorrect data.
     There can also be failures in the Drivers Floppy and the base
     floppies, most of which indicate themselves with a flood of messages
     about disk I/O errors.

     If you are having the installation stall at a particular floppy, the
     first thing you should do is re-download the floppy disk image and
     write it to a _different_ floppy. Simply reformatting the old floppy
     may not be sufficient, even if it appears that the floppy was
     reformatted and written with no errors. It is sometimes useful to try
     writing the floppy on a different system.

     One user reports he had to write the images to floppy _three_ times
     before one worked, and then everything was fine with the third floppy.

     Other users have reported that simply rebooting a few times with the
     same floppy in the floppy drive can lead to a successful boot. This is
     all due to buggy hardware or firmware floppy drivers.


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


6. Booting the Installation System 
-----------------------------------

     You have already chosen your boot system in the previous chapter. This
     could be booting off the Rescue Floppy, booting from CD-ROM, booting
     from the network, or booting from a pre-installed operating system.
     This chapter describes some of the ways booting can be controlled,
     common problems which occur during booting, and some ways to work
     around them, or at least to help us diagnose the problems.


6.1. Boot Parameter Arguments 
------------------------------

     Boot parameters are Linux kernel parameters which are generally used
     to make sure that peripherals are dealt with properly. For the most
     part, the kernel can auto-detect information about your peripherals.
     However, in some cases you'll have to help the kernel a bit.

     If you are booting from the Rescue Floppy or from CD-ROM you will be
     presented with the boot prompt, `boot:'. Details about how to use boot
     parameters with the Rescue Floppy can be found in section 6.2,
     `Booting with the Rescue Floppy'. If you are booting from an existing
     operating system, you'll have to use other means to set boot
     parameters. Full information on boot parameters can be found in Linux
     BootPrompt HOWTO
     (http://metalab.unc.edu/LDP/HOWTO/BootPrompt-HOWTO.html); this section
     contains only a sketch of the most salient parameters.

     If this is the first time you're booting the system, try the default
     boot parameter (i.e., don't try setting arguments) and see if it works
     correctly. It probably will. If not, you can reboot later and look for
     any special parameters that inform the system about your hardware.

     When the kernel boots, a message `Memory: <avail>k/<total>k available'
     should be emitted early in the process. <total> should match the total
     amount of RAM, in kilobytes, which is available. If this doesn't match
     the actual of RAM you have installed, you need to use the `mem=<ram>'
     parameter, where <ram> is set to the amount of memory, suffixed with
     ``k'' for kilobytes, or ``m'' for megabytes. For example, both
     `mem=8192k' or `mem=8m' means 8MB of RAM.

     Again, full details on boot parameters can be found in Linux
     BootPrompt HOWTO
     (http://metalab.unc.edu/LDP/HOWTO/BootPrompt-HOWTO.html), including
     tips for obscure hardware.


6.2. Booting with the Rescue Floppy 
------------------------------------

     Booting from the Rescue Floppy is easy: place the Rescue Floppy in the
     primary floppy drive, and reset the system by pressing _reset_, or by
     turning the system off and on. The floppy disk should be accessed, and
     you should then see a screen that introduces the Rescue Floppy and
     ends with the `boot:' prompt.

     If you are using an alternative way to boot the system, follow the
     instructions, and wait for the `boot:' prompt to come up. If you boot
     from floppies smaller than 1.44MB floppy drive, or, in fact, whenever
     you boot from floppy on your architecture, you have to use a ram-disk
     boot method, and you will need the Root Disk.

     You can do two things at the `boot:' prompt. You can press the
     function keys _F1_ through _F10_ to view a few pages of helpful
     information, or you can boot the system.

     Information on boot parameters which might be useful can be found by
     pressing _F4_ and _F5_. If you add any parameters to the boot command
     line, be sure to type the boot method (the default is `linux') and a
     space before the first parameter (i.e., `linux floppy=thinkpad'). If
     you simply press _Enter_, that's the same as typing `linux' without
     any special parameters.

     The disk is called the Rescue Floppy because you can use it to boot
     your system and perform repairs if there is ever a problem that makes
     your hard disk unbootable. Thus, you should save this floppy after
     you've installed your system. Pressing _F3_ will give further
     information on how to use the Rescue Floppy.

     Once you press _Enter_, you should see the message `Loading...', and
     then `Uncompressing Linux...', and then a screenful or so of
     information about the hardware in your system. More information on
     this phase of the boot process can be found below.

     If you choose a non-default boot method, e.g., ``ramdisk'' or
     ``floppy'', you will be prompted to insert the Root Floppy. Insert the
     Root Floppy into the first disk drive and press _Enter_. (If you
     choose floppy1 insert the Root Floppy into the second disk drive.)


6.3. Booting from CD-ROM 
-------------------------

     Booting from CD-ROM is simply a question of putting the CD-ROM in the
     drive and booting. The system should boot up, and you should be
     presented with the `boot:' prompt. Here you can enter your boot
     parameters, and you can select your kernel image.


6.4. Interpreting the Kernel Startup Messages 
----------------------------------------------

     During the boot sequence, you may see many messages in the form `can't
     find something', or `something not present', `can't initialize
     something', or even `this driver release depends on something'. Most
     of these messages are harmless. You see them because the kernel for
     the installation system is built to run on computers with many
     different peripheral devices. Obviously, no one computer will have
     every possible peripheral device, so the operating system may emit a
     few complaints while it looks for peripherals you don't own. You may
     also see the system pause for a while. This happens when it is waiting
     for a device to respond, and that device is not present on your
     system. If you find the time it takes to boot the system unacceptably
     long, you can create a custom kernel later (see section 8.4,
     `Compiling a New Kernel').


6.5. Troubleshooting the Boot Process 
--------------------------------------

     If you have problems and the kernel hangs during the boot process,
     doesn't recognize peripherals you actually have, or drives are not
     recognized properly, the first thing to check is the boot parameters,
     as discussed in section 6.1, `Boot Parameter Arguments'.

     Often, problems can be solved by removing add-ons and peripherals, and
     then trying booting again.

     If you still have problems, please submit a bug report. Send an email
     to <submit@bugs.debian.org>. You _must_ include the following as the
     first lines of the email: 
          Package: boot-floppies
          Version: <version>
     Make sure you fill in <version> with the version of the boot-floppies
     set that you used. If you don't know the _version_, use the date you
     downloaded the floppies, and include the distribution you got them
     from (i.e., ``stable'', ``frozen'').

     You should also include the following information in your bug report: 
          architecture:  sparc
          model:         <your general hardware vendor and model>
          memory:        <amount of RAM>
          scsi:          <SCSI host adapter, if any>
          cd-rom:        <CD-ROM model and interface type, i.e., ATAPI>
          network card:  <network interface card, if any>
          pcmcia:        <details of any PCMCIA devices>

     Depending on the nature of the bug, it also might be useful to report
     the disk model, disk capacity, and the model of video card.

     In the bug report, describes what the problem is, including the last
     visible kernel messages in the event of a kernel hang. Describe the
     steps that you did which brought the system into the problem state.


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


7. Using `dbootstrap' for Initial System Configuration
------------------------------------------------------


7.1. Introduction to `dbootstrap' 
----------------------------------

     `dbootstrap' is the name of the program which is run after you have
     booted into the installation system. It is responsible for initial
     system configuration and the installation of the ``base system''.

     The main job of `dbootstrap', and the main purpose of your initial
     system configuration, is to configure certain core elements of your
     system. For instance, this includes your network IP, host name, and
     other aspects of your networking setup, if any. This also includes the
     configuration of ``kernel modules'', which are drivers which are
     linked into the kernel. These modules include storage hardware
     drivers, network drivers, special language support, and support for
     other peripherals.

     Configuring these fundamentals is done first, because it is often
     necessary for the proper functioning of your system or for the next
     steps of installation.

     `dbootstrap' is a simple, character-based application (some systems do
     not have graphics capability). It is very easy to use; generally, it
     will guide you through each step of the installation process in a
     linear fashion. You can also go back and repeat steps if you found you
     made a mistake.

     Navigation within `dbootstrap' is accomplished with the arrow keys,
     _Enter_, and _Tab_.

     If you are an experienced Unix or Linux user, press _Left Alt-F2_ to
     get to the second _virtual console_. That's the _Alt_ key on the
     left-hand side of the space bar, and the _F2_ function key, at the
     same time. This is a separate window running a Bourne shell clone
     called `ash'. At this point you are booted from the RAM disk, and
     there is a limited set of Unix utilities available for your use. You
     can see what programs are available with the command `ls /bin /sbin
     /usr/bin /usr/sbin'. Use the menus to perform any task that they are
     able to do -- the shell and commands are only there in case something
     goes wrong. In particular, you should always use the menus, not the
     shell, to activate your swap partition, because the menu software
     can't detect that you've done this from the shell. Press _Left Alt-F1_
     to get back to menus. Linux provides up to 64 virtual consoles,
     although the Rescue Floppy only uses a few of them.

     Error messages are usually redirected the third virtual terminal
     (known as `tty3'). You can access this terminal by pressing _Alt-F3_
     (hold the _Alt_ key while pressing the _F3_ function key); get back to
     `dbootstrap' with _Alt-F1_.


7.2. ``Select Color or Monochrome display'' 
--------------------------------------------

     Once the system has finished booting, you should see the ``Select
     Color or Monochrome display'' dialog box. That is, unless you are
     booting from a serial console. In that case, this dialog will be
     skipped; continue below at section 7.3, ```Debian GNU/Linux
     Installation Main Menu'''.

     If your monitor is only capable of displaying black-and-white, press
     _Enter_ to continue with the installation. Otherwise, use the arrow
     keys to move the cursor to the _Color_ menu item and then press
     _Enter_. The display should change from black-and-white to color. Then
     press _Enter_ again to continue with the installation.


7.3. ``Debian GNU/Linux Installation Main Menu'' 
-------------------------------------------------

     You may see a dialog box that says ``The installation program is
     determining the current state of your system and the next installation
     step that should be performed.''. On some systems, this will go by too
     quickly to read. You'll see this dialog box between steps in the main
     menu. The installation program, `dbootstrap', will check the state of
     the system in between each step. This checking allows you to re-start
     the installation without losing the work you have already done, in
     case you happen to halt your system in the middle of the installation
     process. If you have to restart an installation, you will have to
     configure color-or-monochrome, configure your keyboard, re-activate
     your swap partition, and re-mount any disks that have been
     initialized. Anything else that you have done with the installation
     system will be saved.

     During the entire installation process, you will be presented with the
     main menu, entitled ``Debian GNU/Linux Installation Main Menu''. The
     choices at the top of the menu will change to indicate your progress
     in installing the system. Phil Hughes wrote in the Linux Journal
     (http://www.linuxjournal.com/) that you could teach a _chicken_ to
     install Debian! He meant that the installation process was mostly just
     _pecking_ at the _Enter_ key. The first choice on the installation
     menu is the next action that you should perform according to what the
     system detects you have already done. It should say ``Next'', and at
     this point the next step in installing the system will be taken.


7.4. ``Configure the Keyboard'' 
--------------------------------

     Make sure the highlight is on the ``Next'' item, and press _Enter_ to
     go to the keyboard configuration menu. Select a keyboard that conforms
     to the layout used for your national language, or select something
     close if the keyboard layout you want isn't represented. Once the
     system installation is complete, you'll be able to select a keyboard
     layout from a wider range of choices (run `kbdconfig' as root when you
     have completed the installation).

     Move the highlight to the keyboard selection you desire and press
     _Enter_. Use the arrow keys to move the highlight -- they are in the
     same place in all national language keyboard layouts, so they are
     independent of the keyboard configuration.

     Due to a bug in `dbootstrap', if you are running from a serial
     console, you will see a message such as ``Cannot open /dev/tty0'' when
     the system tries to load the keymap. Just ignore this problem and
     continue. If you are installing a diskless workstation, the next few
     steps will be skipped, since there are no local disks to partition. In
     that case, your next step will be section 7.12, ```Configure the
     Network''', and after that, you will be prompted to mount your NFS
     root partition in section 7.9, ```Mount a Previously-Initialized
     Partition'''.


7.5. Last Chance! 
------------------

     Did we tell you to back up your disks? Here's your first chance to
     wipe out all of the data on your disks, and your last chance to save
     your old system. If you haven't backed up all of your disks, remove
     the floppy from the drive, reset the system, and run backups.


7.6. ``Partition a Hard Disk'' 
-------------------------------

     If you have not already partitioned your disks for Linux native and
     Linux swap filesystems, i.e., as described in section 4.5,
     `Partitioning Prior to Installation', the menu item ``Next'' will be
     ``Partition a Hard Disk''. If you have already created at least one
     Linux native and one Linux swap disk partition, the ``Next'' menu
     selection will be ``Initialize and Activate a Swap Partition'', or you
     may even skip that step if your system had low memory and you were
     asked to activate the swap partition as soon as the system started.
     Whatever the ``Next'' menu selection is, you can use the down-arrow
     key to select ``Partition a Hard Disk''.

     The ``Partition a Hard Disk'' menu item presents you with a list of
     disk drives you can partition, and runs a partitioning application.
     You must create at least one ``Linux native'' (type 83) disk
     partition, and you probably want at least one ``Linux swap`` (type 82)
     partition, as explained in chapter 4, `Partitioning your Hard Drive'.
     If you are unsure how to partition your system, go back and read that
     chapter.
     Depending on your architecture, there are different programs which can
     be used. These are the program or programs available on your
     architecture: 

     `fdisk'
          The original Linux disk partitioner; read the fdisk manual page
          (fdisk.txt)

     If your unsure how to decide which partitions to make, and how large
     to make them, re-read chapter 4, `Partitioning your Hard Drive'.

     A swap partition is strongly recommended, but you can do without one
     if you insist, and if your system has more than 16 megabytes of RAM.
     If you wish to do this, please select the ``Do Without a Swap
     Partition'' item from the menu.


7.7. ``Initialize and Activate a Swap Partition'' 
--------------------------------------------------

     This will be the ``Next'' menu item once you have created one disk
     partition. You have the choice of initializing and activating a new
     swap partition, activating a previously-initialized one, and doing
     without a swap partition. It's always permissible to re-initialize a
     swap partition, so select ``Initialize and Activate a Swap Partition''
     unless you are sure you know what you are doing.

     This menu choice will first present you with a dialog box reading
     ``Please select the partition to activate as a swap device.''. The
     default device presented should be the swap partition you've already
     set up; if so, just press _Return_.

     Next you have the option to scan the entire partition for unreadable
     disk blocks caused by defects on the surface of the hard disk
     platters. This is useful if you have or older SCSI disks, and never
     hurts (although it can be time-consuming). Properly-working disks in
     most modern systems don't need this choice, as they have their own
     internal mechanism for mapping out bad disk blocks.

     Finally, there is a confirmation message, since initialization
     destroys any data previously on the partition. If all is well, select
     ``Yes''. The screen will flash as the initialization program runs.


7.8. ``Initialize a Linux Partition'' 
--------------------------------------

     At this point, the next menu item presented should be ``Initialize a
     Linux Partition''. If it isn't, it is because you haven't completed
     the disk partitioning process, or you haven't made one of the menu
     choices dealing with your swap partition.

     You can initialize a Linux partition, or alternately you can mount a
     previously-initialized one. Note that `dbootstrap' will _not_ upgrade
     an old system without destroying it. If you're upgrading, Debian can
     usually upgrade itself, and you won't need to use `dbootstrap'. For
     upgrading instructions for Debian 2.1, see the upgrade instructions
     (http://www.debian.org/releases/2.1/sparc/upgrading).

     Thus, if you are using old disk partitions that are not empty, i.e.,
     if you want to just throw away what is on them, you should initialize
     them (which erases all files). Moreover, you must initialize any
     partitions that you created in the disk partitioning step. About the
     only reason to mount a partition without initializing it at this point
     would be to mount a partition upon which you have already performed
     some part of the installation process using this same set of
     installation floppies.

     Select the ``Next'' menu item to initialize and mount the `/' disk
     partition. The first partition that you mount or initialize will be
     the one mounted as `/' (pronounced ``root''). You will be offered the
     choice to scan the disk partition for bad blocks, as you were when you
     initialized the swap partition. It never hurts to scan for bad blocks,
     but it could take 10 minutes or more to do so if you have a large
     disk.

     Once you've mounted the `/' partition, the ``Next'' menu item will be
     ``Install Operating System Kernel and Modules'' unless you've already
     performed some of the installation steps. You can use the arrow keys
     to select the menu items to initialize and/or mount disk partitions if
     you have any more partitions to set up. If you have created separate
     partitions for `/var', `/usr', or other filesystems, you should
     initialize and/or mount them now.


7.9. ``Mount a Previously-Initialized Partition'' 
--------------------------------------------------

     An alternative to section 7.8, ```Initialize a Linux Partition''' is
     the ``Mount a Previously-Initialized Partition'' step. Use this if you
     are resuming an installation that was broken off, or if you want to
     mount partitions that have already been initialized.

     If you are installing a diskless workstation, at this point, you want
     to NFS mount your root partition from the remote NFS server. Specify
     the path to the NFS server in standard NFS syntax, namely,
     `<server-name-or-IP>:<server-share-path>'. If you need to mount
     additional filesystems as well, you can do that at this time.


7.10. ``Install Operating System Kernel and Modules'' 
------------------------------------------------------

     This should be the next menu step after you've mounted your root
     partition, unless you've already performed this step in a previous run
     of `dbootstrap'. First, you will be asked to confirm that the device
     you have mounted on root is the proper one. Next, you will be offered
     a menu of devices from which you can install the kernel. Choose the
     appropriate device from which to install the kernel and modules (as
     you planned in subsection 5.2.1, `Choosing Initial Boot Media').

     If you are installing from a local filesystem, select the ``harddisk''
     device if the device is not yet mounted, or the ``mounted'' device if
     it is. Next, select the partition where the Debian installation
     software was installed back in section 5.4, `Installing from a Hard
     Disk'. Next you'll be asked to specify the location on the filesystem
     where you put files; make sure you put a leading ``/'' on the
     location. After that, you should probably let `dbootstrap' try to find
     the actual files on its own; but it will let you pick if you need to.

     If your installing from floppies, you'll need to feed in the Rescue
     Floppy (which is probably already in the drive), followed by the
     Drivers Floppy.

     If you are installing a diskless workstation, you should have already
     configured your networking as described in section 7.12, ```Configure
     the Network'''. You should be given the option to install the kernel
     and modules from NFS. Select the ``nfs'' option, tell `dbootstrap'
     your NFS server name and path. Assuming you've put the Rescue Floppy
     and Drivers Floppy images on the NFS server in the proper location,
     these file should be available to you for installing the kernel and
     modules.

     Other steps may need to be taken for other installation media.


7.11. ``Configure Device Driver Modules'' 
------------------------------------------

     Select the ``Configure Device Driver Modules'' menu item and look for
     devices that are on your system. Configure those device drivers, and
     they will be loaded whenever your system boots.

     You don't have to configure all your devices at this point; what is
     crucial is that any device configuration required for the installation
     of the base system is done here (see subsection 5.2.2, `Choosing Media
     for Installing Base'). This might include ethernet drivers or
     filesystem modules.

     If you want to install the base system via NFS you must load and
     configure the driver module for your network card, and the NFS module
     itself, available under ``filesystems''. If you are installing from a
     local disk, make sure that you look for the filesystem type in the
     modules list; support for that filesystem type _may_ already be
     compiled in the kernel, but it's best to check.

     At any point after the system is installed, you can reconfigure your
     modules with the `modconf' program.


7.12. ``Configure the Network'' 
--------------------------------

     You'll have to configure the network even if you don't have a network,
     but you'll only have to answer the first two questions -- ``Choose the
     Host name'', and ``is your system connected to a network?''.

     If you are connected to a network, you'll need the information you
     collected from section 3.2, `Information You Will Need'. However, if
     your primary connection to the network will be PPP, you should choose
     _NOT_ to configure the network.

     `dbootstrap' will ask you a number of questions about your network;
     fill in the answers from section 3.2, `Information You Will Need'. The
     system will also summarize your network information and ask you for
     confirmation. Next, you need to specify the network device that your
     primary network connection uses. Usually, this will be ``eth0'' (the
     first ethernet device).

     Some technical details you might, or might not, find handy: the
     program assumes the network IP address is the bitwise-AND of your
     system's IP address and your netmask. It will guess the broadcast
     address is the bitwise OR of your system's IP address with the bitwise
     negation of the netmask. It will guess that your gateway system is
     also your DNS server. If you can't find any of these answers, use the
     system's guesses -- you can change them once the system has been
     installed, if necessary, by editing `/etc/init.d/network'. (On a
     Debian system, daemons are started by scripts in `/etc/init.d/'.)


7.13. ``Install the Base System'' 
----------------------------------

     During the ``Install the Base System'' step, you'll be offered a menu
     of devices from which may install the base system. You should select
     the appropriate device, depending on the choice you made in subsection
     5.2.2, `Choosing Media for Installing Base'.

     If you choose to install from a filesystem on the harddisk or from
     CD-ROM, you will be prompted to specify the path to the `base2_1.tgz'.
     As with the ``Install Operating System Kernel and Modules'' step, you
     can either let ``dbootstrap'' find the file on itself or type in the
     path at the prompt.

     If you choose to install from floppy disk, feed in the base floppies
     in order, as requested by `dbootstrap'. If one of the base floppies is
     unreadable, you'll have to create a replacement floppy and feed all
     floppies into the system again. Once the floppies have all been read,
     the system will install the files it had read from the floppies. This
     could take 10 minutes or more on slow systems, less on faster ones.

     If you are installing the base system from NFS, then choose NFS and
     continue. You'll be prompted to specify the server, the share on the
     server, and the subdirectory within that share where the `base2_1.tgz'
     file can be found. If you have problems mounting NFS, make sure that
     the system time on the NFS server more or less agrees with the system
     time on the client. You can set your date on `tty2' using the `date'
     command; you'll have to set it by hand. See the date(1) manual page.


7.14. ``Configure the Base System'' 
------------------------------------

     At this point you've read in all of the files that make up a minimal
     Debian system, but you must perform some configuration before the
     system will run.

     You'll be asked to select your time zone. There are many ways to
     specify your time zone; we suggest you go to the ``Directories:'' pane
     and select your country (or continent). That will change the available
     time zones, so go ahead and select your geographic locality (i.e.,
     country, province, or state) in the ``Timezones:'' pane.

     Next, you'll be asked if your system clock is to be set to GMT or
     local time. Select GMT (i.e., ``Yes'') if you will only be running
     Unix on your computer; select local time (i.e., ``No'') if you will be
     running another operating system as well as Debian. Unix (and Linux is
     no exception) generally keeps GMT time on the system clock and
     converts visible time to the local time zone. This allows the system
     to keep track of daylight savings time and leap years, and even allows
     users who are logged in from other time zones to individually set the
     time zone used on their terminal.


7.15. ``Make Linux Bootable Directly From Hard Disk'' 
------------------------------------------------------

     If you elect to make the hard disk boot directly to Linux, you will be
     asked to install a master boot record. If you aren't using a boot
     manager (and this is probably the case if you don't know what a boot
     manager is) and you don't have another different operating system on
     the same machine, answer ``Yes'' to this question. If you answer
     ``Yes'', the next question will be whether you want to boot Linux
     automatically from the hard disk when you turn on your system. This
     sets Linux to be the _bootable partition_ -- the one that will be
     loaded from the hard disk.

     _FIXME: about the boot manager, silo_ If you are installing a diskless
     workstation, obviously, booting off the local disk isn't a meaningful
     option. However, you should be able to set your workstation to boot
     from the network automatically. Make sure your TFTP server is
     configured properly as explained in section 5.6, `Booting from TFTP'.
     You can also set the OpenBoot to boot from the network by default; see
     subsection 3.4.2, `Boot Device Selection'.


7.16. The Moment of Truth 
--------------------------

     You system's first boot on its own power is what electrical engineers
     call the ``smoke test''. If you have any floppies in you floppy drive,
     remove them. Select the ``Reboot the System'' menu item.

     If are booting directly into Debian, and the system doesn't start up,
     either use your original installation boot media (for instance, the
     Rescue Floppy), or insert the Custom Boot floppy if you created one,
     and reset your system. If you are _not_ using the Custom Boot floppy,
     you will probably need to add some boot arguments. If booting with the
     Rescue Floppy or similar technique, you need to specific `rescue
     root=<root>', where <root> is your root partition, such as
     ``/dev/sda1''.

     Debian should boot, and you should see the same messages as when you
     first booted the installation system, followed by some new messages.


7.17. Set the Root Password 
----------------------------

     The _root_ account is also called the _super-user_; it is a login that
     bypasses all security protection on your system. The root account
     should only be used to perform system administration, and only used
     for as short a time as possible.

     Any password you create should contain from 6 to 8 characters, and
     should contain both upper- and lower-case characters, as well as
     punctuation characters. Take extra care when setting your root
     password, since it is such a powerful account. Avoid dictionary words
     or use of any personal information which could be guessed.

     If anyone ever tells you they need your root password, be extremely
     wary. You should normally never give your root account out, unless you
     are administering a machine with more than one system administrator.


7.18. Create an Ordinary User 
------------------------------

     The system will ask you to create an ordinary user account. This
     account should be your main personal log-in. You should _not_ use the
     root account for daily use or as your personal login.

     Why not? Well, one reason to avoid using root's privileges is that it
     is very easy to do irreparable damage as root. Another reason is that
     you might be tricked into running a _Trojan-horse_ program -- that is
     a program that takes advantage of your super-user powers to compromise
     the security of your system behind your back. Any good book on Unix
     system administration will cover this topic in more detail -- consider
     reading one if it is new to you.

     Name the user account anything you like. If your name is John Smith,
     you might use ``smith'', ``john'', ``jsmith'' or ``js''.


7.19. Shadow Password Support 
------------------------------

     Next, the system will ask whether you want to enable shadow passwords.
     This is a system in which your Linux system is made to be a bit more
     secure. In a system without shadow passwords, passwords are stored
     (encrypted) in a world-readable file, `/etc/password'. This file has
     to be readable to anyone who can log in because it contains vital user
     information, for instance, how to map between numeric user identifiers
     and login names. Therefore, someone could conceivably grab your
     `/etc/password' file and run a brute force attack against it to try to
     determine passwords.

     If you have shadow passwords enabled, passwords are instead stored in
     `/etc/shadow', which is _not_ readable only to root. Therefore, we
     recommend that you enable shadow passwords.

     Reconfiguration of the shadow password system can be done at any time
     with the `shadowconfig' program. See
     `/usr/doc/passwd/README.debian.gz' after installation for more
     information.


7.20. Select and Install Profiles 
----------------------------------

     The system will now ask you if you want to use the pre-rolled software
     configurations offered by Debian. You can always choose, package by
     package, what do you want to install on your new machine. This is the
     purpose of the `dselect' program, described below. But this can be a
     long task with around 2000 packages available in Debian!

     So, you have the ability to choose _tasks_ or _profiles_ instead. A
     _task_ is a work you will do with the machine such as ``Perl
     programming'' or ``HTML authoring'' or ``Chinese word processing''.
     You can choose several tasks. A _profile_ is a category your machine
     will be a member of such as "Network server" or ``Personal
     workstation''. Unlike the tasks, you can choose only one profile.

     To summary, if you are in a hurry, choose one profile. If you have
     more time, choose the Custom profile and select a set of tasks. If you
     have plenty of time and want very precise control on what is or is not
     installed, skip this step and use the full power of `dselect'.

     Soon, you will enter into `dselect'. If you selected tasks or
     profiles, remember to skip the ``Select'' step of `dselect', since the
     selections have already been made.

     A word of warning about the size of the tasks as they are displayed:
     the size shown for each task is the sum of the sizes of its packages.
     If you choose two tasks that share some packages, the actual disk
     requirement will be less than the sum of the sizes for the two tasks.

     Once you've added both logins (root and personal), you'll be dropped
     into the `dselect' program. The dselect Tutorial
     (dselect-beginner.html) is required reading before you run `dselect'.
     `dselect' allows you to select _packages_ to be installed on your
     system. If you have a CD-ROM or hard disk containing the additional
     Debian packages that you want to install on your system, or you are
     connected to the Internet, this will be useful to you right away.
     Otherwise, you may want to quit `dselect' and start it later, once you
     have transported the Debian package files to your system. You must be
     the super-user (root) when you run `dselect'.


7.21. Log In 
-------------

     After you've quit `dselect', you'll be presented with the login
     prompt. Log in using the personal login and password you selected.
     Your system is now ready to use.


7.22. Setting up PPP 
---------------------

     NOTE: In case you are installing from CD-ROM and/or are connected
     directly to the network, you can safely skip this section. The
     installation system will only prompt you for this information if the
     network hasn't been configured yet.

     The base system includes a full `ppp' package. This package allows you
     to connect to your ISP using PPP. Below are some basic instructions
     for setting up your ppp connection. The boot disks contain a program
     called `pppconfig' which will help you set up PPP. _Make sure, when it
     asks you for the name of your dialup connection, that you name it
     ``provider''._

     Hopefully, the `pppconfig' program will walk you through a pain-free
     PPP connection setup. However, if it does not work for you, see below
     for detailed instructions.

     In order to setup PPP, you'll need to know the basics of file viewing
     and editing in Linux. To view files, you should use `more', and
     `zmore' for compressed files with a `.gz' extension. For example, to
     view `README.debian.gz', type `zmore README.debian.gz'. The only
     editor that comes with the base system is `ae', which also poses as
     `vi'. It is very simple to use, but does not have a lot of features.
     You will probably want to install more full-featured editors and
     viewers later, such as `nvi', `less', and `emacs'.

     Edit `/etc/ppp/peers/provider' and replace ``/dev/modem'' with
     ``/dev/ttyS<#>'' where <#> stands for the number of your serial port.
     In Linux, serial ports are counted from 0; your first serial port is
     `/dev/ttyS0' under Linux. The next step is to edit
     `/etc/chatscripts/provider' and insert your provider's phone number,
     your user-name and password. Please do not delete the ``\q'' that
     precedes the password. It hides the password from appearing in your
     log files.

     Many providers use PAP or CHAP for login sequence instead of text mode
     authentication. Others use both. If your provider requires PAP or
     CHAP, you'll need to follow a different procedure. Comment out
     everything below the dialing string (the one that starts with
     ``ATDT'') in `/etc/chatscripts/provider', modify
     `/etc/ppp/peers/provider' as described above, and add `user <name>'
     where <name> stands for your user-name for the provider you are trying
     to connect to. Next, edit `/etc/pap-secrets' or `/etc/chap-secrets'
     and enter your password there.

     You will also need to edit `/etc/resolv.conf' and add your provider's
     name server (DNS) IP addresses. The lines in `/etc/resolv.conf' are in
     the following format: `nameserver <xxx.xxx.xxx.xxx>' where the <x>s
     stand for numbers in your IP address.

     Unless your provider has a login sequence different than the majority
     of ISPs, you are done! Start the PPP connection by typing `pon' as
     root, and monitor the process using `plog' command. To disconnect, use
     `poff', again, as root.


7.23. Installing the Rest of Your System 
-----------------------------------------

     Information about the installation of the rest of your Debian system
     is examined in separate document, the dselect Tutorial
     (dselect-beginner.html). Remember to skip the ``Select'' step in
     `dselect' if you are using the profiles and tasks from section 7.20,
     `Select and Install Profiles'.


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


8. Next Steps and Where to Go From Here 
----------------------------------------


8.1. If You Are New to Unix 
----------------------------

     If you are new to Unix, you probably should go out and buy some books
     and do some reading. The Unix FAQ
     (ftp://rtfm.mit.edu/pub/usenet/news.answers/unix-faq/faq/) contains a
     number of references to books and Usenet news groups which should help
     you out. You can also take a look at the User-Friendly Unix FAQ
     (http://www.camelcity.com/~noel/usenet/cuuf-FAQ.htm).

     Linux is an implementation of Unix. The Linux Documentation Project
     (LDP) (http://metalab.unc.edu/mdw/ldp.html) collects a number of
     HOWTOs and online books relating to Linux. Most of these documents can
     be installed locally; just install the `doc-linux-html' package (HTML
     versions) or the `doc-linux-text' package (ASCII versions), then look
     in `/usr/doc/HOWTO'. International versions of the LDP HOWTOs are also
     available as Debian packages.

     information specific to Debian can be foud below.


8.2. Orienting Yourself to Debian 
----------------------------------

     Debian is a little different from other distributions. Even if you're
     familiar with Linux in other distributions, there are things you
     should know about Debian to help you to keep your system in a good,
     clean state. This chapter contains material to help you get oriented;
     it is not intending to be a tutorial for how to use Debian, but just a
     very brief glimpse of the system for the very rushed.
     The most important concept to grasp is the Debian packaging system. In
     essence, large parts of your system should be considered under the
     control of the packaging system. These include: 

        * `/usr' (excluding `/usr/local')

        * `/var' (you could make `/var/local' and be safe in there)

        * `/bin'

        * `/sbin'

        * `/lib'

     For instance, if you replace `/usr/bin/perl', that will work, but then
     if you upgrade your `perl' package, the file you put there will be
     replaced. Experts can get around this by putting packages on ``hold''
     in `dselect'.


8.3. Further Reading and Information 
-------------------------------------

     If you need information about a particular program, you should first
     try `man <program>', or `info <program>'.

     There is lots of useful documentation in `/usr/doc' as well. In
     particular, `/usr/doc/HOWTO' and `/usr/doc/FAQ' contains lots of
     interesting information.

     The Debian web site (www.debian.org) contains a large quantity of
     documentation about Debian. In particular, see the Debian FAQ
     (http://www.debian.org/doc/FAQ/) and the Debian Mailing List Archives
     (http://www.debian.org/Lists-Archives/). The Debian community is
     self-supporting; to subscribe to one or more of the Debian mailing
     lists, see the Mail List Subscription
     (http://www.debian.org/MailingLists/subscribe) page.


8.4. Compiling a New Kernel 
----------------------------
     Why would someone wants to compile a new kernel? It is often not
     necessary since the default kernel shipped with Debian handles most
     configurations. However, it is useful to compile a new kernel in order
     to: 

        * handle hardware or options not included in the stock kernel, such
          as APM or SMP

        * optimize the kernel by removing useless drivers, which speeds up
          boot time and makes the kernel size smaller (kernel memory cannot
          be swapped to disk)

        * use options of the kernel which are not supported by the default
          kernel (such as network firewalling)

        * run a development kernel

        * impress your friends, try new things

     Don't be afraid to try compiling the kernel. It's fun and profitable.

     To compile a kernel the Debian way, you need some packages:
     `kernel-package', `kernel-source-2.0.35' (the most recent version at
     the time of this writing), `fakeroot' and a few others which are
     probably already installed (see `/usr/doc/kernel-package/README.gz'
     for the complete list). Note that you don't _have_ to compile your
     kernel the ``Debian way''; but we find that using the packaging system
     to manage your kernel is actually safer and easier. In fact, you can
     get your kernel sources right from Linus instead of
     `kernel-source-2.0.35', yet still use the `kernel-package' compilation
     method.

     Note that you'll find complete documentation on using `kernel-package'
     under `/usr/doc/kernel-package'. This section just contains a brief
     tutorial.

     Hereafter, we'll assume your kernel source will be located in
     `/usr/local/src' and that your kernel version is 2.0.35. As root,
     create a directory under `/usr/local/src' and change the owner of that
     file to your normal non-root account. As your normal non-root account,
     change your directory to where you want to unpack the kernel sources
     (`cd /usr/local/src'), extract the kernel sources (`tar xzf
     /usr/src/kernel-source-2.0.35.tar.gz'), change your directory to it
     (`cd kernel-source-2.0.35/'). Now, you can configure your kernel
     (`make xconfig' if X11 is installed and configured, `make menuconfig'
     otherwise). Take the time to read the online help and choose
     carefully. When in doubt, it is typically better to include the device
     driver (the software which manages hardware peripherals, such as
     ethernet cards, SCSI controllers, and so on) you are unsure about. Be
     careful: other options, not related to a specific hardware, should be
     left at the default value if you do not understand them. Do not forget
     to select "Kernel daemon support (e.g. autoload of modules)" in
     "Loadable module support" (it is not selected by default) or your
     Debian installation will experience problems.[1]

     Clean the source tree and reset the `kernel-package' parameters. To do
     that, do `/usr/sbin/make-kpkg clean'.

     Now, compile the kernel: `fakeroot /usr/sbin/make-kpkg
     --revision=custom.1.0 kernel_image'. Of course, the version number of
     ``1.0'' can be changed at will; this is just a version number that you
     will use to track your kernel builds. Kernel compilation may take
     quite a while, depending on the power of your machine.

     Once the compilation is complete, you can install your custom kernel
     like any package. As root, do `dpkg -i
     ../kernel-image-2.0.35-<subarch>_config.1.0_sparc.deb'. The <subarch>
     part is an optional sub-architecture, depending on what kernel options
     you set. `dpkg -i kernel-image...' will install the kernel, along with
     some other nice supporting files. For instance, the `System.map' will
     be properly installed (helpful for debugging kernel problems), and
     `/boot/config-2.0.35' will be installed, containing your current
     configuration set. Your new `kernel-image-2.0.35' package is also
     clever enough to automatically use `lilo' to update the kernel image
     information allowing you to boot, so there's no need to re-run `lilo'.
     If you have created a modules package, you'll need to install that
     package as well.

     It is time to reboot the system: read carefully any warning that the
     above step may have produced, then `shutdown -r now'.

     For more information on `kernel-package', read
     `/usr/doc/kernel-package'.


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


9. Technical Information on the Boot Floppies 
----------------------------------------------


9.1. Source Code 
-----------------

     The `boot-floppies' package contains all of the source code and
     documentation for the installation floppies.


9.2. Rescue Floppy 
-------------------

     The Rescue Floppy has an MS-DOS filesystem, and you should be able to
     access it from anything else that can mount DOS disks. The Linux
     kernel is in the file `linux'. The file `root.bin' is a
     gzip-compressed disk image of a 1.44 MB Minix filesystem, and will be
     loaded into the RAM disk and used as the root filesystem.


9.3. Replacing the Rescue Floppy Kernel 
----------------------------------------
     If you find it necessary to replace the kernel on the Rescue Floppy,
     you must configure your new kernel with these features linked in, not
     in loadable modules: 

        * Initial RAM disk

        * DOS, Minix, and EXT2 filesystems

        * ELF executables

     Copy your new kernel to the file `linux' on the Rescue Floppy, and
     then run the shell script `rdev.sh' that you'll find on the floppy.


9.4. The Base Floppies 
-----------------------

     The base floppies contain a 512-byte header followed by a portion of a
     gzip-compressed `tar' archive. If you strip off the headers and then
     concatenate the contents of the base floppies, the result should be
     the compressed tar archive. The archive contains the base system that
     will be installed on your hard disk. Once this archive is installed,
     you must go through the ``Configure the Base System'' menu item in the
     installation system and other menu items to configure the network and
     install the operating system kernel and modules before the system will
     be usable.


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


10. Administrivia 
------------------


10.1. About This Document 
--------------------------

     This document is written in SGML, using the ``DebianDoc'' DTD. Output
     formats are generated by the programs `debiandoc-sgml' package.

     In order to increase the maintainability of this document, we use a
     number of SGML features, such as entities and marked sections. These
     play a role akin to variables and conditionals in programming
     languages. The SGML source to this document contains information for
     each different architecture -- marked sections are use to isolate
     certain bits of text as architecture-specific.


10.2. Contributing to This Document 
------------------------------------

     If you have problems or suggestions regarding this document, you
     should probably submit them as a bug report against the package
     `boot-floppies'. See the `bug' package or read the online
     documentation of the Debian Bug Tracking System
     (http://www.debian.org/Bugs/). It would be nice if you could check the
     open bugs against boot-floppies
     (http://www.debian.org/Bugs/db/pa/lboot-floppies.html) to see whether
     your problem has already been reported. If so, you can supply addition
     corroboration or helpful information to <XXXX@bugs.debian.org>, where
     <XXXX> is the number for the already-reported bug.

     Better yet, get a copy of the SGML source for this document, and
     produce patches against it. The SGML source can be found in the
     `boot-floppies'; try to find the newest revision in the ``unstable''
     distribution. CVS source access is also coming soon.

     Please do _not_ contact the authors of this document directly. There
     is also a discussion list for `boot-floppies', which includes
     discussions of this manual. The mailing list is
     <debian-boot@lists.debian.org>. Instructions for subscribing to this
     list can be found at Debian Mailing List Subscription
     (http://www.debian.org/MailingLists/subscribe); an online browsable
     copy can be found at the Debian Mailing List Archives
     (http://www.debian.org/Lists-Archives/).


10.3. Major Contributions 
--------------------------

     Many, many Debian users and developers contributed to this document.
     Particular note must be made for Michael Schmitz (m68k support), Frank
     Neumann (original author of the Debian Installation Instructions for
     Amiga
     (http://www.informatik.uni-oldenburg.de/~amigo/debian_inst.html)),
     Arto Astala, Eric Delaunay (SPARC information), Tapio Lehtonen, and
     Stéphane Bortzmeyer for numerous edits and text.

     Extremely helpful text and information was found in Jim Mintha's HOWTO
     for network booting
     (http://www.geog.ubc.ca/s_linux/howto/netboot.html), the Debian FAQ
     (http://www.debian.org/doc/FAQ/), the Linux/m68k FAQ
     (http://www.linux-m68k.org/faq/faq.html), the Linux for SPARC
     Processors FAQ (http://www.geog.ubc.ca/s_linux/faq.html), the
     Linux/Alpha FAQ (http://www.alphalinux.org/faq/FAQ.html), amongst
     others. The maintainers of these freely available and rich sources of
     information must be recognized.


10.4. Trademark Acknowledgement 
--------------------------------

     All trademarks are property of their respective trademark owners.


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


     Installing Debian GNU/Linux 2.1 For SPARC

     Bruce Perens
     Sven Rudolph
     Igor Grobman
     James Treacy
     Adam Di Carlo

     version 2.1.8.1, 25 February, 1999