The Illustrated Guide to Installing Debian GNU/Linux

Installing a GNU/Linux operating system is a fairly simple task. There are however a few concepts (e.g. partitioning) that may not be clear to new GNU/Linux users. This guide has been written primarily for them.

Prior to making any major change to your computer you should ALWAYS backup all of your work. The Debian Boot team has extensively tested their installer and they believe it to be safe, but they cannot prevent you from making mistakes and they cannot prevent a power failure in your city while you are installing your new operating system.

Debian is available on a number of installation media. This guide covers both the CD-ROM and the win32-loader (better known as goodbye-microsoft.com). It assumes that you want to install Debian on a computer that already has an MS Windows operating system on a single partition and it assumes that you would like to set up a "dual boot" -- a system that asks you to choose an operating system (e.g. MS Windows or Debian) when you start your computer.

There are dozens of CDs listed on those pages. You want one of the three CD images that end with: "CD-1.iso" in its label. The one that simply ends in "CD-1.iso" provides the Gnome desktop, the one that ends in "kde-CD-1.iso" provides the KDE desktop and the one that ends in "xfce-CD-1.iso" provides the Xfce desktop.

If you don't know what that means, don't worry about it, it is a matter of personal preference. One of the authors of this guide prefers KDE, so he used the "kde-CD-1.iso" when making the screenshots for this installation guide.

You also need to obtain the correct CD for your computer's architecture. If you don't know your computer's architecture, it's probably "amd64" (also known as "x86_64"), but note that older computers (before 2005) still use the "i386" architecture. To find information about your computer's architecture from within MS Windows, go to the "Start" menu, then select: "Programs" --> "Accessories" --> "System Tools" --> "System Information".

Once you have burned or purchased an apropriate Debian installation CD and after you have backed up all important files, simply slide the CD into the drive and restart your computer. When the computer restarts, you'll be given a short menu of installation options. Choose "Graphical Install" to start the installer in graphical mode.

win32-loader

To begin installing Debian using win32-loader, you first have to download the "debian.exe" file from http://goodbye-microsoft.com/ Then simply double-click on the "debian.exe" icon to run the program.

After giving you a choice of language (e.g. English), the win32-loader will ask if you agree to the terms of the GNU General Public License. If so, the win32-loader will ask you to select an installation mode: "Normal" or "Expert." Select "Normal."

The only disadvantage of selecting the "Normal" installation mode is that you are not given a choice of desktop. GNOME is installed by default. Appendix C explains how to overcome this disadvantage and install the desktop of your choice.

At the next screen, the win32-loader will ask if you want to install Debian or repair an existing system. The fact that you're reading this indicates that you want to "Install Debian."

After downloading a few files, the win32-loader will prompt you to restart your computer and remind you to backup all important files. (You've already done that, right?)

When the computer restarts, you'll be asked to select an operating system (either MS Windows or the Debian Installer). Select "Debian Installer" to begin the installation process.

The Installation Process

After following the steps outlined above, the Debian Installer will load and the installation process will begin. At this point, your computer may appear to hang for a minute or two at a black screen. Don't panic. This is normal.

Soon the installation process will begin and you'll be asked to select the keyboard that you use (e.g. "American English"). The installer will then automatically detect your hardware and your network.

After completing those tasks, the installer will ask you for the hostname of your computer and your domain name. If you're installing Debian on a home computer, you can make something up.

Partitioning

After asking which time zone you live in, the installer will detect your hard disks and start the partitioner. This is the most important part of the installation, so be careful.

The installer will present you with a set of guided partitioning options that use the entire hard disk and the "Manual" partitioning option. It's important to use the "Manual" option because the guided partitioning options will use the entire hard disk and wipe out your MS Windows installation.

You want to shrink this partition to create space for your Debian installation, so (if you're using the graphical installer) then select this partition by double-clicking on "#1 primary."

At the next screen, select "Resize the partition." Select "Yes" when prompted to write previous changes to disk and then click on "Continue." Choose a size for you MS Windows partition (e.g. 10.0 GB) and click on "Continue."

The installer will then resize the partition and you'll return to the screen with the partition table which will now look something like this:

Now you have to set up the partitions for your Debian installation, so select "Guided partitioning" and, at the next screen, select "Guided -- use the largest continuous free space." At the next screen, select "Separate /home partition."

Some people disagree with the installer's recommendation that new users place all files in one partition. In their view, new users should create a separate partition for their "home" directory. Your home directory is the location where you will store all of your work and where your (personal) configuration files (e.g. which wallpaper your prefer) will be stored. So if you create a separate home partition, your work and your system files will be on separate partitions.

New GNU/Linux users tend to experiment a bit too much with their "new toy." On the one hand, that's good because that's how you learn about your new operating system. On the other hand, some new users go to far. They do foolish things and need to reinstall the operating system.

If they were foresighted enough to create a separate partition for their home directory, reinstallation is relatively painless. They simply install the operating system around the partition that contains their home directory (leaving the files in place). After the reinstallation, all of their work is in place and their configuration is restored.

So select "Separate /home partition." The installer will then select some nice defaults and return you to the partition table screen:

If you like those defaults, you can select "Finish partitioning and write changes to disk." You'll then be given one last chance to change your mind. If you choose "No," you'll be returned to the partition table screen. If you choose "Yes," the changes will be written to disk and installation of the base system will begin.

If you don't like the partition sizes that the installer selected, turn to Appendix A for an explanation of how to manually choose the partition sizes.

After writing the new partition table to disk, the Debian Installer will install the base system.

Setting Up User Accounts

The next four screens will help you set up a "root" account and a "user" account. The root account is used to perform administrative tasks, such as installing software, while the user account is used for everyday tasks, such as writing letters, etc.

The strict separation of root and user accounts in GNU/Linux operating systems is a security feature. Normal users may not install software because they do not have permission to make changes to the directories (i.e. "folders") where system files are stored. This prevents malicious software that you may encounter while browsing the internet from installing itself and damaging to your system.

So at these four screens, pick a good password for your root account, then enter your name for your user account, pick a username for your user account and pick a password for your user account.

Beyond the Base System

The installer will then configure the package manager and ask if you want to use a network mirror to supplement the software that is on the installation CD. If you're using win32-loader, you will have to select "Yes" at this screen. If you're using a CD and if you have a slow internet connection, then you may want to select "No" at this screen. If you select "Yes," the installer will help you select a network mirror (e.g. ftp.us.debian.org).

After configuring the package manager and installing some software, the installer will ask you if you would like to participate in the "popularity contest" by anonymously submitting your usage statistics to Debian.

After installing a few more items, the installer will ask you which predefined collections of software you would like to install. If you are setting up a desktop computer (as opposed to a server), then you should select "Standard system." Laptop users should also select "Laptop."

New users should also select "Desktop environment." If you're using the win32-loader and if you've been following this installation guide, then the GNOME desktop will be installed. If you're using a CD, then the desktop that comes with that CD will be installed (i.e. GNOME, KDE or XFCE).

Users with some GNU/Linux experience under their belt, may wish to install a different desktop or only install the core elements of a desktop. If you're willing to login to a command prompt and manually install your desktop, then do not select "Desktop environment," finish the installation and then turn to Appendix C for help in installing the desktop of your choice.

The installer will now begin installing a lot of software. Feel free to get up and go to the kitchen. This step will take some time.

In the next step, the installer will install GRUB, the boot loader which allows you to select an operating system when you turn on your computer. The installer will detect your MS Windows operating system and ask if you want to install the GRUB boot loader to the master boot record. Select "Yes."

The installer will then perform a few more tasks and inform you when the installation will be complete. At that point, you should remove the CD from the drive (if applicable) and reboot your computer.

Upon reboot, you'll see the GRUB menu where you can select the operating system to start (e.g. Debian or MS Windows).

If you select MS Windows, you'll see that your MS Windows operating system is still intact. The first time you boot into MS Windows, it will notice that it has been resized and it will perform a check on its files.

At this point however, you're probably more excited to see your new Debian operating system.

At the GRUB menu, you'll notice that there are two Debian options. Select the first one. Do NOT select "single-user mode!" It's not what you think it is. Single-user mode should ONLY be used in emergencies when there is no other way to start the computer.

After selecting the first Debian option, a series of boot messages will flash across your screen and then you'll reach a login screen. Enter your username and password and you'll then see your new desktop.

Congratulations! You have successfully installed a GNU/Linux operating system on your computer.

Welcome to Debian!

Appendix A -- How To Manually Select Partition Sizes

If you are not satisfied with partition sizes that the installer selects, then you can select them manually. To do that you should undo the changes by selecting the partitions you dislike and deleting them at the next screen.

For completeness, I'll assume that you have deleted all of the partitions except the MS Windows partition, denoted by "ntfs" (the name of Microsoft's file system for MS Windows XP and Vista) and your partition table looks something like this:

For the purpose of this appendix, we'll first create a root partition, then we'll create a swap partition and finally, we'll create a home partition.

To start, double click on "FREE SPACE" and then select "Create a new partition."

At the next screen, select a size for the root partition, e.g. 5.4 GB. You'll then be asked if you want to set up a "Primary" or "Logical" partition. Choose "Primary" and, at the next screen, choose to place the partition at the "Beginning" of the available space.

The next screen will ask how you want to set up the partition. It assumes that you want to set up a root partition, so you should see a screen with the following information:

If any of those fields are different from what is listed above, double click on the field and set it to the correct option at the next screen. Once the fields are properly set, select "Done setting up this partition" and you'll then be taken back to the partition table screen.

Next you need to set up the swap partition, so double click on "FREE SPACE" and select "Create a new partition." Choose a size for the swap partition (e.g. 1.0 GB) and then choose to create a "Logical" partition. At the next screen, choose to place the partition at the "Beginning" of the available space.

The installer will assume that you want to create a home partition, but you don't want that. You want a swap partition, so double click on "use as: ..." and, at the next screen, choose "swap area" and then click "Continue." You'll then return to the partition options and (if all has gone well) you can choose "Done setting up the partition," which will return you to the partition table screen:

Finally, you need to set up your home partition, so double click on "FREE SPACE," choose to "Create a new partition" and choose to use all of the remaining space (in this case, 13.6 GB). Choose to create a "Logical" partition."

The installer will assume that you want to create a home partition, so if the fields look like the following:

then you can select "Done setting up this partition." If not, double click on the field and set it to the correct option at the next screen. Once the fields are properly set, select "Done setting up this partition" and you'll then be taken back to the partition table screen.

If you like the way the partition table looks, then click on "Finish partitioning and write changes to disk."

The next screen will give you one last chance to change your mind. If you decide that you don't like the partition table, then click "No" and you'll return to the partition table screen so that you can make the necessary changes. If you're satisfied, choose "Yes" and the changes will be written to disk and installation of the base system will begin.

Appendix B -- The Basics of Package Management

Unlike MS Windows users, GNU/Linux users obtain all of their software from the distribution that creates their operating system. This ensures that the software that they use is fully compatible with the other software packages that are installed on their system. This is important because many packages use the same software libraries.

To install software in Debian, the Advanced Packaging Tool (more commonly known as APT), automates the retrieval, configuration and installation of software packages. In order to retrieve software however, APT must know where to find it. That information is stored in your "sources list" file (i.e. /etc/apt/sources.list ).

The simplest way to edit your your sources list file is to go to the console and become root by typing:

$ su
Password:

Before going any further, stop to notice the difference in prompts. A normal user sees the $ sign, while root sees the # sign.

If proprietary software does not bother you, then add "contrib non-free" to the end of each of those lines. "contrib" and "non-free" provide you with a wider range of software, but the software there is not Free/Open Source. (Strictly speaking, packages in "contrib" meet Debian's Free Software Guidelines, but depend on packages that are not Free/Open Source. As the name implies, packages in "non-free" are proprietary). You should read http://debian.org/intro/free and acquaint yourself with this issue.

Once you have edited your sources list file, you have to inform APT of the change. To do that, run:

# apt-get update

Advanced users generally prefer to perform all package management tasks from the command line, whereas new users generally prefer to use a graphical tool, such as Synaptic. So let's install Synaptic from the command line:

# apt-get install synaptic

That command will download the DEB files necessary to install Synaptic, decompress them and install them on your system.

Once the packages are installed, there's no need to leave the DEB files laying around. In fact, it's a good idea to get rid of them every once in a while, so that they do not fill up your root partition. To do that you would run:

# apt-get clean

That command will only remove the downloaded DEB files. It will not remove packages that you installed. If you want to remove a package (e.g. Synaptic), then you would run the following command:

# apt-get remove synaptic

Don't run that command. It's just there for completeness of this guide You'll want to give Synaptic a try before you remove it!

Finally, don't forget to exit out of your root account:

# exit

When starting Synaptic, you'll have to enter your root password. Once you do, you'll be able to perform package management tasks (such as searching, installing and removing) from within a graphical ("point and click") interface.

The combination of APT and Synaptic make installation of new software easier and safer than the typical MS Windows method of searching the internet for an EXE file from someone you don't know, downloading that EXE file, double-clicking on it and hoping for the best.

Debian's (enormous) repositories contain all the software you'll ever need. Stick to them and breathe easily. You'll never have to worry again.

Appendix C -- Installing Alternative Desktops

One of the great things about GNU/Linux is that it has a number of different faces. As mentioned previously, the win32-loader installs GNOME by default, but that shouldn't stop you from trying some of the others.

If you did not install a desktop when you installed Debian, then you can use this appendix to install one from the command line. Alternatively, you can use this appendix to keep your current desktop and install others, so that you can decide which one you like most.

This appendix assumes that you have already know the basics of package management (as explained in Appendix B). It also assumes that you have not installed a desktop yet.

So let's suppose you want to install KDE. To do that, you would login with your username and password and then become root by typing:

More experienced users may wish to replace "gnome" with "gnome-core" to obtain a smaller subset of packages.

Once again rebooting the computer will take you to a login window, where you'll enter your username and password to get to your GNOME desktop.

Finally, if you already have an installed desktop, then there is no reason to specify "alsa-base", "xorg", "gdm", and "kdm" when you type the commands to install GNOME, KDE or XFCE.

There's also no reason to restart the computer. Simply log out of your current desktop to return to the login screen (either KDM or GDM) and find the menu item which allows you to select the desktop that you would like to login to. Then enter your username and password to go to the desktop of your choice.

Appendix E -- How To Work with an MS Windows XP partition

Now that you have installed Debian, you probably want to work with some of the files that you created while working in MS Windows. Usually, MS Windows XP uses the proprietary NTFS file system. Microsoft never released the specifications for this file system however, so NTFS used to be very difficult to work with.

Fortunately, a group of developers has created a Free/Open Source driver that can read and write to NTFS-formatted partitions. Unfortunately, their work encountered a lot of concerns about the safety of writing to an NTFS disk from within GNU/Linux. Many were afraid that their driver would seriously damage the NTFS partition.

The NTFS-3G developers made reliability the highest priority for their project however and concerns about the stability of their driver seem to have passed. Please consider these issues before using NTFS-3G.

If you decide not to use NTFS-3G, you will still be able to access the files on your MS Windows partition, but your access will be read-only. That may be sufficient for many people. For example, you could open up a letter that you wrote, but if you wanted to edit it and save the changes, then you would have to save those changes to a GNU/Linux partition or a FAT32 partition. Both GNU/Linux and MS Windows can read and write to FAT32 partitions.

This appendix assumes that you know the basics of package management (described in Appendix and it assumes that your MS Windows XP partition is formatted with NTFS. It will address the case of read-only access and the case of read-write access.

To get started, open a console and become root by typing:

$ su
Password:

If you want read-write access, you'll have to install the NTFS-3G library. You can do this by running:

# apt-get update
# apt-get install ntfs-3g

If you don't want read-write access, there's no need to install the library.

Next, we need to find the partition where MS Windows XP is located. To get a list of NTFS partitions, type:

# fdisk -l | grep NTFS

Note that that command is "fdisk" followed by a dash and a lower case "L." Then there is a vertical line, called a "pipe," followed by "grep NTFS". The pipe is located above the "Enter" button on your keyboard.

You'll get something that looks like this:

/dev/sda1 * 1 19457 156288321 7 HPFS/NTFS

What that means is the NTFS partition is located at /dev/sda1 (the "first partition of the 'sda device'").

Before attempting to mount that partition however, we must first make sure that it is not already mounted. To check, type:

# mount

and look for the NTFS partition. If it is mounted, then type:

# umount /dev/sda1

Note that there is only one "n" in the "unmount" command.

To mount the partition, we'll first create a directory for it (assuming that one has not already been made), then we'll mount the MS Windows XP partition in that directory.

To make the directory, type:

# mkdir /media/mswindows

If you want read-only access to the partition, type:

# mount -t ntfs /dev/sda1 /media/mswindows -o ro,umask=0222

If you want read-write access to the partition, type:

# mount -t ntfs-3g /dev/sda1 /media/mswindows

If you open your file manager and go to the /media/mswindows directory, you'll now be able to see all of your files. If you used NTFS-3G, you'll also be able to write to those files.

Before going any further, remember to unmount the MS Windows XP partition when you're done. To do that, you would type:

# umount /dev/sda1

Now that we have access to the NTFS partition, let's make it more convenient by mounting that partition at boot time. I'll give you the commands you need, but you are strongly encouraged to read the ?TuxFiles explanation of the /etc/fstab file. http://www.tuxfiles.org/linuxhelp/fstab.html

After nano opens the /etc/fstab file, look to see if the "name" of the MS Windows XP partition is already in there. If it is, then "comment out" the line by placing a hash (the # symbol) at the beginning of the line. For example, you could comment out the floppy disk line of your /etc/fstab file:

# /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Commenting out the line will prevent it from being read at boot-time, but leave the text of the line in the same file (in case you need it for some odd reason).

If you want read-only access to the partition, you would add the following line to your /etc/fstab file:

/dev/sda1 /media/mswindows ntfs ro,umask=0222 0 0

If you want read-write access, you would add the following line:

/dev/sda1 /media/mswindows ntfs-3g defaults 0 0

After you have typed the appropriate line, press Ctrl+X to exit, Y to save and Enter to write.

Now exit out of root and out of the console.

# exit
$ exit

After your reboot your computer, you'll notice that your MS Windows XP partition is already mounted at the /media/mswindows directory and you can access those files.

Appendix F -- Further Reading

This guide contains a lot of information to quickly get you up and running on your new GNU/Linux desktop. It is not a complete installation manual however. For more detailed installation instructions: