2. Linux Installation
First-time (and even second- and third-time) Linux installers have questions. And we have answers. In this second part of our ongoing series of Linux tips, we're addressing installation issues and planning for such things as a floppy-boot disk, the file system, and partitions.

Most of the material you'll read in this section comes from Bruno of Amsterdam, one of the moderators of the popular All Things Linux forum at Scot's Newsletter Forums.

Bruno is helped by All Things Linux co-moderators Peachy and ThunderRiver, as well as other forum members who have posted in the highly useful Tips for Linux Starters thread (from which Linux Explorers was developed).

For this installment of Linux Explorers, Senior Moderator LilBambi contributed significantly. SFNL Forums member Prelude76 also helped.

Here are the links to the previous installments of Tips for Linux Explorers:

  • Check Your Linux 'ISO'

    Now, on to the latest set of Linux tips!

    Basic Installation Guidelines
    Each and every time you install Linux, review these getting-started tips *before* you get into the installation routine. Print them out and pin them up on the wall. These tips are aimed primarily at Windows users who are experimenting with Linux or taking a first step toward making a transition to it. The underlying assumption is that you'll be running Windows and Linux on the same PC.

    Prior to Installation:

    1. Check out your PC's Linux hardware compatibility with a specific Linux distro without installing the distro at all. Use the information you find in the Scot's Newsletter Forums post to access a "live CD." Live CD's are distros that run completely from CD. Nothing is written to the hard disk, and no real install takes place. But you get the chance to work with a fully functional operating system.

    2. Create a solid backup of all important data on your computer -- even if it's on a partition that won't be effected by the install.

    3. Plan in advance how you want to configure Linux partitions and what file system you want to use, such as Ext3, ReiserFS, and so on.

    Note: You'll find advice on partitioning and file-system selection a later in this installment of Tips for Linux Explorers.

    4. Check your computer's CMOS BIOS Setup screens for an entry something to the effect of plug-and-play-aware Operating System (it may be abbreviated as PnP). And if you find this setting, change it to "No."

    5. Check your computer's CMOS BIOS Setup screens for a drive boot-order setting. The order should be first CD-ROM drive, second floppy drive (if you have one), and third IDE-0 (your first hard drive).

    6. Connect all modems, network adapters, printers, scanners, card readers, and other devices that you plan to use with Linux and make sure that they are all turned on and ready to go.

    7. Open and read through the README and INSTALL text files on your Linux distribution CD.

    8. Always make and test a boot-floppy for each operating system installed on your PC prior to installing a new OS. If you already have a boot floppy, test it again.

    9. Defrag all Windows file-system portions of your hard drive. This is especially necessary if you did any repartitioning work in advance of your Linux install. You should always defrag your drive after you do a dynamic repartitioning (such as with PartitionMagic, Partition Manager, or Partition Commander).

    During Installation:

    10. Write down the root-password you'll create during installation.

    11. Don't use up all the free space from your Windows partition for your Linux installation (an option available in the Linux install routine). Leave some working-space there for adding new programs or temp files. CD-burning programs, for example, use at least a 700MB temp space. You don't want to cripple your Windows installation.

    12. Select the installation option that installs the bootloader Lilo or Grub in the your hard drive's Master Boot Record (MBR). This will automatically create a dual-boot menu that will appear each time you start your computer, allowing you to choose to load either Windows or Linux.

    For more tips and information about installing Linux, see Professor Norman Matloff's 17-page Beginner's Guide to Installing Linux. Note: An Adobe Acrobat PDF reader is required to retrieve the link.

    Establishing Smart Partitions
    Start by gathering the current information about your hard drive partitioning. Under Linux, you would do that by entering this command in the console:

    df -h

    Sample output for a two-hard-drive system might be something like this:

    File system Size Used Avail Use% Mounted on
    /dev/hdb1 5.8GB 1.8GB 3.7GB 33% /
    /dev/hdb6 5.0GB 1.8GB 3.3GB 35% /boot
    /dev/hdb7 3.9GB 2.5GB 1.3GB 67% /home
    /dev/hda1 19.0GB 14.0GB 4.7GB 75% /mnt/windows
    /dev/hdb8 5.7GB 63.0MB 5.4GB 2% /tmp

    The listing tells what lives on each partition. The symbol / represents the root, which is found in the partition /dev/hdb1 in this example. Make a note of what you find; the information could come in handy in the event of a need to reinstall, repartition, or recover from a crash. If you don't have Linux on your system yet, a trip into DOS's FDISK utility would provide some of this information (although it's less useful).

    In Linux, the term HDA is the first physical hard drive, HDB refers to the second hard drive, HDC is third, and so on. HDA1 is the first primary partition. HDA5 is the first logical partition on the first hard drive. By default Linux makes four primary partitions on each hard drive. It leaves the first primary partition as is and will make one of the remaining primary partitions the extended partition, as needed. As with DOS, the extended partition is said to contain the logical partitions.

    Everything in one partition is not a good idea, at least you should have a separate /home partition and give it space enough to grow as you add data. The clever thing about a /home partition is that when you do a re-install or upgrade you can leave it as it is, saving all your personal settings, mail, address-book, and other data.

    Some Linux distros are able to work with less than 500MB while still running an X shell interface. But our focus in this article is on conventional installations more commonly tried by first-time Linux users. So we're offering three different partition and allocation recommendations, based on the amount of free disk space you have available:

    With 5GB Free
    If you have at least 5GB of disk space to spare for the full installation version of most current Linux distros, this is our recommended minimum number of partitions and sizes:

    2GB for /
    2+GB for the /home partition
    500MB for the /swap

    Please note that anything larger than 500MB for the /swap partition would be a waste of disk space. The Linux installation process creates and allocates the Linux swap partition automatically.

    With 10GB Free
    With 10GB of disk space to work with, this would be a better allocation of space:

    1GB for /
    3GB for /usr (Most of the extra programs you install will reside here.)
    5+GB for /home
    500MB for /swap

    With 15GB Free
    If you have 15GB or more to spare, the ideal partition table is:

    500MB for /
    3GB for /usr
    20MB for /boot (For a few extra kernels to boot from.)
    500MB for /var (A lot of writing is done to the /var/logs.)
    500MB for /swap
    5+GB for /home
    5+GB for /backup

    Any additional disk space should be allocated to the /home and /backup partitions.

    Scot's Newsletter Forums member Prelude76 advises anyone installing SuSE to have a fairly large /opt partition, since this is where most third-party apps get installed.

    Some additional resources about Linux partitioning:

  • Linux-sxs.org's Partitions, General Info
  • Togaware.com's Suggested Linux Partitioning
  • The Linux System Administrators' Guide: Partitions

    Picking a File System
    You're probably at least aware of file systems such as Fat16, Fat32, and NTFS for Windows. Linux has Ext2, Ext3, ReiserFS, and XFS. The last three are journaling file systems. Ext3 is the same as Ext2 with the journaling capability added.

    A journaling file system allows quicker recovery in case of system crash or power failure. At the time of this writing, ReiserFS and XFS are new file systems that are still under development. We currently recommend the Ext3 file system to everyone.

    Some additional resources about journaling file systems:

  • Linux Gazette's Journal File Systems
  • Linux Magazine's Journaling File Systems