Installing Debian Potato

by Mark Stone

Note: this is not the official Installation manual for Debian GNU/Linux 2.2 (`potato').

Hamm. Slink. Potato. Woody. No, you aren't watching "Toy Story". You've encountered the lineage of Debian distributions. Whether your aim is to expel the evil operating system Zurg from your computer, or find a way to peacefully co-exist with it, you'll find that the current stable release of Debian, aka Potato, is the easiest Debian to work with yet.

Traditionally Debian and Red Hat have contrasted as Linux distributions: Red Hat is reputed to be easier to install, while Debian is reputed to be easier to maintain and upgrade once installed. While that distinction still holds true, Debian is now much easier to install.

We aren't going to take you through all the intricacies of Debian in this article. What we are going to do is show you how to set up a dual boot machine that will enable you to run either Windows or Debian GNU/Linux, and we're going to show you how to do the kind of simple install a beginner would want to play around with Linux and get a feel for how the system works.

We're going to go through several stages here:

  1. Documenting your system;
  2. Preparing your hard drive;
  3. Installing the base Debian system;
  4. Selecting and installing packages;
  5. Configuring the system;
  6. A brief glimpse at Debian upgrading.

Debian can be installed from floppy disks if absolutely necessary; we're going to assume, however, that you have a Debian Potato CD. Debian can be installed on a wide range of systems, from old 486 computers to modern non-Intel architectures. A full install of every possible Debian package would run several Gigs; some versions of Linux can fit on a single floppy. The range of possibilities with Linux is wide. We're going to assume, however, a typical profile. We'll assume that you have an existing machine running Windows 98, with adequate hardware to do so. We'll assume you have a current Pentium processor, at least 64 megs of RAM, video card that will support true color in at least 1024x768, a CDROM drive, a modem, and an ample hard drive (we'll use 10 Gig in this example).

Finally, we'll assume that you don't want to eliminate Windows just yet, but want to set up your machine so that you can select either Windows or Linux at start up, i.e. at boot time. This kind of setup is called a dual boot machine.

Remember, no guide to installation covers everything. But remember also you're not alone. The #linuxhelp irc channel on is an excellent place to look for help, as is! Be sure to check's Live! calendar for upcoming irc-based installfests. In fact, in this article was made possible by the outstanding answers that came in over IRC during the installfest done over IRC at LinuxWorld Conference and Expo this past August.

Documenting Your System

Linux does an excellent job these days of autoprobing your system to determine what hardware you have, and what settings that hardware is configured for. Sometimes, however, Linux does need help, and there are occasions where you'll find that you have some component not yet supported by Linux. To anticipate these contingencies, and to know what to do about them, it's important to document exactly what you have on your machine.

Here's a suitable checklist of the various system components you'll want to know about ahead of time:

Device Information Needed
Hard Drive(s) Number, size, and type of each hard drive. Which hard drive is recognized by your computer as first, second, and so on. Which adapter type (IDE or SCSI) is used by each drive.
RAM The amount of installed RAM
CDROM Drive(s) Which adapter type (IDE or SCSI) is used by each drive.
SCSI Adapter (if any) Make and model of the card.
Network Adapter (if any) Make and model of the card.
Mouse Type (PS/2, USB, serial, or bus). Protocol (Microsoft, Logitech, MouseMan, etc.). If serial, the port to which it's connected.
Video Adapter Make and model of the card. Amount of video RAM.
Monitor Highest color depth and screen resolution the monitor supports under Windows. Horizontal and vertical refresh rates.
Modem (if any) If external, the serial port to which it's connected.

Windows can actually provide you with most of the information you need about your system. Select Start -> Settings -> Control Panel -> System. You should see something like:

Most of the information you want will be found in the Device Manager. Selecting that tab should bring up a window like this:

This will show you which devices are installed on your system. Selecting a device, and clicking on the "Properties" button will show you the settings for that device.

Preparing Your Hard Drive

Bill Gates once said, "640k of RAM ought to be enough for anyone." It's that kind of forward-looking view of the world that gives us a peculiar DOS contrivance now turned into a useful tool: the disk partition. DOS, Windows 3.1, and even the initial release of Windows 95 had limitations on how much hard drive space they could recognize. If a drive were larger than this recognizable limit (2 Gigs under Windows 95, I believe), then the operating system simply couldn't "see" the rest of the drive.

To work around this limitation, drives could be formatted into logically separated segments, called partitions. Once formatted in this way, each partition was treated by the operating system as if it were a separate hard drive. Under Windows, if you started with hard drive C:, and partitioned this, the first partition would appear as C:, and the second partition would appear as D:.

We'll exploit this construct to leave one partition formatted as a Windows partition, and to create a second partition formatted as a Linux partition on which to install Debian GNU/Linux.

Windows 98 can recognize large disk sizes, so these days most computers ship with a hard drive formatted as a single partition. This means that you'll need to:

  1. defragment your hard drive;
  2. resize the existing partition to fill only part of the drive, and
  3. add a second partition on the newly freed up space.

The trick is to resize your Windows partition without destroying any of the data. This used to be an arduous task. These days it is fairly straightforward using a simple tool called GNU Parted. Here's what we're going to do:

  1. Create a boot floppy disk containing the absolute minimal Linux components needed to run Parted;
  2. Boot your computer with this floppy disk;
  3. Run Parted to shrink your Windows partition;
  4. Reboot the computer and start the Debian installation.

Resizing your hard drive nondestructively will be easiest, and least likely to cause problems, if you defragment your hard drive first. Windows doesn't store all files in contiguous sectors on your disk. As a result, files can end up scattered across a much larger portion of your hard drive than the amount of drive space you're actually using. Defragmenting simply packs all sectors being used as efficiently as possible onto the beginning of your hard drive.

You can use Windows' native defragmenting tool by selecting Start -> Programs -> Accessories -> System Utilities -> Disk Utilities. More effective defragmentation programs come with utility suites like Norton Utilities.

Creating a Parted Boot Floppy

Initially, your hard drive will look something like this if you select My Computer -> C: -> Properties:

To create the Parted floppy, you'll need:

  1. a blank floppy disk,
  2. the Parted disk image,
  3. a program for writing raw files to disk called Rawrite.

You can get the Parted disk image from It's the file ending in the .img extension. There should be a copy of Rawrite on your Debian CD. If you can't find it, you can always download it from

When you run rawrite it will prompt you for the source file; give it the path to where you've downloaded the Parted disk image. This will be something like "C:\Windows\Desktop\parted.img". It will then prompt you for the target location, meaning your floppy drive. Enter in "A:".

Now simply reboot your computer with this floppy disk in the drive.

Running Parted

When this floppy boots, you'll see a lot of unfamiliar messages scroll by that are a routine part of the Linux boot process. You'll eventually come to a command line prompt, something reminiscent of running DOS, and you'll see a message that says "You can run parted by typing 'parted DEVICE' where device is the name of the drive you wish to partition."

Linux has a different naming scheme for disk drives. All devices, including disk drives, are listed in a directory called "/dev". IDE hard drives -- the most common type -- start with the letters "hd". The first hard drive will be "a", the second "b", and so on. Each partition on a drive gets a number, starting with "1". So Linux would refer to the first partition on your first hard drive as "/dev/hda1", and would refer to the whole first hard drive as "/dev/hda".

The command we're looking for, assuming you have an IDE drive, is: parted /dev/hda.

This will bring you to a new command line with a prompt like this:


If you hit enter, type "?", or type "help" at this point, you'll get a list of all the parted commands, like this:

Let's assume we want to shrink our partition down from 10 Gigs to, say, 4 Gigs. Then we want to resize minor partition number 1, starting at the beginning, and ending at 4000. The command would look like this:

(parted) resize 1 0 4000

That's all you have to do.

You may see some warning messages appear when running parted that have to do with either small discrepancies in the way Windows and Linux measure disk size, or that have to do with moving Windows system files. In our experience, these warnings can safely be ignored.

If you reboot your computer at this point, Windows 98 will come up just as before, and all your programs and files will be intact. The only difference you'll notice is that Windows now thinks it has a smaller hard drive:

You're now ready to start installing Debian.

Installing the Base Debian System

Most computers today have a BIOS configured to support bootable CDs. If your computer supports bootable CDs, then all you need to do is insert the Debian Potato CD in the drive, and reboot your computer.

If your computer does not support bootable CDs, then you'll need to create a Debian boot floppy. You'll use the same Rawrite program you used to create the parted floppy. You just need to point Rawrite at the Debian boot floppy image instead. You'll find this on the Debian CD. The path should be something like D:\foo.

Make sure your Debian CD is in the CDROM drive. Whether booting from the CD, or a boot floppy, you should see a startup screen like this:

At this point you can simply hit enter. Indeed, you'll be prompted on several basic points about your system at the beginning of the install, for which it's generally safe to select the default by hitting enter.

You'll find that Debian's install script uses a few simple conventions for navigation. This is a curses-based installation script. That's a fancy way of saying that the script uses the full screen, and has the concept of a cursor, but not the concept of a mouse. "Curses" is the library within Linux that provides this capability. On any given screen you can usually navigate between selections by using the tab key, or the up or down arrow keys. Hitting enter makes a particular selection.

You'll also find that Debian's install script will repeatedly ask you what medium you want to install from, and which sources you want to install from that medium. For purposes of this article, we will always be installing from CD, and we will always be installing from the stable main archive. If you find this repeated query for the same information annoying, you're not alone. Just remember that this structure does give Debian the capability to mix and match between install sources, a flexibility you'll appreciate if you ever have to install without a CD.

Once you start the actual install, you'll see the Release Notes:

You'll be asked to select your keyboard type (English, QWERTY, most likely):

The first point where you'll have to provide more than default information will be with partitioning. You'll be presented with the option to partition a hard drive:

What the heck is LILO? You'll wonder this at several points in the install; this is the first point where this question comes up. LILO is the "LInux LOader", the program that actually will be managing your computer's boot process after Linux installation is complete. Boot loaders reside on a special sector on the hard drive known as the Master Boot Record. Your BIOS knows to pass control to whatever program is in the MBR when the BIOS has finished with its tasks. It is up to the MBR program to know where to find the boot code for the operating system on your hard drive.

We'll be replacing the Windows boot process with LILO. We do this because the Windows boot process only knows how to boot Windows. LILO, on the other hand, knows how to boot between any of several operating systems, including both Linux and Windows.

So when asked if we want to make Linux bootable from the hard drive, or when asked if we want to install LILO on the MBR, we'll always want to say yes.

Debian's install will take you from here into a program called cfdisk. cfdisk, like parted, is used for creating partitions. cfdisk's command line interface even looks somewhat like parted:

You'll need to create two partitions. One of these will be a regular Linux partition, on which Debian will be installed. The other will be a swap partition. A swap partition simple means disk space to which information stored in RAM can be temporarily moved when the system needs to free up RAM. Think of it as using the hard drive as an emergency RAM supplement.

Create the swap partition first, and put it after the Windows partition on your disk. In cfdisk this means using the arrow keys to move the cursor down to the area marked free space, and then using the tab key to move through the commands at the bottom of the screen until you reach the "new" command. Then hit enter.

This will bring up a menu of file system types, where each entry on the menu has a name and hexadecimal number associated with it. You select a file system type by entering the appropriate hexadecimal number. Note that the menu is actually two screens long, and that you can get to the second screen by hitting the space bar. Linux swap is on the second screen, and has number 82 associated with it:

Asking two Linux gurus what size to make a swap partition is akin to asking a Red Sox and a Yankees fan what the best team in baseball is. Religious wars have started over less contentious topics. Our opinion, and we know that other views vary, is that your swap space should be twice the amount of RAM you have up to a maximum of 128 Megs of swap. So if your computer has 128 Megs of RAM, make swap 128 Megs. If your computer has 32 Megs of RAM, make swap 64 Megs. And so on.

Once you've added the swap partition, you'll need to again toggle down to the free space listing, and select new. Now you'll be creating a regular Linux partition (hex number 83) to fill the remainder of your hard drive.

Once you've created these new partitions, you need to explicitly write the partition table to your hard drive. Otherwise, these changes will not take effect. So write the partition table, and then exit cfdisk.

You'll be returned to the Debian install script. You'll be asked if you want to initialize a swap partition, and you should say yes.

You'll then be asked if you want to initialize a Linux partition. You should say yes. This means that you're going to create a directory on the file system where your Linux partition where be mounted, in other words a directory where information on that partition can be accessed. You'll want to make this the root directory: "/". You'll be asked about 2.0 file system compatibility. The choice is not critical here, but unless you're upgrading an older Linux system, there's no reason to worry about maintaining older compatibility:

When the install script initializes a partition, it will ask you if you want to perform a bad block scan. This is basically a physical check of the disk surface for areas that are damaged or otherwise unusable. There shouldn't be any, and a block scan will probably be the most time consuming step in the install process, especially on a large hard drive. You should do this scan anyway. Performing this one time at setup will enable Linux to write data only to safe areas of the disk in the future. It's a one-time hassle with a lot of benefit.

Notice that Debian generally presents you with a default choice for next step in the install process, and an alternate choice. We'll almost always be selecting the defaults. Once you've initialized your Linux partition, however, we want to select an alternative: mount a previously initialized partition.

Linux is capable of reading and writing information in the Windows VFAT file system format. This means that we can access information on the Windows partition of the hard drive even when we're running Linux. But to facilitate this capability, we'll need to initialize the Windows partition.

So select "mount a previously initialized partition" and create a directory name where your Windows partition will be accessed. A name like "/win98" or "/windows" will do just fine.

You'll now need to install the operating system kernel and modules. For a great many systems you'll be able to simply select the defaults here. We're assuming a CD install:

Configuring device driver modules will be necessary if you have a network card, a sound card, a printer, or other devices besides the base hardware of your system. For example, if you want printer support, you'll find the printer module under miscellaneous modules. You'd select miscellaneous, scroll down the module list until you see "lp", and select that module to be installed. You'll be prompted to enter parameters, but for most modules the parameters can be auto-detected, so no parameters need be entered. You should see an "installation succeeded" message, in which case you can return to the modules menu and install other modules as needed.

If you get an "installation failed" message you'll need to look up the I/O memory address and IRQ settings for that device in your system. This information should be on the checklist you prepared ahead of time. You might find, for example, that to get a particular ethernet card recognized you need to explicitly enter in something like:

io=0x280 irq=7

Configuring and tuning your kernel and modules, though, is an intricate process you'll probably want to investigate after you have your system up and running. It's beyond the scope of this article, but it is a topic we cover in depth elsewhere. In fact, it was the subject of our Live! event at Atlanta Linux Showcase this fall.

The install script next presents you with a simple menu to select the time zone in which you reside.

You'll next be asked whether you want to set your system clock to local time or Greenwich Meridian Time (GMT). Windows has difficulty understanding GMT, so on a dual boot machine you'll probably want to select local time. The exception to this would be on a laptop, where you'll have problems keeping the clock straight in suspend mode unless you use GMT.

The install script will then present you with some options about how to set up the boot configurations for your computer. We're assuming this will be a dual boot machine with LILO managing the boot process that will let you choose between booting Windows and Linux. Dual boot can be handled in other ways, but this is the most straightforward approach. So have LILO installed on the Master Boot Record for the hard drive, not just the boot sector for the partition.

You'll be asked whether or not you want to make a boot floppy disk. This is a good precaution, even though you'll normally be booting directly from the hard drive. In the event of problems -- we've seen Norton Antivirus treat LILO as a virus, for example -- you'll be able to boot the system and make corrections using the boot floppy.

The system will reboot at this point. Be sure to remove your Debian CD before reboot, or the install script will start over from the beginning.

Linux is a secure, multi-user operating system. This means that you must explicitly log on to the system to use it, and you must do so as a particular user (no, you cannot do the Windows trick of simply hitting the escape key when confronted with a user name/password logon prompt). Different users on a Linux system have different privileges. One user, the "root" user, has all privileges, while end users have more restricted capabilities. End user accounts are typically set up to enable users to run programs, view and edit files, but to deny users the ability to modify system configurations or install new programs that would have system wide impact.

This stage of the installation script will take you through the basics of setting up users and password security. At a minimum you must create the root user. We strongly advise that you log in as root only when you have system maintenance to perform. You should create an ordinary end user account that you will use for your daily activity. Not only will this make your system more secure, but it will spare you the flames and taunting of more experienced Linux users who cringe every time they see "root@" in an email header or IRC host.

Originally Unix passwords were stored encrypted in a plain text file readable by anyone (this is /etc/passwd on your system). Today Linux relies on further levels of encryption to ensure password security. You'll be prompted about two possible such systems to use. MD5 is one:

Shadow passwords is the other:

Our personal preference is to use shadow passwords and not MD5, but opinions on this matter vary widely. The main point is that you should install at least one of these two.

You'll next be asked to choose a password for the root user:

The screen will not display what you type, but you will be prompted to retype it in order to verify that you typed what you think you did.

Proper password selection is another of those topics that can inspire debates of near religious fanaticism among Linux users. Bear in mind that most PCs today are easily capable of grinding through every word in the dictionary, or even a combination of two or three words, in an automated process of password guessing. Chain together several PCs working on a security exploit, or a more powerful computer, and devising an unguessable password becomes a serious challenge.

There are some simple guidelines to follow. Unlike some passwords, Linux passwords are case sensitive. Use this to your advantage, and include a mix of upper and lower case characters. You can -- and should -- also include numbers and punctuation. The result should be something that does not contain any English language words, but should also be something you can easily remember, and that someone who knows you could not readily guess.

Here are a couple of examples:

You'll next be prompted to create an ordinary user account:

We strongly recommend that you do this. You should use the same security guidelines in selecting a user password as you do in selecting a root password, and do not make them the same password.

You'll next be prompted about the need for PCMCIA modules:

You'll need this only if you're doing a laptop install and your CDROM drive is attached to the laptop via a PCMCIA card.

Selecting and Installing Packages

An operating system is nothing without applications to run on top of it. Debian applications are stored in packages that contain information necessary for the Debian package management system, dpkg, to keep track of all the packages and package dependencies on your system.

The front end to dpkg is a program called apt. Apt needs to know a little about what you want to install, and from where. So you'll be asked to select the install source for apt:

Apt is a vital part of any Debian system, and a device you'll grow to appreciate as your system evolves. You'll note that one of the options for apt configuration is http. This will enable you to point apt at the Debian website, and, assuming you're connected to the Internet at the time, install or update a package simply by issuing the "apt-get install" or "apt-get upgrade" command. The rest of the process should, and usually does, work seamlessly in the background.

For now, however, you'll want to direct apt at your CDROM drive as the source for packages. Once we've completed installation and made a couple of modifications at the end, you can reconfigure apt to point to a Debian website mirror, giving you an easy online method for upgrading and modifying your system.

You'll next be asked to choose between simple and advanced configurations:

Especially if you are new to Linux, but even if you are new to just Debian, you really want to pick "simple". The simple installation means you'll be doing somewhat more work with apt after installation to add additional packages or remove some unwanted ones, but this is a relatively minor amount of additional overhead. The "advanced" install will take you directly to Debian's older install method, dselect. Unless you enjoy scanning through several thousand package descriptions using an obtuse text based interface, we recommend you avoid dselect.

The simple install takes you to a menu that lets you select groups of related packages to install:

You can get an exact listing of the packages selected by moving the cursor to a package group and entering "i". This brings up an informational screen with a more detailed description of the group, and a listing of each package in the group.

We recommend selecting any package associated with Gnome, and any package associated with the X Window System. This will give you an easy-to-use graphical workstation with great Internet capabilities, which is exactly what most users are looking for.

Traditionally one of the most challenging parts of Linux installation has been the X Window System, usually referred to simply as X. X is what frees you from the command line and gives you a modern graphical interface in which to work. Getting X to function properly, however, requires proper configuration to coordinate your video card with your monitor.

These days X configuration is a greatly simplified task. Indeed, if you have a graphics card well supported by Linux, and a well-documented monitor, then Debian's configuration tool, anXious, should be able to walk you through the process with no trouble:

With a 17" or greater monitor, and a recent video card, you should be able to achieve very high resolutions (perhaps 1600 x 1200 pixels) and true color depth (32 bits per pixel, or bpp). Don't be disappointed if you can't tune your system to this level of performance initially, however. You'll get a usable amount of screen real estate and high quality screen color if you can get 1024 x 768 pixels, and 16 bpp.

X configuration is a subtle and complex topic, one worthy of an article in its own right. We'll be bringing you that article soon. Here we'll walk you through the steps involved if you know what video card and monitor you have, you know the settings for your monitor, and both are well-supported under Linux.

AnXious will probe for your video card, and report what it finds. It will then ask you to install fonts. Unless you're short on disk space, install both 75dpi and 100dpi fonts. You'll be asked about a terminal emulator. The default choice of xterm should be fine, and in fact you won't need a terminal program for the balance of this installation.

By itself, X does very little other than provide the capability to render graphics on screen. The actual drawing of windows, menus, and icons, and the management of those graphical objects, is done by a program called a window manager. A simple but popular choice is Window Maker, indicated on the install script here by wmaker. We'll assume you've made that selection later in this article.

Many Linux users boot their systems directly to the command line interface, and go to X only as needed. This may be a bit of a shock for Windows users used to a full time graphical environment. We recommend, therefore, that you install xdm, the X Display Manager, which will start X automatically for you and bring you to a graphical logon prompt when you start the system.

You'll next be prompted for mouse type. The most common type today is PS/2, and unless you know otherwise, that's probably what you should enter. If your mouse has only two buttons, you can opt for three button emulation. This will make holding both buttons down simultaneously emulate the effects of clicking on a third button.

If you've selected PS/2 as your mouse type, then the Linux device for that will be /dev/psaux. You should enter this information when prompted.

Probably you have a standard US keyboard, and should enter that selection accordingly.

You're next going to be prompted for several pieces of information about your monitor and video card. Be sure you have that documentation handy, and enter accordingly. For vertical and horizontal synch ranges, pick the range that most closely fits your specs, or select "custom" and enter the exact range from your monitor documentation. Enter in the appropriate memory value for your card. You're unlikely to need a clockchip setting with today's video cards, so enter "none" at this prompt, and at the next prompt do not probe for clock settings.

You should try to set the default color depth to 32 bpp, as this will give you "true color" (to use the Windows term) graphics. You'll want a default resolution of at least 1024x768, and should probably pick a higher resolution. Note that if your computer can't actually support the color depth and resolution you select, it will opt out to the highest supported settings it can find. So a bit of guesswork here won't do you any harm. Just make sure that 1024x768, 800x600, and 640x480 are selected as "supported resolutions".

You'll next be prompted to create the X configuration file. If all has gone well, X should be successfully configured and ready to install at this point, with Window Maker set up as your default window manager.

At this point the install script has all the information it needs to begin setting up your system. There are a couple of package specific configuration questions you'll be asked, but at this stage your computer will begin churning away at package installation:

This process will take anywhere from ten minutes to an hour or more, depending on the speed of your processor, amount of RAM, and available swap space. A machine of recent Pentium vintage with at least 64 Megs of RAM should be able to complete this stage in less than half an hour.

You'll be prompted to answer a few questions along the way, and the only series of questions that requires anything other than the default answer is mail configuration. Debian uses a program called exim as its default mail handler. To understand the significance of these questions, you'll need to understand a little about how email works.

Email requires three separate functions: it must be transferred from the system of origin to the destination; it must be distributed on the destination system to the correct user; and it must be viewed by an email client. Some programs perform more than one of these functions. Netscape, for example, can be not only an email client, but also used to retrieve mail from a server, meaning it can do some of the transfer and distribution work. Linux has several programs, like Fetchmail and Popclient, that can also be used to retrieve mail, and numerous email clients, like Elm, Pine, and Mutt. Most clients (Pine is the exception) need to know of a mail server when sending mail that they can hand mail off to for transfer. Typically your ISP has such a server and provides you information about using it when you sign up for your dial-up account.

Exim is a mail transfer agent. It knows how to transfer mail to, and receive mail from, another mail server. It also knows how to distribute mail to users on a system. While exim isn't strictly necessary on a Debian machine connected to the Internet by dial-up, it nonetheless makes a useful backup for an ISP's shortcomings, and it helps when other programs you might install assume you have a functioning mail transfer agent installed. So setting up exim isn't absolutely required, but it is a very good idea.

You'll be presented with five general choices for exim configuration. Note that option 2 says "this is probably what you want for a dialup machine." Select this option.

For visible mail name, other names, relaying, IPv6 support, and RBL support you can simply choose the defaults.

You'll be prompted for a smart host. This is your ISP's mail server. If your ISP is "foo", this will probably be something like, or

For postmaster-mail enter "none". This is not an ideal choice, but until you're more familiar with Debian it will spare you from having your mailbox filled with arcane system mail.

You'll be asked to confirm the choices you've made. That's it. The rest of package installation should proceed without a hitch until you're prompted about X servers. Say "no" to the vga server as the default, and "yes" to the svga server as the default.

When you see the message "Press enter to continue" you've completed package installation.

Configuring the System

What do you do now?

Relax. You've now completed your installation of Debian. You have a fully functioning version of Debian GNU/Linux on your computer. Of course you have a little configuring left to do, to make the system do the things you want. Specifically, we're assuming that this is a dual boot system to be connected to the Internet by dial-up. So we'll need to configure the boot process to recognize Windows and give you a choice of boot options. And we'll need to set up and configure a dial-up program so you can connect to your ISP. The latter will also give us a look at how package installation and upgrade works.

What you're being presented with is a login prompt. Normally you'd log in as an ordinary user to do routine tasks. Right now, however, we want to perform system maintenance, so you should log in with user name "root" and the root password you selected during installation.

System configuration in Linux is accomplished using plain text files. Most of these files reside in the /etc directory. Tinkering with configuration is a matter of editing these files, which means you'll have to familiarize yourself with a text editor. For experienced Linux users, this usually means settling on one of the venerable workhorse editing programs, either emacs or vi. Experienced Linux users also get comfortable using a terminal window and working from the command line. A terminal window, such as xterm, eterm, or gnome-terminal, opens up a window to the command line interface within X's graphical environment. Think of it as like opening up a DOS shell in Windows.

Beginners, however, may want something a little simpler. In fact you can accomplish all the basic system management tasks you're likely to need to do with just three very familiar-looking tools: GMC, Gnome-run, and Gnotepad.

Most Windows users are familiar with point and click graphical editors, and Linux has these too. If you've followed all the install steps up to this point, you should have the Gnotepad editor installed; it will present an interface very much like Windows Wordpad or Notepad.

Most Windows users are also familiar with the "run" box off of the Windows "Start" menu. This opens up a dialog box that lets you run a single Windows command. Gnome-run provides this same capability within X.

Finally, most Windows users are familiar with Windows Explorer as a simple point-and-click file navigation program. GMC provides this same style of interface as a file manager within X.

Available programs under X can be accessed from a menu, just as in Windows. Instead of anchoring that menu to a "start" button, however, you'll access the menu by pointing the cursor at the desktop and clicking once with the right mouse button.

Under Apps -> Tools you'll find GMC. Under XShells you'll find gnome-run. Once GMC is running, you can edit a file by putting the cursor over the icon for that file, clicking once on the right mouse button, selecting "open with" from the resulting menu, and then selecting gnotepad from the application list.

To set up your system for dual boot, run GMC. Select the folder marked "etc" and find the file icon for a file called "lilo.conf" in the right hand window of GMC:

Right click on this icon, and select "copy" from the menu. This should bring up a dialog box with "/etc" in it. Append this to read "/etc/lilo.old", and click OK.

You've now made a backup copy of lilo.conf, the configuration file that LILO uses to determine how to boot your system. This is an important step. We're about to modify that file, and should anything go wrong, you can restore the original version from backup.

Now once again find the lilo.conf icon and right click on it. This time select "open with" and select Gnotepad from the application list. This will open up lilo.conf for editing in Gnotepad:

What we have to do is actually quite simple. We need to instruct LILO to prompt us for a choice of operating systems, and we need to add a system entry for Windows. The first part we accomplish by adding a line that simply says "prompt" at the top of the lilo.conf file.

You'll note a line that says "default=linux". This means that the Linux boot sequence has been labelled Linux, and is the default if no other action is taken when LILO starts up. We need to label an alternative for Windows, and tell LILO where to find Windows on your hard drive. We can do that with two lines. Assuming you have an IDE hard drive, the two lines would be:


This setup means that when LILO initiates the boot process it will give you a prompt like this "LILO:". It will then wait for you to type in either "linux" or "win" and will boot either Linux or Windows accordingly.

Once you've made these additions to lilo.conf you should save these changes and exit Gnotepad. You now have one more vital step to take.

Changing lilo.conf is all very well and good, but you must also alert LILO that its configuration file has changed. You can do this by opening up gnome-run, typing "lilo" into the dialog box, and then selecting run. Unless you have a perverse desire to learn about Linux rescue disks, you must run lilo to update changes every time you make a change to lilo.conf:

You now have a dual boot system set up.

A Brief Glimpse at Debian Upgrading

Linux offers an abundance of dial-up programs. One of the most robust and easiest to use is a program called wvdial. If you've followed all our steps so far, wvdial is not yet installed on your system. You're just a couple of short steps away from having it installed and configured, and having an Internet-ready Debian system.

Put your Debian CD in the CDROM drive. Then open gnome-run, and enter "apt-get install wvdial". Open gnome-run again, and enter "wvdialconf". You've now installed wvdial, and set up a basic configuration file for it.

You'll need to adjust the base configuration file. In GMC, find the file /etc/wvdial.conf. Open this file with Gnotepad. You'll see that it has lines for phone number, user name, and password. You'll need to enter in your ISP's dial-up number here, the user name your ISP has assigned you, and the password your ISP has assigned you. Then save the file and exit.

You should now be able to connect to your ISP simply by opening gnome-run and typing in "wvdial".

Right now your Debian system is set up to recognize the Debian CD as its source for installation and upgrade. For the time being, as you learn your way around Debian, that's probably fine. If you discover a new package you want to install, just pop in the CD and run "apt-get install" followed by the package name.

At some point, though, you'll want to start upgrading to more recent versions than the CD provides. This means grabbing updates off the Debian website. First, you need to get apt to recognize the Debian website as its source.

In GMC, find the file /etc/apt/sources.list and open it with Gnotepad. You'll notice a number of lines in this file that begin with "#". This is the conventional symbol in Linux for a comment statement, in other words a statement that is human-readable but machine-ignored. If you live in the U.S., you'll want to remove the "#" from the beginning of this line:

#deb stable main contrib non-free

If you live outside the U.S. you'll want to remove the "#" from the beginning of this line:

#deb stable/non-US main contrib non-free

In either case you may now add a "#" to the beginning of the line that begins "deb cdrom".

Now to install packages, you'll need to be connected to the Internet. Otherwise, the procedure is the same: run "apt-get install [package]".

To upgrade packages, you'll need to do a couple of things. Periodically, you'll want to run the command "apt-get update". This will update your system database about what the current versions of packages are. You can then upgrade a package whenever you're connected to the Internet by simply running "apt-get upgrade [package]".

Congratulations. You've successfully entered the community of Debian users. It's a rich and complex world, but it has much to offer, and you now have the tools to safely explore it on your own.

About the author: Mark Stone is Director of Developer Services at OSDN, the Open Source Development Network. He is a self-proclaimed Red Hat user, but is beginning to think that Debian just might have met his standards for ease of use.

This article is made available under the terms of the Open Publication License. You are encouraged to comment on it, and to make your comments available for future versions of this article. Like software, documents serve the community best when they are open and living documents.

Version: Thu, 19 Oct 2000 09:32:57am

Thanks to Mark Stone for letting us publish this article on our web site. The original article can be found at