Installing Linux Basics
An UPDATED Guide to Beginner Linux Installation

by Mark Rais, author of the beginner Linux book Linux for the Rest of Us.  Many more tips are available on our "Help page.

The tips and information refer primarily to Fedora/Redhat® Linux, but can be useful for all installations. Please always think before you do, especially since any installation will wipe out all data on the partition you are installing.

Also remember, you may benefit from our many Beginner Linux Articles.

Before You Begin

Otherwise, read on for more detailed installation tips!

The following sections include the usual steps that will appear as your Linux installation progresses:
 

Starting the Installation
If youre not excited yet, youll soon be as you slip your Linux CD-ROM into the drive and let the installation program start!

Sticking your Linux CD into the drive and rebooting your system should automatically start the installation.

If it does not, then you may need to change your systems BIOS settings to allow the CD-ROM drive to be the first drive to boot from.  This is usually done by pressing the Delete key or F2 key when the system starts.

In some instances, you may instead need to create a boot disk to begin the installation.

Once the system boots from the Linux CD and the installation program begins, you can start using the steps on the following pages.
 

Basic Installation Setup
Almost all of the newer flavors of Linux begin with a very basic installation setup that allows you to choose your language, keyboard, and mouse settings.  This is only for installation and wont affect your final setup.
 

Choose Custom Installation
Remember that all flavors of Linux are slightly different, but the essential steps are the same.  In almost all cases you begin by having to choose from workstation, server, or custom.  The latest Red Hat versions also include Personal Desktop, which is very basic and leaves out useful tools.


I choose Custom all of the time, no matter who I'm installing for or what the purpose is, since it gives me the most control and flexibility.
 

Partitioning
Most flavors of Linux, including Mandrake, Red Hat, and Slackware,  will give you the option of automatically partitioning or allowing you to custom partition.

If you dont plan to do anything fancy with your server, then you can go ahead and choose Automatic partitioning (often called Basic).  Using a newer version of Linux, the result will be a very simple partitioning of your hard disk into three sections.  This is fine for basic work or beginner use.  I prefer something different personally.

I strongly prefer to use Disk Druid tool (often called Expert) to enhance my partitions and to give me more flexibility.  It may sound  intimidating, but using this tool ends up giving me a lot more control over what happens to my installation.

I rarely use fdisk, although with some flavors it is the only option.  When I do use fdisk, its only for cases that require complicated partitions.
 

If you choose Automatic (Basic) partitioning you will likely see:

It is absolutely critical that you ONLY select the hard disk/s that you want Linux running on!  Otherwise, you will lose all data on all drives!  In this example Ive unselected my Windows hard drive (hda).  Once youve chosen which drive to automatically partition, please skip ahead to "Boot Loader Configuration" further below.

However, if you prefer to choose the Disk Druid tool (sometimes called Expert), please keep reading for details on partitioning.
 



Dual Booting?
How can I add partitions to the same hard disk on which I have Windows or another OS?
The short answer is that this can be done, but must be done carefully!  The long and well documented answer is found best on your specific Linux flavors website.

For me to write even some of the variations for dual boot machines would end up well beyond the scope of this basic book!  I have to be open and tell you I can not recommend sharing the same hard drive between multiple Operating Systems, especially when new hard disks are so cheap.  Youll also find that some operating systems make it very difficult to have a dual boot with Linux.

However, there are some options for sharing Linux and another OS:
1.  Run Linux under another OS like MS Windows.  This is not at all recommended since you will lose many of the benefits of Linux.
2.  Erase all of the current partitions and make new ones to handle both Operating Systems.  For instance you would create a vfat partition for Windows, and several ext3 partitions for Linux.  This takes a lot of time, and requires a full reinstall.  But it offers you a way to share one hard drive with several Operating Systems.
3.  Purchase a second hard drive and install it into your system as the Linux hard drive.  You can still choose which OS to load, but they are safely on separate hard drives in their own partitioning schemes.

NOTE that some versions of Windows have issues when placed on the 2nd drive.  You may need to place Windows on the primary drive.



 

Using Disk Druid to Add Partitions
To add partitions (aka: Mount points) be certain the hard drive that is selected is really and truly the one you want Linux partitions on!  All data on the selected partition will be deleted.  (If youre installing Linux on a non-dual boot machine, this isnt an issue for you.)

In this example, I press the New key (Add on some versions) to begin creating new mount points/partitions using Disk Druid.

If you are replacing an OS with Linux, then you may first need to Delete existing partitions of the hard drive.

Once you press New or Add to begin making mount points, you will see another window appear, usually labeled Add Partition.  You may now begin adding the partitions you need for your server.
 

TIP: For dual-boot systems with more than one hard drive, please be certain that for each of the next few steps the Allowable Drive selected is only the one you want for deleting and creating Linux partitions on!  You must do this each time you add a new partition mount point!
 

A.  Create Mount Point: /boot
Create Mount Point /boot which will be the area where Linux kernel and startup information is kept.  I usually allocate several hundred MB at most to this.  For this installation I assigned 133MB.

B.  Create mount point: /
Create the Mount Point / that will be the area where root files and most programs are kept.  I usually recommend at least having 2GB in this area.

C.  Create mount point: <Linux Swap>
Create the Mount Point <Linux Swap> by going to the Partition Type, also called File System Type, and choosing Swap.  Scroll down until you see Swap and select it. The Mount Point field will automatically fill in for you in most versions.  The swap partition is a partition used to store temporary system data.

I usually make the swap file smaller than my total system RAM or the system will end up swapping more than storing in memory!  For instance my server has 512 MB of RAM, and I create a Swap of 256 MB.

If you do this, on some of the newer versions of Red Hat and Mandrake youll get a strange error complaining that the Swap file is too small.  You can just ignore this message as long as you have made your swap size larger than 100 MB.

D.  Create Mount Point: /usr
Create Mount Point /usr which is the area where user related programs and files go.  Be sure to select the option for Use Remaining Space.  In some flavors this option is called Fill to maximum allowable size.

This will correct the Actual size so that the remainder of your hard drive space is given to /usr.  You should have at least 4GB of total disk space available to install everything from your Linux CD!
 

TIPS: You can also add the /home mount point to ensure there is a unique mount point for individual users.

This is very helpful if you expect a lot of users on this server and intend to add additional disk drive space for them in the future.
 

Choosing Partitions to Format
Some of the newest versions of Linux do not show this step.

On some versions of Linux, you will see a listing of the mount points just created and their exact path name, including the specification of which hard disk they will be placed on.  Remember hda is the master hard disk of your system.  Dont allow formatting of this drive unless you are certain it is the one you want Linux placed on.

Theres no need to check for Bad Blocks (an optional check box) unless you suspect your hard disk has errors.
 

Boot Loader Configuration
Use LiLo or GRUB as your default boot loader.

If LiLo is not the default for your Linux flavor you can select it by choosing to Change the Boot Loader.  In some instances, a newer boot loader named GRUB is set as default.  Its totally a matter of choice.  I prefer to stick with LiLo since Ive used it without issue for the last eight years.  However, others prefer GRUB.  Just make sure you choose a boot loader!

The boot loader must be placed on your first or master hard disk to work properly (hda).

If you are given the option of putting LiLo on the MBR (master boot record) OR on the First Sector, choose First Sector if you plan on using a dual boot server with WindowsXP, Windows NT or Windows2000. For WinME you must use MBR.
 

Network Setup
Unselect the DHCP option and be sure to set a host name manually.
I usually set up stand-alone Linux servers, such as intra-office web servers.  So in almost no case do I use DHCP (Dynamic Host Configuration Protocol).  You can certainly use DHCP if you want another server to establish this system's network IP, but frankly this seems rather silly to me.

Hostname is usually a simple name such as:  myserver

For some Linux versions, usually the simplified releases, the installation does not include steps to go through the details of network host and IP installation.  In any case, I recommend that you add this information manually.  You can always add or change network configurations later by typing at the Linux command prompt:  netconfig

Manually insert the system's IP address and host name.   You can do this in some Linux flavors by pressing the Edit button next to your Network Device name.  Then unselect the DHCP option!

Let me give my own server IPs as an example.  I'm running my server behind a firewall and simply need to designate this servers host name as myserver and IP as 10.2.1.1.

Just type in your machines IP and netmask into the available fields.

Some releases of Mandrake, Red Hat, and Slackware, once you designate the IP, will automatically fill in fields like Netmask and Gateway.  If your Linux fills in Netmask for you, please be sure you really should be using the default setting of 255.0.0.0!  Most networks require 255.255.255.0.

The fields that will not be filled in are your DNS server IPs.  You need to get them off another machine in your local network area or simply ignore them for now if you dont have a domain name server.

TIPS: In many cases the easiest way to figure out what all these numbers should be in a business setting is to check a PC nearby.  To find out about your particular networks IP information you may try these:
If you have other Linux servers already in your LAN then use the command:  netstat
If you have Windows systems in your LAN use the command:  winipcfg
 

Firewall Settings
Just leave your firewall settings on Medium if you have no idea what to do!  This should be fine for running something like a simple Linux intranet web server.  At the same time, you need to consider the security risk of your particular system.  If its going to connect directly to the Internet the risk goes up substantially.

TIP:  I am installing a server within the corporate firewall and although security is always important, I have the ability to simplify my life by customizing the Medium secure firewall by doing the following:
Selecting ETH0 (my servers ethernet card) as a trusted device
Selecting the TCP, FTP, SSH, and Telnet options to allow incoming access from these connections and applicable ports. This is NOT a good idea if your server is going to be connected to the internet!
 

Picking Language and Time zone
Just choose a language and move on!

TIP: Leave the language setting on default and move on to the next step!  I had a colleague who thought it would be funny to try out a new and unique language for his Linux server.  He chose something that basically made his server totally unreadable to him and required a complete reinstallation.  I guess the joke was on him!

Time zones: Its important to choose the right time zone, since otherwise your users will be negatively affected.  Users dont think it so funny if their files and all of their program date stamps are wrong by several hours!  Its also important to set the server time correctly since there are many CRON or other time sensitive jobs that need accurate time settings!
 

Creating Root and New User
I cant stress enough to make the root password something simple to remember and yet hard to crack.  More times than I prefer to count, Ive had friends phone me late at night asking if I could help them recall the root password they created during our installation!

Full access login on any Linux server is root by default.
Also, take time to add an additional login account to your server.  You may do this by pressing the Add button or the new user option.

Take time to create an additional user account for yourself.  I always have a secondary login for my servers since I can do some things under root that are very dangerous!  I usually create one other account for myself and continue on with the installation.
 

Password Protection
I always use MD5 passwords and Shadow Passwords.

I rarely enable NIS, LDAP, or Kerberos.  On the latest Red Hat and Mandrake releases, SMB is also an option.  In some corporate situations where Kerberos IDs are standard I must include this.  However, for a simple Linux server none of these are necessary.
 

Package Installation
Now when it comes time to select which Linux applications you want to install, there is a vast array of options!  Many times, simply installing everything will work just fine!  Do so if you have time and disk space!

What you personally decide to do is a matter of choice, but should be tempered with the fact that installing everything doesnt make life easier, but installing too few things will definitely make life harder!

I strongly recommend you install both KDE and GNOME interfaces which come with their own distinct applications.  These are two of the popular X-Windows Desktop interfaces.

It is well worth installing these two interface managers, even if you only plan on using one, since the installation will add lots of extra applications and goodies for you.

The choices are yours to make and I recommend you take time to read through the basic listing.  If you plan to install everything, be sure you have allowed at least 4GB of space.  By leaving off a number of the developers tools like Kernel Development and some Servers I never use like DHCP and News servers, the installation takes around 2GB.

Also, since its been a point of confusion to many, you dont need to install the Windows File Server to just do basic file sharing between your Linux machine.  This server actually loads SAMBA and other tools.

Please note that some of the tools I refer to in this book are going to be installed only if you select the right packages or install everything.
 

Creating an Emergency Boot Disk
Some of the older versions of Linux include this step right after Choosing Partitions to Format.  Others simply include this at the very end.

Now, is this a good idea?  Well, yes!  In fact, not creating a boot disk and simply skipping the option is as silly as throwing rocks at a hornet nest.  You may get away with it for a while, but it'll sting you eventually!

You can create a boot disk after installation too, but it is not as easy.  If you have already installed Linux but need a boot disk, then please look at our article:  Creating a Boot Disk.  Otherwise, go ahead and let the installation make a boot disk for you.
 

Congratulations and well done!
This takes care of most of the installation steps!  Shortly, youll have a Linux server of your very own installed and ready to run!
 



First Time Boot-Up Troubleshooting
The first time you start the Linux server, youll notice a number of detailed configurations information scroll across your screen.  Next to all of these should be a green check or the word OK.  However, if you encounter issues, I list some suggestions below:

Need More Information or Help???