Set up boot floppies or place boot files (except most Debian CD users can boot
from one of the CDs)

Boot the installation system

Configure the keyboard

Create and mount Debian partitions

Point the installer to the location of the kernel and drivers

Select which peripheral drivers to load

Configure the network interface

Initiate automatic download/install/setup of the base system

Configure Linux or multi-system boot loading

Boot the newly installed system and do some final configuration

Install additional tasks and packages, at your discretion

3.2 Back Up Your Existing Data!

Before you start, make sure to back up every file that is now on your system.
If this is the first time a non-native operating system has been installed on
your computer, it's quite likely you will need to re-partition your disk to
make room for Debian GNU/Linux. Anytime you partition your disk, you should
count on losing everything on the disk, no matter what program you use to do
it. The programs used in installation are quite reliable and most have seen
years of use; but they are also quite powerful and 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.

If you are creating a multi-boot system, make sure that you have the
distribution media of any other present operating systems on hand. Especially
if you repartition your boot drive, you might find that you have to reinstall
your operating system's boot loader, or in many cases the whole operating
system itself and all files on the affected partitions.

3.3.3 Hardware Compatibility

Many brand name products work without trouble on Linux. Moreover, hardware for
Linux is improving daily. However, Linux still does not run as many different
types of hardware as some operating systems.

You can check hardware compatibility by:

Checking manufacturers' web sites for new drivers.

Looking at web sites or manuals for information about emulation. Lesser known
brands can sometimes use the drivers or settings for better-known ones.

3.3.4 Network Settings

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. On the other hand, if
your administrator tells you that a DHCP server is available and is
recommended, then you don't need this information because the DHCP server will
provide it directly to your computer during the installation process.

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 will not be able to install the base
system over the network. To install the system in this case, you must use a
CD, pre-load the base packages on an existing hard disk partition, or prepare
floppy disks containing the base packages. See Setting Up PPP, Section 8.9 below for
information on setting up PPP under Debian once the system is installed.

3.4 Planning Use of the System

It is important to decide what type of machine you are creating. This will
determine the disk space requirements for your Debian system.

3.5 Meeting Minimum Hardware Requirements

Once you have gathered information about your computer's hardware, check that
your hardware will let you do the type of installation that you want to do.

Depending on your needs, you might manage with less than some of the
recommended hardware listed in the table below. However, most users risk being
frustrated if they ignore these suggestions.

This is a small server profile, useful for a stripped down server which does
not have a lot of niceties for shell users. It includes an FTP server, a web
server, DNS, NIS, and POP. For these 50MB of disk space would suffice, and
then you would need to add space for any data you serve up.

Dialup

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

Work Console

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.

Developer

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. Notably,
the Debian /var partition contains a lot of state information.
The dpkg files (with information on all installed packages) can
easily consume 20MB; with logs and the rest, you should usually allocate at
least 50MB for /var.

3.6 Pre-Partitioning for Multi-Boot Systems

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 and want to stick Linux
on the same disk, you will need to repartition the disk. Debian requires its
own hard disk partitions. It cannot be installed on Windows or MacOS
partitions. It may be able to share some partitions with other Linux systems,
but that's not covered here. At the very least you will need a dedicated
partition for the Debian root.

You can find information about your current partition setup by using a
partitioning tool for your current operating system . Partitioning tools
always provide a way to show existing partitions without making changes.

In general, changing a partition with a file system 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.

If your computer has more than one hard disk, you may want to dedicate one of
the hard disks completely to Debian. If so, you don't need to partition that
disk before booting the installation system; the installer's included
partitioning program can handle the job nicely.

If your machine has only one hard disk, and you would like to completely
replace the current operating system with Debian GNU/Linux, you also can wait
to partition as part of the installation process (Partitioning for Debian, Chapter 6), after
you have booted the installation system. However this only works if you plan
to boot the installer system from floppies, CD-ROM or files on a connected
machine. Consider: if you boot from files placed on the hard disk, and then
partition that same hard disk within the installation system, thus erasing the
boot files, you'd better hope the installation is successful the first time
around. At the least in this case, you should have some alternate means of
reviving your machine like the original system's installation floppies or CDs.

If your machine already has multiple partitions, and enough space can be
provided by deleting and replacing one or more of them, then you too can wait
and use the Debian installer's partitioning program. You should still read
through the material below, because there may be special circumstances like the
order of the existing partitions within the partition map, that force you to
partition before installing anyway.

In all other cases, you'll need to partition your hard disk before starting the
installation to create partition-able space for Debian. If some of the
partitions will be owned by other operating systems, you should create those
partitions using native operating system partitioning programs. We recommend
that you do not attempt to create Debian Linux partitions using
another operating system's tools. Instead, you should just create the native
operating system's partitions you will want to retain.

If you are going to install more than one operating system on the same machine,
you should install all other system(s) before proceeding with Linux
installation. Windows and other OS installations may destroy your ability to
start Linux, or encourage you to reformat non-native partitions.

You can recover from these actions or avoid them, but installing the native
system first saves you trouble.

If you currently have one hard disk with one partition (a common setup for
desktop computers), and you want to multi-boot the native operating system and
Debian, you will need to:

Back up everything on the computer.

Boot from the native operating system installer media such as CD-ROM or
floppies.

Use the native partitioning tools to create native system partition(s). Leave
either a place holder partition or free space for Debian GNU/Linux.

Install the native operating system on its new partition.

Boot back into the native system to verify everything's OK, and to download the
Debian installer boot files.

Boot the Debian installer to continue installing Debian.

3.6.1 Partitioning from SunOS

It's perfectly fine to partition from SunOS; in fact, if you intend to run both
SunOS and Debian on the same machine, it is recommended that you partition
using SunOS prior to installing Debian. The Linux kernel understands Sun disk
labels, so there are no problems there. Just make sure you leave room for the
Debian root partition within the first 1GB area of the boot disk. You can also
place the kernel image on a UFS partition if that is easier than putting the
root partition there. SILO supports booting Linux and SunOS from either EXT2
(Linux), UFS (SunOS), romfs and iso9660 (CDROM) partitions.

3.6.2 Partitioning from Linux or another OS

Whatever system you are using to partition, make sure you create a ``Sun disk
label'' on your boot disk. This is the only kind of partition scheme that the
OpenBoot PROM understands, and so it's the only scheme from which you can boot.
In fdisk, the s key is used to create Sun disk labels.
You only need to do this on drives that do not already have a Sun disk label.
If you are using a drive that was previously formatted using a PC (or other
architecture) you must create a new disk label, or problems with the disk
geometry will most likely occur.

You will probably be using SILO as your boot loader (the small
program which runs the operating system kernel). SILO has certain
requirements for partition sizes and location; see Partitioning for Debian, Chapter 6.

3.7 Installing Debian GNU/Linux from a Unix/Linux System

This section explains how to install Debian GNU/Linux from an existing Unix or
Linux system, without using the ncurses-based, menu-driven installer as
explained in the rest of the manual. This "cross-install" HOWTO has
been requested by users switching to Debian GNU/Linux from Redhat, Mandrake,
and SUSE. In this section some familiarity with entering *nix commands and
navigating the file system is assumed. In this section, $
symbolizes a command to be entered in the user's current system, while
# refers to a command entered in the Debian chroot.

Once you've got the new Debian system configured to your preference, you can
migrate your existing user data (if any) to it, and keep on rolling. This is
therefore a "zero downtime" Debian GNU/Linux install. It's also a
clever way for dealing with hardware that otherwise doesn't play friendly with
various boot or installation media.

3.7.1 Getting Started

With your current *nix partitioning tools, repartition the hard drive as
needed, creating at least one filesystem plus swap. You need at least 150MB of
space available for a console only install, or at least 300MB if you plan to
install X.

To create file systems on your partitions. For example, to create an ext3 file
system on partition /dev/hda6 (that's our example root partition):

Mount one partition as /mnt/debinst (the installation point, to be
the root (/) filesystem on your new system). The mount point name
is strictly arbitrary, it is referenced later below.

$ mkdir /mnt/debinst
$ mount /dev/hda6 /mnt/debinst

3.7.2 Install debootstrap

The tool that the Debian installer uses, which is recognized as the official
way to install a Debian base system, is debootstrap. It uses
wget, but otherwise depends only on glibc. Install
wget if it isn't already on your current system, then download and
install debootstrap.

Or, you can use the following procedure to install it manually. Make a work
folder for extracting the .deb into:

$ mkdir work
$ cd work

The debootstrap binary is located in the Debian archive (be sure
to select the proper file for your architecture). Download the
debootstrap .deb from the pool,
copy the package to the work folder, and extract the binary files from it. You
will need to have root privileges to install the binaries.

The current version of debootstrap, at least for i386, has been
compiled with glibc 2.3. Therefore if you are upgrading from Redhat 6.0, you
will need to obtain the source files and re-compile.

3.7.3 Run debootstrap (Network-connected)

debootstrap can download the needed files directly from the
archive when you run it. You can substitute any Debian archive mirror for
http.us.debian.org/debian in the command example below, preferably
a mirror close to you network-wise. Mirrors are listed at http://www.debian.org/misc/README.mirrors.

When running debootstrap, the PATH needs to include
/usr/sbin and /sbin for subsidiary program calls.

If you have a woody version Debian GNU/Linux CD mounted at /cdrom, you could
substitute a file URL instead of the http URL: file:/cdrom/debian/

Substitute one of the following for ARCH in the
debootstrap command: alpha, arm,
hppa, i386, ia64, m68k,
mips, mipsel, powerpc,
s390, or sparc.

3.7.4 Run debootstrap (Using basedebs.tar)

debootstrap can use the basedebs.tar file, if you
have already downloaded it ahead of time. The basedebs.tar file
is generated only every once in a while, so you'll get the latest version of
the base system by pointing debootstrap directly to a Debian
archive as shown in the previous section.

If you have multiple network cards, you should arrange the names of driver
modules in the /etc/modules file into the desired order. Then
during boot, each card will be associated with the interface name (eth0, eth1,
etc.) that you expect.

3.7.5.4 Configure Timezone, Users, and APT

3.7.5.5 Configure Locales

To configure your locale settings to use a language other than English, install
the locales support package and configure it:

# apt-get install locales
# dpkg-reconfigure locales

NOTE: Apt must be configured before, ie. during the base-config phase. Before
using locales with character sets other than ASCII or latin1, please consult
the appropriate localisation HOWTO.

3.7.6 Install a Kernel

If you intend to boot this system, you probably want a Linux kernel and a boot
loader. Identify available pre-packaged kernels with

# apt-cache search kernel-image

Then install your choice using its package name.

# apt-get install kernel-image-2.X.X-arch-etc

3.7.7 Set up the Boot Loader

To make your Debian GNU/Linux system bootable, set up your boot loader to load
the installed kernel with your new root partition.

3.8 Pre-Installation Hardware and Operating System Setup

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 your system. The
``firmware'' is the core software used by the hardware; it is most critically
invoked during the bootstrap process (after power-up). Known hardware issues
affecting the reliability of Debian GNU/Linux on your system are also
highlighted.

3.8.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. The 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 >. It is
preferred to have the ok prompt. So if you get the old style
prompt, hit the `n' key to get the new style prompt.

3.8.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 Device Names in Linux, Section
6.4. 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.

Typically, with newer revisions, 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

. In older revisions of OpenBoot, device naming is a bit different: the floppy
device is called ``/fd'', and SCSI disk devices are of the form
``sd(controller, disk-target-id, disk-lun)''.
The command show-devs in newer OpenBoot revisions is useful for
viewing the currently configured devices. For full information, whatever your
revision, see the Sun
OpenBoot Reference.

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. Note, this is also
configurable using the eeprom command on Solaris, or modifying the
appropriate files in /proc/openprom/options/, for example under
Linux:

echo disk1:1 >/proc/openprom/options/boot-device

and under Solaris:

eeprom boot-device=disk1:1

3.8.3 Hardware Issues to Watch Out For

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.

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.