Preparing for the Installation
I have provided you with an "installation checklist" that you can
print out before you start your installation. Try to refer to it as much as
possible before you start the installation. Though a lot of the information won't
be asked for the install, gathering this information can help you identify
problems before you start. I suggest you include the complete checklist in your
You will notice that there are some very basic questions like
keyboard language and time zone. It may seem almost too basic to include this
type of information in your notebook.
However, I speak from experience when I say that the more you write down,
the less likely you are to make mistakes — even if the
information is "basic".
Before you start, you need to
check out your system. The very first thing you need to do is check whether
your hardware is supported.
I'm sure a few of you out there are groaning, thinking this is an attempt to
blow you off. I talked with many customers while I was in tech support who go
ballistic when I even bring up the question of whether the hardware is
With Linux, the word "support" has a completely
different tone than that for commercial operating systems. Companies that
produce a commercial OS usually have a list of supported hardware and platforms.
If your system doesn't conform, they have the right to "blow you off."
On the other hand, "support" under Linux means that there is a driver
for it. Whether there is a driver in the current kernel
is almost secondary.
Because there is a driver, someone took the time to write it and is anxious to
hear about any problems.
Commercial distributions of Linux walk the razor's
edge between Linux's philosophy and that of other OS vendors. So far, I have had
nothing but good experiences with Linux vendors. If they don't have a driver
themselves, they often know where to get one. However, the reaction you get from
them will depend entirely on your attitude.
"It works under
DOS!" is a common response when people learn that some system component is not
supported. However, as I have said many times, all it really means is that
the hardware is probably not broken. I say "probably" because I have
seen defective hardware work under DOS,
but not on UNIX. Under DOS, a lot of
hardware is accessed through the system BIOS.
The BIOS is often built especially
for that machine. It understands the hardware in a way that Linux doesn't.
Because the Linux device drivers access the hardware directly, the hardware has
to behave in a standard way. Otherwise, the device drivers don't know what to
Users have also commented that the driver works under another
version of Linux or even another dialect of UNIX.
If it works under another
dialect of UNIX,
the driver for that piece of hardware was probably provided for
you. If it works on another version of Linux, maybe that version has that latest
kernel. Because the jump has just been made from 1.2 to 2.0, there are a lot of
new drivers. Make sure that you have the correct release.
Does this mean
that your no-name hardware won't work? Not at all. I have one machine that is
running a fair bit of "unsupported" hardware. Much of it is clones of
supported hardware (which causes a lot of grief). However, it works. When I
tried to install something that wasn't supported and it didn't work, I wasn't
frustrated because the unsupported hardware wasn't guaranteed to work. (Well, I
was a little frustrated, but I knew to expect it.)
There is also the
issue of conflicts. Linux is good about enabling you to install a wide number of
cards at their default. The common place for conflict is with multiple cards of
the same type, such as more than one SCSI host adapter.
However, with the list in front of you, you will be able to confirm this before you try to install and something goes
Once you have installed the operating system
and it works
diligently for six months, then the first problems may crop up. Now, what was
the model of the hard disk? Rather than digging through a box of papers looking
for the invoice, you will have it right in front of you in the checklist. Okay,
knowing that you should fill out the installation checklist is easy, but knowing
what to put in each entry is the hard part.
You can install Linux in
several different ways, depending on the distribution you bought. If the Linux
distribution on the CD-ROM
does not have exactly what you need, knowing about
the different versions available might help you decide which one is best for
you. (Note that the version of the kernel
that installs on your system will
not be the latest, 2.0. However, you will find a copy of the 2.0 on the
CD-ROM, as well as instructions on how to upgrade it.)
An important thing
to consider for the installation is the installation media. If you want to
install Linux on an older laptop that has neither a CD-ROM
drive nor a network connection, then you probably need to think about doing installing
it from floppies. Many Linux versions will allow you to do a network
install via PPP, so at the very least, you need a modem.
Normally, underneath the root directory is a subdirectory
Among other things, this subdirectory
probably contains the program rawrite.exe, a DOS
program used to write disk images onto your floppy.
Also underneath the root directory, you will probably find a directory on the
CD-ROM called images, which contains the images that are
used to make the boot
and root floppies and floppy sets used to install the rest of the packages.
addition, at least one subdirectory
contains the disk images for the various
boot floppies. There is one file for any one of dozens of different hardware
configurations. There is an index that you can use to select what boot
most appropriate. However, this is normally not necessary if there is a program
to create the boot
floppies for you. There is also a "bare" image that
contains very few drivers.
You need to consider whether the version you
have can install additional products with floppies once the initial installation
was complete. I ran into this problem myself. I thought I would install the base
product first and then install other components that I needed later on. However,
once the installation was complete, I discovered that the only tool on the
system that could read the package information on the floppies was the initial
installation program. This meant that I had to either be satisfied with what I
had or install again. (If the distribution supports rpm, then this is not so
much of a problem.)
Even if you do have a CD-ROM
drive, there are a couple of installation methods. With some products, you can
install directly from the
CD-ROM. That is, a DOS
program will load the Linux kernel,
which then starts the installation. In this case, you have to be able to boot
and not just a DOS window. Others provide a DOS
or Windows program that creates a boot floppy
and, if necessary, a root file system floppy. Most distributions provide you with
disk so you don't have to make one yourself. (unless you get a free copy in
a magazine or in the mail). Even without a diskette,
I cannot think of a common Linux that does not come with a bootable CD.
During the course of the installation, you may have the choice
of several different installation types, from fully automatic to fully
configurable, depending on the version. For the more advanced system
administrators, the fully configurable enables you to control many different
aspects of the install. Fully automatic basically does everything for you, that
is, it evaluates your system and essentially makes all the decisions itself. I
recommend that if you are a novice administrator
and there is nothing
on the hard disk that you want to save, the fully automatic is your best
Most versions enable you to select the components that you
want to install. In many cases, you can select among several
different "architectures" that have a set of predefined packages. If
you want, you can choose a custom architecture in which you choose each package
yourself. The Installation HOW-TO provides a list of the Slackware packages and
what they contain.
Take notes during the entire
process and include these in a notebook. Write down everything you input and
what the prompt/question was. These notes will be helpful if things go wrong and
you want to try a different approach. You will know what you input the last
time; this time, you can try something different.
To install Linux (or any other OS for that matter), a hard disk must be
divided into partitions. Each operating system may use from one to four
(DOS logical partitions are actually subdivisions of extended partitions.)
The partition table, which tells the number and location of the partitions,
has been standard for years and is essentially impossible to escape, so the
limit is four primary partitions. This means that a physical disk can
have only four primary partitions and any operating sysem installed can used
one or more of them.
Linux, unlike other UNIX
dialects, can be installed on logical partitions, as well as the primary
partitions. Therefore, it is possible to have three primary partitions and
one extended partition, which then contains several logical partitions.
For experiment's sake, I created ten logical partitions once, although I have
never had more than 3 or 4 on an active system.
Under Linux, file systems take up the entire partition.
File systems can be on different partitions or even different hard disks, or you can put all files on a
single file system. Having different file systems can be safer: if one is
trashed, the others are often safe; if everything is on one (root), then the
whole system is gone.
The more activity there is on a file system, the
greater the chance it will become corrupt if the system should crash.
If your database application
and the data are on the root file system, all of your
activity is in one place. If the database and the data are on a separate file
system, there is less activity on the root file system. If the system goes down,
the root file system may be okay and you can use it to fix the other problems.
However, I don't mean to scare you. Disks are much more reliable today than a few
On the other hand, "small" hard disks today are on the order of 40 Gb.
Therefore, you have plenty of space for multiple filesystems. Plus, there
are several advantages to having multiple filesystems,
such as keeping others safe when one crashes (as already mentioned).
Traditionally, the way to break it up is to have /usr as a separate file
system. Often, even directories under /usr, such as home are on
separate file systems. This can make your backups even quicker. The root
file system contains things that remain fairly constant and you need only
back it up on occasion (once a week, for example). Daily backups need only
be done for the file systems with data on them. Plus, if you have partitions
on multiple disks, performance is increased, because the disks can actually
be accessed simultaneously. Also if your system crashes and the filesystem
needs to be checked, the check goes alot faster, even if the partitions are on
the same physical drive.
It is also common to have /opt on a seperate filesystem. In fact, since this contains "optional"
software, I find that it is more common to have /opt as a separate filesystem than /usr. On very active
systems, I often find /var to be on a separate filesystem. This is where log and spool files are kept. If
something should go wrong and the log files become flooded with information, only that one filesystem is
effected, but the system can keep going.
Also if the data is seperate from the operating system files, it makes upgrading
a lot easier and safer. The filesystem containing the data can be unmount when the
operating system is upgraded. It is then alot less likely that something will
It is also common to have temporary storage or "spool" directories on seperate
partitions. The reason is that if your root filesystem fills-up (or one
on which an important application is running), things might come to a
stand-still if there is no space left on the partition. Therefore, directories
that could fill up quickly are seperated from the rest of the system.
Also keep in mind that the larger the filesystem, the longer it takes for it to be checked and cleaned if
the system were to crash. If the filesystems are different physical drives, the filesystem
checker, fsck, can check them in parallel, which obviously makes it faster.
On any one system using the NFS
automounting facility, I had all the users on a single machine.
The /usr/home directory was
exported via NFS
to other machines that mounted it on their /usr/home directory.
The advantage was that the file system was only mounted when it was needed.
Also, there is nothing to prevent statically mounting the home directory.
No matter what machine a user logged into, he or she would have the same home
directory. On many systems you might even find the home directory
In a nutshell here are some the basics of which directories are often mount:
/ - A stable filesystem. Few, if any changes (but very important!)
Considering the partitions size, you must also consider the swap space size as well. I've
seen references that say swap should be
one-and-a-half to two times the amount of RAM.
Personally, I think this is too much, unless you have a good reason. The swap
space should be considered a safety net, not an integral part of your memory
system. If you are swapping,
performance will suffer. If you think you would need the extra swap space,
consider buying more RAM.
That way, you are less likely to swap in the first place. We go into details
in the section on the swap space.
/tmp - Mounting /tmp protects your system if it should fill up quickly.
/usr - Contains user-related applications and programms. However, this is
typically not that large.
/usr/share - This contains alot of "shared" information, like documenation
and it can grow to several gigabytes.
/var - Contains mostly logs, spools and variable information. Good choice to
/var/spool - The spool directories. A good choice if you don't mount all of /var.
/home - User home directories. Also a good choice to mount, particularly if
you do not have user quotas set up.
/usr/local - Per system or installation local files. Typically not very large.
/boot- Where boot information is kept. The reason it is often on a seperate
filesystem comes from the time when LILO had difficulty with large disks.
/opt - Optional software. This is a good choice as this is where most of the
user-related software goes on newer Linux distributions and it takes up a fair bit
The size of your partitions needs to be based on how much software or data you
will have. You need to consider the growth of your system. If you put
your data on a second disks, it would be easier to backup the data, add a larger
disk, and then restore the data.
If you have a larger disk, you need to be aware of the 1,024 cylinder
boundary. PC BIOSs are limited to 1,024 cylinders. Until Linux is loaded and has
control of the system, the BIOS
is accessed. You can run into problems if any part of your kernel
is above this boundary. See the section on hard disks in the
hardware chapter for details.
How many partitions or filesystems you should have, is best decided before
the system is installed. However, because of the way Linux works it is not a
requirement. You could install the system and then add hard disks later,
moving some of your files to the new hard disk. This is primary because Linux
does not have the concept of drive letters like Windows. When you install
your Windows system, all of the system file go on the system "drive", which
is related to a single drive letter. Although it is theorectically
possible to have your system files spread out on multiple drives, it is neither
recommended nor supported by Microsoft. With Linux,
you can put things anywhere you need to (or simply want to).
At a very minimum, you must have two partitions: one for your root filesystem
and one for
swap space. However, it is common to have seperate
filesystem for /boot, /usr,
/opt and /var (Details on what these directory are used
for can be found in the Guided Tour section).
Even if you do not create separate filesystems for these directories when the
system is installed, you can add them later. This entails booting into single
user mode, mounting the new filesystems to different directories and then
copying files into the new directory. You then make the necessary
changes to /etc/fstab to mount the filesystem automatically when the system
Regardless of how many filesystems you want to have, it is a good idea to plan everything on paper
before you start. You could change things once the system is running, such as
moving directories to separate filesystems. However, you can avoid some work
by planning it in advance.