The Installer

Upon first boot of the install disc, you'll be presented with an option to choose what kernel you'd like to use. The kernel is the part of the operating system that scans the hardware in, and attached to, a computer so that drivers may be loaded, which enables you to interact with that computer. Once all of the drivers are loaded, the OS initialises an interface: a text shell (in modern computing, there is an expectation that the text interface to a computer will be concealed by a Graphical User Interface, but Slackware defiantly defaults to plain text). Slackware's default kernel is an all-purpose one (called the Huge kernel) that should detect all modern (and most legacy) hardware.

To continue the boot process with the default kernel, press RETURN or ENTER.

The next screen verbosely explains how to go about installing in three easy steps:

  1. Log in as root
  2. Partition your drive(s)
  3. Type in setup and follow the prompts

And it really will be as simple as that.


Log in as root by typing root and pressing RETURN. That's the first step done.

Partition Your Hard Drive(s)

Despite what the packaging might say, hard drives are not very smart. They do not care what operating system you use them on, they do not care how you store data on them. They are just storage media.

The most convenient (but not the only) way we have devised, so far, to store data on a hard drive is by putting bits into what we call a “filesystem”; that is, a common system that the computer knows to use in order to read and write data, a bit like a secret decoder ring, or an index. As the term suggests, it is a system for dealing with files.

Usually, we use a “partition” to provide a filesystem with boundaries. You might have seen this before, if you have ever had a computer with a rescue partition: one harddrive with a mostly invisible slice partitioned off so that in the case of an emergency it can boot to a clean rescue install image.

The first step in preparing a drive for an operating system is to partition it. Slackware itself will take care of creating the filesystem, later.

Slackermedia assumes that you are using new drives, or at least drives that you have already backed up, because everything in this section will destroy any existing data on the drives. That is the intent. Do not follow this section verbatim if you have valuable data on your drive that you do not intend to erase.

The way Linux sees hard drives is by identifying what controller they are connected to on the motherboard, and then by assigning a letter to denote the order in which they were detected. The prefix for a hard drive is sd (for historical purposes). So the identifier for the first hard drive on a system would be sda, and the second drive would be sdb.

You can verify what drives Linux finds by looking in the device, or /dev, directory. You can see this by typing this:

# ls /dev/sd?

Do not type the # mark; that just represents the root prompt on your screen.

However, the question mark is literal; type exactly sd?

On a laptop, you probably only have one drive, so the result will likely be /dev/sda but a desktop can (and arguably should) have multiple drives, so results might be /dev/sda /dev/sdb /dev/sdc, and so on to the last drive.

Whether you have one or three or more drives, each drive must have a partition in order for an OS to be installed.

Mistakes are easy to make. Disconnect any drive that you do not intend to erase while you create partitions, just in case you type in the wrong drive and erase something you did not mean to erase.

In other words: only the drives you intend to erase should be attached to your computer, to prevent accidental data loss.

To create an MBR (for use with BIOS or UEFI-in-BIOS-mode) partition label (replace sdX with the appropriate drive identifier, and do not type the # mark, which is your Linux prompt):

# parted /dev/sdX mklabel msdos

If you require or prefer a GPT partition for use with UEFI (replace sdX with the appropriate drive identifier):

# parted /dev/sdX mklabel gpt

And then create the actual partition boundaries. To do this, you must know the size of your drive:

# parted /dev/sdX print | grep Disk

If you want hibernation support, then you need to make one partition for your operating system and personal data, plus one partition for hibernation (called a swap partition). Swap space should be a little more than the amount of RAM you have in the computer. Assuming you have a 2TB drive and are reserving 16GB for swap:

  # parted /dev/sdX mkpart
  primary 1 1984000
  # parted /dev/sdX mkpart
  primary 1984000 -0
  # mkswap /dev/sdX2

If you are using multiple drives, then you should only make a swap partition on one non-SSD drive. You do not need swap space on each physical drive.

On old systems, swap space was a necessity in the event that you ran out of RAM. This is less of an issue now that RAM is relatively cheap, so if you have heaps of RAM then you probably do not need swap space. If you are using a desktop and do not require hibernation, or you just don't anticipate needing hibernation, then you can opt to forsake the swap partition and just create a single partition that spans the entire drive:

  # parted /dev/sdX mkpart
  primary 1 -0

Do this for each drive that you want to use in your system.


Type in setup to open a rudimentary GUI interface for the install menu. The first selection is to read the HELP section. If you have never used an ncurses interface, read up on how to navigate the menu in front of you.

The next option, KEYMAP is optional. Use it if you have a non-US keyboard.

ADDSWAP may also be optional, depending on whether you added a swap partition to your drive. If not, skip it. Otherwise, enter the install process here; the installer should detect your swap partition, so let it add the partition to the system layout and continue.

Set the destination for the OS install with the TARGET menu item. If you are on a single-drive system, the one choice is obvious: add the one partition available as the target.

If you are using an SSD drive for your applications, then you will need to add both drives as targets and specify the mount points of each.

The mount point for your standard drive should be /, which is the Unix notation for the “root” of the filesystem; the top-level directory into which all other data is placed. This means that all system data, including your personal data, will be stored in directories within the root directory. To place your user applications on the SSD drive, define its mount point as /usr/bin, which will ensure that all user-oriented applications will be placed onto the very fast SSD drive.

The installer will offer to format each drive for you. It is usually safe (and quickest) to perform a standard Format with no bad block checking. Use ext4 or jfs for your filesystem type.

Slackermedia recommends jfs solely based on experiential data. In some ways, it has fewer features than something like ext4 but it is a good, stable open source filesystem that is useful on both SSD and standard drives, and it is backed by IBM and used by IBM on large amounts of data in very large data centers. It makes the most sense for Slackermedia, and has successfully powered Slackermedia machines that are in production for years (including one that is exclusively SSD).

If you anticipate requiring re-sizing your filesystem at some point, then ext4 is a superiour choice. If you know Linux well and have some other reason to prefer ext4 or xfs or some other filesystem type, then use your better judgement to build your system.

Once your drives are formatted, select the source of the installation.

Presumably you are installing from a DVD, so select the first option. Allow the installer to perform an automatic scan for the disc. (This option probably seems odd to you, but there are several ways to install Slackware Linux, and so this menu is actually very useful for advanced installs. However, unless you are an expert, there is no real need to perform anything but a standard install from the boot disc).

Next, you must choose the packages that you want to install. By default, all but the internationalisation files for the desktop are selected. You may activate the internationalisation package set if you want a non-English desktop, otherwise it is safe to leave it deactivated.

The next menu confirms that you wish to perform a full and automated install of all package sets. Slackermedia only supports a full install. If you turn any other package set off, you risk unexpected incompatibilities. The full install is not large compared to the standard install of other operating systems, and yet you get an amazing amount of software, development headers, libraries, and tools. In short, install everything.

Uncompressing and copying thousands of installable files takes time. You can use this time for a coffee break, but if you're very new to Linux, then watching the installer may prove interesting, just so that you get some idea of what gets installed on a fully-featured operating system.

Once all packages have been installed, you have the opportunity to create a USB boot loader disc. It is safe to skip this step on modern hardware; if anything goes wrong, you can generally perform a rescue with your install disc.

In order for your computer's BIOS or UEFI to pass control over to an operating system, it must know where that operating system is located. On the commercial computer systems that you buy, this is hidden from the user, presumably to give the appearance that the OS is the computer. On Linux, this functionality is exposed so that the user can intercept the boot process as needed. The software that governs this is known as a boot loader.

The boot loader that Slackware uses is called LILO and should be installed to the MBR (master boot record). From a user perspective, it just amounts to a menu at boot time that lets you choose what drive or OS to boot into. Since Slackermedia recommends having only one OS, this menu is surplus to requirements, but since it is necessary for the boot precess, and not a bad tool to have around for troubleshooting, installing it correctly is important.

If you are using BIOS or UEFI-in-BIOS-mode, you can use the simple option of letting the installer auto-detect your settings, and then configure and install LILO for you.

If you are using UEFI with GPT partitions (which you will probably only do if you have a drive that is larger than 2TB), then choose to skip this step for now. A manual eLILO install will be performed after the install.

Next, choose a resolution for your monitor. On modern LCD panels, the highest quality is probably safe, but if you are using old monitors then stay with the standard option.

This resolution does not affect the GUI; that will be auto-detected when you start the desktop. This resolution setting governs the initial text console.

The next few prompts are well documented onscreen, so read the info provided and continue with the install until you are prompted to configure GPM. This defaults to Yes but it is safe to choose No if you do not anticipate using your mouse in a text-only console. If you are unsure, choose No.

Configuring the network is the next major option that deserves some special attention. You certainly want to configure your network. The first field is for a hostname for your computer. You can give your computer any hostname you like, but short and simple is usually better. Many sys admins have a complex naming scheme (ie, name all computers in one department after famous spaceships, all computers in another after sea animals, and so on) but for personal use, you can use anything you please, and unless you intend to set up and use internal DNS, you will probably never actually use it directly.

The next field is a domain name. Again, unless you actually intend to set up a complex intranet, you will likely never use this directly and you can provide it with any string you please. An example would be slackermedia.local, or you can use your own production company's name, or anything. Again, short and simple is probably best.

Finally, choose how to configure your network. This entirely depends on your network. An in-depth lesson on network design is out of the scope of a book about multimedia workflows, so if you intend to create a complex intranet, you should know how you intend to distribute IP addresses. If you are not sure yet, then choose NetworkManager.

For the sake of complete documentation, here is a summary of each option, plus one that does not appear:

Network Configuration Options

  • static IP: set your own IP address based on either what your sys admin tells you, or what your ISP tells you.

    This is fairly rare for home users, since usually you will have a router or modem between you and your ISP (so the router or modem may have a static IP, or else a dynamic one being managed by the ISP, so that your computers do not have to). Even in large businesses, these sorts of things are often handled by the server rather than on the client side.
  • DHCP: tells your computer to ping a server or router for an IP address. This is very common on home connections, with wired connections. It is also very common on business networks.

    This is not what you want if you use wireless connections to a router (unless you intend to use the wicd network manager).
  • loopback: this could be used if you had no network, or intend to use a dialup modem.
  • NetworkManager: uses the NetworkManager application to dynamically let you decide what connection to use. You can plug in and use a wired connection, or unplug and switch to wireless. You can set static IP addresses, or use DHCP, or VPN, and much more. This is what you expect from a modern computer and is almost certainly what you want on a laptop, and possibly a desktop.
  • Wicd: this is not an option at this stage, but it is an extra package on the install media, which you can install later. It is a more unixy version of NetworkManager, and popular with geeks who want the convenience of dynamically changing wireless networks combined with the option to easily deactivate network management, or who are concerned about simple and modular code.

    To use wicd, choose DHCP for now and install wicd later.

If you do not understand why any of those things are significant, or are confused about what to choose, then you should choose NetworkManager.

Next, you are provided with a list of startup options. This is largely geared toward sys admins, or computer users who like to do sys admin tasks (like reading logs, playing on the network, start up various services, and so on).

Each item that gets started at boot time unsuprisingly adds to boot time, so if you are on a laptop or you anticipate rebooting often, then you should choose no extra services here and in fact can safely deactivate rc.inetd (assuming that you are using NetworkManager, and even rc.syslog. If these are required at some later time, you can easily reactivate them.

Further boot time optimisations will be made later.

The next option is to customise the font used in the text console. It is safe to choose No here.

Remember when you were mucking about with BIOS and UEFI? here is another place where that will pay off: in the next menu screen, you need to tell Slackware whether your system clock is set to local or to GMT/UTC time. If it is set to local, the next screen will require you to define your location. In practise, this does not necessarily matter that much, because you can always set an offset for your clock, or use an NTP server, but it's tidier if you make the effort.

The next screen asks you to set a default desktop. Unlike commercial operating systems, Linux's GUI desktop is treated not as the window into the OS, but as just another application; it can be swapped out with an entirely different one, much as you would choose to use a different web browser, or video player, and so on. Slackware ships with the most robust desktop of them all, KDE, as well as with some alternatives for the adventurous. Slackermedia recommends KDE, because it is flexible and highly configurable, and yet basically just works as-is. If you choose a different desktop, then you will need to do extra configuration that this handbook does not address.

If you are not comfortable with multimedia on Linux yet, then choose KDE to keep things simple and to maintain a set of known variables. You can always launch different desktops in your own spare time, since you have already installed all of them. This menu simply sets the default.

The final (more or less) screen asks you to set a password for the administrator of the computer. The administrator's name is root, no matter what. This is the first user, the primary owner of the computer. Set the passphrase to whatever you want, but do not forget it.

The scripted installer process is now over.


Whether or not your job is done depends on whether or not you are using UEFI. If so, then you skipped the LILO boot loader install, so if you were to reboot now, you would have no way of getting into your OS without a rescue disc. If you did accidentally reboot before reading this paragraph, then reboot using your install media and follow the instructions for recovering a lost password, and then return here.

Exit out of the installer, and use this command to enter your freshly installed system:

# chroot /mnt

This changes the root directory from being the install disc to being the root directory that you defined whilst installing. So now you can operate on your system before actually booting into it.

To configure the boot loader, use the nano text editor, which runs as a semi-graphical application within the text console:

# chroot /etc/lilo.conf_example

Midway through this file, you will see several VGA options. Below that section are several examples of what valid boot loader congfigurations might look like. You can use one as a starting point, creating an entry that looks like this:


The location of your root partition may differ, depending on how you installed the system. Generally, it will be the partition into which you chroot'd.

For more information on creating EFI and UEFI systems, see

When you have finished editing, press control+o to “write Out” the file. In the buffer that appears near the bottom of the screen, rename the file to lilo.conf

Press control+x to exit.

Now run lilo to instantiate the configuration.

# lilo

The Big Reboot

It is now safe to reboot the computer. The best way to do that is to press control+alt+F2 to log back into your install media. Login as root again, and then issue this command:

  # reboot

This reboots your computer. Make sure that the install media is ejected so that your BIOS or UEFI does not boot back into the installer.

Now that you have installed the OS, your next step is to set up your user environment.