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 notebook.
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”.
Further, if you write it down you give though to the process. I worked for a company Germany that used English on all of its servers to avoid problems with German characters, “English only” software and so forth. Typically, with newer employees when they installed servers they “knew what they were doing” so they didn’t follow the instruction guidelines step-by-step and blindly assumed German. When then got done, they had to start all over.
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 supported.
With Linux, the word “support” typically 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.
Note that there is a Linux Hardware Compatibility HOWTO that lists hardware that more or less is “known to work”. However, this is usually not the same thing as a hardware compatibility list from a commercial OS vendor which more or less “promises” the OS will work with that hardware. Also it typically takes longer for drivers to be developed for Linux than for commercial OSes or that the driver is available, but not widely known, so it isn’t in the list. Note also that commercial Linux vendors like Novell/SUSE and RedHat do have hardware compatibility lists.
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 often 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 expect.
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. When the jump was made from 1.2 to 2.0, a lot of new drivers were available. So, 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 wrong.
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 or opening up the machine, 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.
Note that modern drives typically The model number of hard disks can be read with software and is usually shown when the system boots. This information can then be displayed using dmesg. On one of my systems, it looks like this:
The manufacture of the hard disks is obvious and the size of the drive is easy enough to figure out. Although the manufacture of the CD/DVD drive isn’t as obvious.
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.
Author’s note: This was originally written at the end of the 1990’s. Currently (August, 2006) I have not seen a laptop, that does not have at least a CD-ROM drive, if not a CD-ROM burner or even DVD. I haven’t done a floppy install in many years, so it is highly unlikely you will have to. Consider you can get a basix CD-ROM drive for very little money, doing a floppy install is probably only necessary for people trying to do wrist exercises.
Normally, underneath the root directory of the installation media is a subdirectory dosutils, or something similar. 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.
In 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 disk is 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 under DOS 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 a boot 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 choice.
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 partitions. (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 years ago.
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 be overwritten.
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 mounted under /.
In a nutshell here are some the basics of which directories are often mount:
/ – A stable filesystem. Few, if any changes (but very important!)
/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 have mounted.
/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 of space.
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 boots.
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.
Here are a number of things to consider before you start installing Linux:
- Will this distribution run on my hardware? If you are not sure check out the Hardware compatibility HOWTO.
- Which languages do you want? Linux can be installed to support multiple so you can have more than one.
- What kind of keyboard do you have? Here you need to consider the number of keys, and layout. A good place to check for things to look for is The Linux keyboard and console HOWTO.
- What kind of mouse do you have? Is it serial, parallel or USB? How many buttons does it have? Most newer distributions will be able to automatically recognize the kind of mouse. If you have trouble, you might want to take a look at the The 3 Button Serial Mouse mini-HOWTO.
- How much memory do you have? (How many megabytes?)
- How much hard disk space do you have? Is it enough for the packages you want to install? Unless you have a very old system, computers today come with hard disks that are large enough to handle mutliple Linux distributions.
- Are you going to install a workstation or server? Do you want to select the packages yourself? Many distributions come with pre-defined sets of packages. For example, a workstation, internet server, development system and so forth. Which packages are installed depend on the type of system you are installing.
- Do you want to install other operating systems on this system, for example Windows or even a different Linux distribution? If so, you need to make sure that you have partitions the disk correctly. In general, Linux with be able to boot most any operating system you install.
- What partitions or filesystems do you want to create?
- Is the computer going to be networked? Will it have a dynamic or static IP address? What is the gateway to use to connect to other machines?
- Will it connect directly to the Internet and, if so, how? (ISDN, DSL, cable modem) Here are a few HOWTOs to look at:
- Cable Modem HOWTO
- Modem sharing mini-HOWTO
- Modem HOWTO
- What is the IP address of your name server? (assuming you will be networked)
- With this machine be a gateway/router/firewall itself?
- Do you want to start the system by default in text mode or use the GUI?
More information can be found in The Linux Installation HOWTO