"Linux Gazette...making Linux just a little more fun!"

Linux Installation Primer

You've heard all the hype, and decided to find out what this "Linux"
thing is all about. Or maybe you need a low cost alternative to one of
the commercial operating systems. Perhaps you need an easy way to
connect diverse systems and let them all communicate with each
other..tomorrow.. or you'll be encouraged to "seek new employment
challenges." In any case, you have a problem that needs a solution, or
a curiosity that needs to be satisfied. Well, you have come to the
right place. Join me as we take a journey into the exciting world of
the Linux operating system. Please keep your hands inside the car at
all times, and remain in your seat.

What the heck is Linux anyway?

Linux is a freely distributable version of Unix developed by Linus
Torvalds and thousands of other programmers scattered all over the
world. What started as a hacker's system, designed primarily for the
technically adept, has now evolved in to a viable, stable operating
system with a robust set of applications and tools making it suitable
for both personal and mission critical commercial use.

In just the past six months Linux growth has undergone an exponential
expansion. Every day Linux gains more and more press and exposure. Many
commercial vendors are announcing support, or ports of their products
to the Linux operating system. I saw just the other day that Oracle and
Informix, both major players in the Unix database world, have ports to
Linux underway.

Well, that's fine and dandy, but what does it mean to me?

This is incredibly significant, not just to the techno-geeks (yes,
that's me) but to the entire spectrum of computer users. One of the
benchmarks of the commercial viability of any product is the support of
the application vendors.

While it's great fun for me to write my own programs and applications,
most people just need to get some work done, on time, as easily as
possible. Or perhaps you want to surf the net for entertainment, or
playing games. Without the "killer apps", an operating system is doomed
commercially.

What this all means to you is never before has there been an operating
system, with a robust set of applications and development tools,
available for little or no cost, other than the "sweat equity" required
to learn to use it effectively.

An additional point to consider is that as you progress in your Linux
education you are also increasing your skill level and, ultimately,
your worth in the marketplace.

One of the strengths of Linux is that you have the power to choose the
depth of knowledge required to accomplish your tasks. Want to just bang
out a document or two, or play games? You can. Want to surf the
Internet and exchange e-mail with your friends and coworker's? No
problem. Want to learn to program in a variety of different languages?
Go ahead.

The point here is Linux can do all these things, and much more.
Additionally, with Linux, you are not required to fork over more money
for each function you want to add.

Okay. That sounds great, but I've heard that Unix is difficult to
configure, hard to install, only for the pocket protector crowd, etc.

While this was the case at one time, here and now, in 1998, it's simply
not true. Major advancements have been made in the installation and
configuration process, and in most cases Linux is no more difficult to
install than any other operating system. With the advent of package
managers, Graphical User Interfaces, and "smart" probing of your
system's components, installation has become largely a moot issue.

The truth is, you could not have picked a better time to join the Linux
world. Granted, once you get to networking issues, there is more to it
in a Unix machine than a Windows box, but with the new configuration
utilities, combined with an intuitive, easy to understand process, I
firmly feel that Linux is about as easy to configure as Windows.

Well, if you say so, but if Linux is not a commercial product, where
do I go if I get in trouble?

Luckily, there are commercial distributions of Linux available, as well
as commercial support contractors who will be happy to help you out.
And usually for quite a bit less than the people in Redmond, and the
Linux vendors actually answer the phone. And call you back.

Now I'm going to tell you about Linux's secret weapon. Remember, those
thousands of people I mentioned before? Well, there is a virtual
universe, populated with people who are ready, willing, and able to
help you out. You will find them on USENET, commonly called newsgroups,
on Internet Relay Chat, commonly called IRC and in your local area, in
the form of Linux User's Groups. As a matter of fact, this free
noncommercial group of people have made such an impact on the end user
community, that in an unprecedented move, Infoworld magazine named the
Linux support community as a whole, as the 1997 Product of the Year!

Okay, that all sounds good, but I've got an old 486 DX2/66 that's real
slow. Would Linux do me any good?

The answer is a resounding yes! Linux will run on anything from a
diskless workstation, to an XT, to the latest whizbang hardware. As a
matter of fact, I've used these machines for everything from routers to
web servers, from dialup servers to file servers. I currently run 2 486
66's as my backup DNS machines, each hosting multiple zones.

This is another one of Linux's strengths. The ability to take
"obsolete" machines and do great things with them. This is a great low
cost method for nonprofit organizations, and cost conscious
organizations to squeeze extra value from "old" machines.

The one exception to this is your video subsystem. X, the Graphical
User Interface , is very picky about the video cards it will and will
not support. This is primarily due to the fact that many video card
manufacturers are reluctant to release specification information to
Linux developers.

However, support is improving every day, and there are also commercial
X servers available to address these issues. The bottom line here is to
try to make sure your video card is supported by X if you want to run
more than VGA at 16 colors.

That said, different distributions of Linux have different hardware
requirements. And of course, I don't mean to imply that you should not
take advantage of a newer machine if you have access to one. I simply
want to convey to you that you don't have to have a Pentium II with 256
Megs of RAM, or a 600Mhz Alpha to be able to use Linux.

As a general guideline, any 386 or better with 4MB of RAM or more
should run quite nicely. If you plan on running X, 8MB would be better,
16MB better still.

Generally speaking, the more RAM, the better. As a matter of fact, I
often tell my clients that I would rather have a slower processor with
more RAM, than a faster processor with less RAM.

Contrary to what you may have been told, the processor speed is NOT the
primary determining factor of performance. In reality the performance
of your system is determined by the amount of RAM you have, The speed
of your Disk subsystem, and your processor. In that order.

Any type of IDE HDD, and any ATAPI CD-ROM drive will work quite nicely,
as will most SCSI hosts and disks. However, SCSI installations can
often be more involved, and will be covered in a separate document.

Okay, you've sold me on the idea. What next?

The first thing you will need to do is pick a distribution. Linux is
packaged as collections of programs, applications, utilities, and the
operating system, by different people and vendors. These are called
distributions. There are many, fine distributions out there, and
choosing the "right" one is a nebulous process. This is somewhat
analogous to picking the "best" vacation spot, or the "best" outfit to
wear.

I will be discussing the Slackware 3.5, and RedHat 5.1, as these are
the ones I am familiar with. Many of the descriptions and configuration
options, most notably the autoprobing of PCI devices, and support for
many newer video cards, are applicable ONLY to these distributions. All
my comments and recommendations are just that - comments and
recommendations. Your preferences may be entirely different.

Slackware 3.5

The first distribution I ever used, and still my favorite. It has the
option for either a Command Line Interface (CLI) install, or a
Graphical User Interface (GUI) install. Uses Tarballs, or .tgz package
format. I like this because I am not "forced" to install X just to use
my system like some of the other distributions ( see below.) I am also
given more control over what does and does not get installed. (Upgrade
path is not too good.) Best for people who want to really learn about
how the system works, and like installing and compiling their own
software. A full install will eat up ~400MB of disk space.

RedHat 5.1

This is the current "darling" of the commercial side of the Linux
community. Probably the easiest to install. Forces the installation of
the X window system, whether you want it or not. Uses the RPM package
format to ensure all packages and programs are installed correctly
(sort of.) Upgrade path is good. Currently has the lion's share of the
media attention, and thus, application support. This is the one I
recommend for people who want a working system quickly, and are less
concerned about the internal workings of the Operating System. A full
install will eat up ~600MB of disk space.

I had originally intended to do an in-depth comparison of the various
distributions, but the August issue of the Linux Journal just arrived
in my mailbox today, and I see that Phil has beat me to it. I
respectfully disagree with regard to the Caldera Distribution. I am
overwhelmed by it's cost, and underwhelmed by it's performance. Other
than that, I would suggest you refer to his article for a more in-depth
comparison. He has done an outstanding job, much better than I could
have ever done.

How do I get the software?

Here you have several options. All the distributions I mention are
freely available on the Internet for download. Additionally, RedHat,
and Slackware are available for purchase, either directly from the
manufacturers, or through third parties. Finally, some or all of them
are often bundled with books on Linux or can be had at your local Linux
User's Group's Install Party, an event where people bring in their
computers and the hosts at your Linux users Group will install the
software for you.

IMPORTANT NOTE: While it is possible to install some of these
distributions using FTP or NFS, I strongly urge you to acquire a CD-ROM
for your first installation. See the resources section at the end of
this document for vendors, or check your local book store.

While an Install Party is probably the easiest method to get your
system up and running, You will get more out of it by doing the
installation yourself. Messing up, and doing it yourself is the best
way to learn.

What sort of planning should I do beforehand?

Excellent question. Here are some things to consider:

While it is possible and feasible to have multiple operating systems
residing on one system, I recommend using a separate machine if
possible, or at least a separate disk or disks on your machine just for
Linux.

This will give you the confidence to bang away at it, install multiple
times, and decrease the chance of harming your primary OS or data.
Also, in later installments, I will show you how to make this machine
do all kinds of neat tricks, like serve up your Internet connection,
store files and applications, even become the starting point for your
own home network.

I'm not rich, where can I find a cheap machine like you mention?

Check around in the paper, your local Linux user group, your place of
employment or even your local community college for one of those "old"
machines. They can often be had at little or no cost.

What we are aiming for here is maximizing your chances for a successful
installation, there will be plenty of time for you to learn the more
esoteric methods as your Unix skills increase.

If at all possible try to get a separate machine, preferably with two
Hard Disk Drives, and an ATAPI compliant CD-ROM.

That sounds like a lot of trouble. Can't I just try it out without all
that extra stuff?

If you absolutely must disregard my warnings, and intend to try out
Linux on your primary machine, BACKUP ANYTHING YOU CAN NOT AFFORD TO
LOSE ONTO FLOPPY DISK, TAPE, OR WHATEVER BACKUP DEVICE YOU PRESENTLY
USE. IF YOU DON'T HAVE ONE, PUT THIS DOWN AND GO GET ONE! YOU HAVE BEEN
WARNED. Consider the Slackware distribution. It offers the option of
running directly off of the CD-ROM.

Okay, I have the machine or extra disk(s), what next?

If you have not acquired a separate machine, refer to the warning
above. BACKUP ANYTHING YOU CANNOT AFFORD TO LOSE.

The first thing you will need to do is create your boot disk, and in
some cases, a root or supplemental disk.

If you purchased the commercial distribution of RedHat, the required
disks should already be included. The commercial version of Slackware
should be bootable directly from the CD-ROM on newer systems.

If you obtained the software bundled with a book, you will probably
need to create the disk or disks yourself.

You will need one or two DOS formatted disks for this.

What boot image you need will depend on which distribution you are
installing.

For RedHat, look for the /images directory, which should contain two
files named boot.img and supp.img. Normally only the boot.img disk will
be required.

For Slackware, look for a directory called /bootdsks.144, and another
called /rootdsks. Unless you have something other than IDE devices in
your machine, the bare.i image is the one you will be looking for as
your boot disk. In the rootdsks directory, you will need the color.gz
image for your root disk.

The method used for creating your boot and/or root disks will depend on
whether you are using a Linux (or Unix) machine, or a DOS based machine.

If you are on a DOS based machine, I.E. Windows 3.x, Windows 95,
Windows 98 or Windows NT, you will need to use RAWRITE.EXE to create
your images. This program should be included either in the same place
as the images we just discussed, or under an /install, or /dosutils
directory in some cases.

You will need to open a command prompt (sometimes called a DOS box) on
your machine, or exit windows to get to the command prompt.

Then type: RAWRITE <enter>
You will be asked for the source file name:bare.i <enter>

You will next be asked for your target drive: A: <enter>

If the program errors out, and complains about "Attempting to DMA
across 64k boundary," FTP to sunsite.unc.edu, then cd to:

/pub/Linux/distributions/redhat/redhat-5.1/i386/dosutils/

And retrieve the version of RAWRITE there. It will be smaller than the
one you were using (~14k,) and the problem should go away. As I recall
this is only an issue on NT and possibly Windows 98 boxes.

If you are on a Linux or Unix box, the command to get it done is:

dd if=<your boot or root image> of=<where to write it to> bs=1440k

So, if you are making a Slackware boot disk:

dd if=bare.i of=/dev/fd0 bs=1440k &lt:enter>

For the root disk:

dd if=color.gz of=/dev/fd0 bs=1440k <enter>

Okay, I've got the proper disk(s). Now what?

Now insert the boot disk into your floppy drive and re-boot your
machine.

At this point, you will be prompted to login as root. After you login,
you must partition your disk or disks to prepare the HDD for
formatting, and ultimately, the installation of your software.

Linux requires at least two partitions for installation. You must have
a partition for your root or top level directory to live in, and you
also need a partition for your swap file to live in.

This is just a fancy way of saying you need at least one place on your
hard drive to store your operating system, and one place on your hard
drive to be used as a temporary storage area for your operating system
to put things that are not immediately needed.

If you are familiar with a Windows based system, the root partition is
the equivalent of your C:\ drive, and the swap file is the equivalent
of your pagefile.sys.

Just as it is always a good idea on a Windows box to store your data on
a separate device, apart from the operating system, the same rule
applies to Linux. This is why I urge you to have two HDD's in your
Linux machine.

Depending on which distribution you choose, the process required to
create the necessary partitions will vary. Similarly, whether you have
one or two HDD's will also make the best partitioning scheme vary.

Slackware:

Use the cfdisk utility. It is fairly easy to understand, and has decent
help.

RedHat:

You will probably want to use Disk Druid here.

For a single disk system, I would suggest two partitions:

One swap partition, between 16 and 32MB in size, depending on how much
RAM you have in your machine. The utility you are using, may or may not
ask you to specify the hex code to tell Linux that this is a swap
partition. If prompted for it, the proper code is type 82.

The rest of the disk should be partitioned as Linux native.

Some might argue that there should be three partitions here, in case
something goes wrong with the root partition, thus saving your data. I
have rarely seen a disk fail in just "spots", usually if a disk commits
suicide it's an all or nothing kind of deal.

I recommend two disks for precisely this sort of situation. The only
time I have ever seen two disks fail at once was due to a lightening
strike, which smoked the whole machine.

For a two disk system, I would suggest the following:

On the primary or first HDD (usually called hda in most distributions:)

Create two partitions, as stated above.

On the second HDD or secondary IDE interface:

Another swap partition of 16 or 32MB as above.

The rest of the drive should be partitioned Linux native.

After partitioning the disk or disks, you will be prompted to format
them.

Depending on the distribution used, at some point you will be asked
where you want the Linux native partition or partitions to be mounted.
This simply is asking you where in the filesystem hierarchy each
formatted partition should reside.

For single disk systems, mount your single Linux native partition as
your root, or / partition.

For two disk systems, mount your first disk as described above, then
mount the Linux native partition on your second drive as your /home
directory. This will be where all of your user specific information and
files will be stored, thus preventing an OS failure from taking all
your hard work and critical data with it.

THIS IS INTENDED TO COMPLEMENT, NOT REPLACE A DILIGENT, REGULAR BACKUP
SCHEME. I CAN'T STRESS ENOUGH THE IMPORTANCE OF REGULAR, RELIABLE
BACKUPS.

If I seem to be a bit paranoid about backups, I proudly state that I
am. I cannot begin to count the times my clients, friends and coworkers
have snickered, giggled, and laughed outright when I talk about this. I
am a constant source of jokes and entertainment for them. Until
something goes wrong. Then I am suddenly a savior to them.

By the way, when something like this happens to you, and it will, when
all the suits are sweating bullets, and looking to you like Moses with
the backup tablets in each hand, this is a great time for salary
negotiation.

Well, I've got the partitions made, and my disks are hungry for 1's
and 0's. What are my options for installation, and what programs do I
really need?

You have, with one notable exception, four possible choices for your
Linux installation. I will list them in order, from the smallest to the
largest. EXCEPTION - Option one, running directly off of the CD-ROM is
not available with the RedHat Distribution.

1. Running directly off of the CD-ROM, called a "live" filesystem.

This is the best option for just trying out Linux with a minimum impact
to your present system. Performance will be degraded, particularly if
you have a slow CD-ROM. This is the ONLY option I can safely recommend
if you are not doing this on a machine other than your primary system.

The exact actions required to accomplish this will vary between the
distributions, but will be called something like "run from CD-ROM", or
"run from live filesystem"

2. A minimal, or base installation, with just enough stuff to get you
up and running.

Slackware:

Select the following disk series:
A
AP (optional)

RedHat:

You can safely accept the defaults.
(Not much choice here, accept the default, or it won't boot. You will
be assimilated ;-).

3. A well rounded installation, consisting of the base stuff, plus some
productivity, network, and development tools

Slackware:

Select the following disk series:
A
AP
F
D
N
X
XAP

RedHat:

To the default selections, add:

X applications
Development tools

4. The entire distribution, sometimes called the "let's see how much
this sucker can take" installation.

Slackware:

Select the top option, "complete installation"

RedHat:

Select the "Everything" option.

A couple of suggestions concerning the everything install:

Below the dialog box where you chose "Everything", there will be
another box with the phrase "Choose individual packages." Select it.

You will then be taken to another dialog box listing the categories of
all the software that will be installed on the system. Scroll down to
Documentation.

For some reason RedHat wants to install the How-To's and things in
every format known to man, and in every language spoken by man.

Choose the text format and html format of the documents. The one
exception to this is if for whatever reason, you would find it useful
to have these documents in another language, in which case you should
select the appropriate language desired as well. When you are finished,
select done. This will save you a significant amount of disk space.

Common to both of the distributions, the following tasks are ones you
need to perform regardless of which distribution you use:

1. Creating boot and rescue disks.

Slackware:

Toward the end of the installation process, you will be asked to
configure your new Linux system. I strongly recommend making both a
lilo bootdisk, and a default, or vmlinuz bootdisk for your new machine,
and choosing NO to the install LILO option.

RedHat:

Toward the end of the installation, you will be asked if you want to
make a boot disk. Answer yes. Make several.

If prompted to configure either X windows, or your networking, answer
no. If you are forced to do either of these things for X, accept the
defaults. For networking, if asked for a network address, use
127.0.0.1, or choose the "loopback" option if available. We will be
configuring these things in the next installment.

2. Logging in as root for the first time and creating a user account for
yourself.

While there are times when it will be useful to be logged into your
system as root, most of the time, you will want to be logged in to your
own account on the machine.

There are many reasons for this, not the least of which is that when
logged in as yourself, just about the worst thing you can do is screw
up your own account.

However, when logged in as root, most of the safeguards built into the
system go away. You can do anything, even things you should not do.
Like hose the entire filesystem. This is both the strength, and the
weakness of the superuser account.

Treat it like a loaded gun. Don't pull it out unless you mean to use
it. If you mean to use it make sure you have a clear target and put it
right back in the holster as soon as you're done.

Now that I hope I've properly scared you, here's what you need to do:

Login as root. Then create a user account for yourself:

adduser rjenkins

You will be asked a series of questions. You can safely press enter to
accept the defaults for these things.

Now you need to password protect the root account and your user
account. Logged in as root, use the passwd command to do this for both
the root or superuser account, and your personal account.

passwd root

And then your user account:

passwd rjenkins

A short comment on password selection and security. Good password
discipline is very important, whether you are connected to a network or
not. Briefly, here are a few guidelines:

Choose something you can easily remember, say kibble.

Now, add a punctuation mark and a number to it, say ?kibble4.

Finally, for best security, a neat trick is to take the word you can
remember easily, in this case kibble, and for each letter in the word,
move up one row on the keyboard, and over either to the left or the
right.

So for ?kibble4 if we move up and to the left, we get: ?u8ggi34.

If we go up and to the right we get: ?o9hhp44.

This is easy to remember, and will defeat all but the most
sophisticated password cracking programs.

Navigating the Linux system, and obtaining help and information from
the documentation.

The first thing you will want to do is learn how to navigate your
system. You will find a wealth of documentation in the /usr/doc
directory. In particular, look at the /usr/doc/how-to directory, and
check out the installation and user's guide.

If you purchased your CD bundled with a book, make use of it. There
should be enough information there, or in the doc directory to get you
started.

While the editors and document tools available will vary from
distribution to distribution, every distribution should have vi
available. You will probably either learn to love or hate it. There
does not seem to be any middle ground, but I suggest you at least learn
to use it, since it will allow you to plunk down at any Unix machine
and use it.

Much abbreviated, here's a short list of relevant commands:

To open a file:vi filename

To insert text in a file:
Press the i key to enter insert mode, then enter your text.

To write your changes to a file:
Press the escape <Esc> key, then :w &lt:enter>

To close a file:
Press the escape <Esc> key, then :q <enter>

An even better option is to use the Midnight Commander, if it is
available on your system. Simply enter mc.

It looks and acts a lot like the N*rton Commander, and makes an easy
transition for anyone who has used that program, or is familiar with
the DOSSHELL.

Well, that's about it for now, Congratulations! See, that wasn't so
hard now was it? In the next installment, we'll configure the X
windowing system and your networking setup.

Local User Groups:
Most areas have several local computer-oriented publications available.
Have a look for a local user group in your area. There are also list of
user groups by area at
http://www.ssc.com/glue/groups/