This document is a derivative of the Slacbook:install and Slackbook beta. The aim is to produce an evolution and contribute it back to the original work.


Slackware’s installation is a bit more simplistic than that of most other Linux distributions and is very reminiscent of installing one of the varieties of BSD operating systems. If you’re familiar with those, you should feel right at home. If you’ve never installed Slackware or used a distribution that makes use of a non-graphical installer, you may feel a bit overwhelmed at first. Don’t panic! The installation is very easy once you understand it, and it works on just about any x86 platform.

The latest versions of Slackware Linux are distributed on DVD or CD media, but Slackware can be installed in a variety of other ways. We’re only going to focus on the most common method - booting from a DVD - in this book. If you don’t have a CD or DVD drive, you might wish to take a look at the various README files inside the usb-and-pxe-installers directory at your favorite Slackware mirror. This directory includes the necessary files and instructions for booting the Slackware installer from a USB flash drive or from a network card that supports PXE. The files there are the best source of information available for such boot methods.

Starting with the 14.1 release, Slackware ISO images (both the ones available online as well as the discs sent out from the Slackware store) have been processed using isohybrid. This allows them to be written to a USB stick, which can then be booted and used as the install source.

A HOWTO on setting up a PXE boot server right off a Slackware installation medium (DVD or USB Stick) is available in this separate article: Out of the box Slackware PXE Server


Booting the installer is simply a process of inserting the Slackware install disk into your CD or DVD drive and rebooting. You may have to enter your computer’s BIOS and alter the boot order to place the optical drive at a higher boot priority than your hard drives. Some computers allow you to change the boot order on the fly by pressing a specific function key during system boot-up. Since every computer is different, we can’t offer instructions on how to do this, but the method is simple on nearly all machines.

Once your computer boots from the CD you’ll be taken to a screen that allows you to enter any special kernel parameters. This is here primarily to allow you to use the installer as a sort of rescue disk. Some systems may need special kernel parameters in order to boot, but these are very rare exceptions to the norm. Most users can simply press enter to let the kernel boot.

{{< scr “/scr/boot_message_isolinux.xhtml” >}} Boot message {{< /scr >}}

You should see a lot of text go flying across your screen. Don’t be alarmed, this is all perfectly normal. The text you see is generated by the kernel during boot-up as it discovers your hardware and prepares to load the operating system (in this case, the installer). You can later read these messages with the dmesg(1) command if you’re interested. Often these messages are very important for troubleshooting any hardware problems you may have. Once the kernel has completed its hardware discovery, the messages should stop and you’ll be given an option to load support for non-us keyboards.

{{< scr “/scr/keyboard_option.xhtml” >}} Keyboard option pre setup {{< /scr >}}

Entering 1 and pressing ENTER will give you a list of keyboard mappings. Simply select the mapping that matches your keyboard type and continue on.

{{< scr “/scr/keyboard_map_selection.xhtml” >}} Keyboard selection pre setup {{< /scr >}}

Unlike other Linux distributions which boot you directly into a dedicated installer program, Slackware’s installer drops you into a limited Linux distribution loaded into your system’s RAM. This limited distribution is then used to run all the installation programs manually, or can be used in emergencies to fix a broken system that fails to boot. Now that you’re logged in as root (there is no password within the installer) it’s time to start setting up your disks. At this point, you may setup software RAID or LVM support if you wish or even an encrypted root partition, but those topics are outside of the scope of this book. I encourage you to refer to the excellent README_RAID.TXT, README_LVM.TXT, and README_CRYPT.TXT files on your CD if you desire to setup your system with these advanced tools. Most users won’t have any need to do so and should proceed directly to partitioning.


The Slackware installation media comes with tools to partition a hard drive. Usually partitioning a hard disk process is composed of these steps:

How to select which hard drive you want to install on could be a challenge on some machines. A modern desktop or laptop can have multiple devices with different naming.

To list the disks present on a device we can list which devies have been recognized by the kernel like:

{{< scr “/scr/disk_by_id.xhtml” >}} Identify computer disks {{< /scr >}}

Or on a more complex scenario:

{{< scr “/scr/disk_by_id_complex.xhtml” >}} Identify computer disks complex {{< /scr >}}

If the IDs of the decies doest tell you anything, you might want to search for them to identify which disk it might be,

In the comples scenario we can see multiple NVME devices described by their brand and model number.

In this simple scenario (the first one), we select the /dev/sda device and execute the cfdisk program like cfdisk /dev/sda. Then, its UI appears:

{{< scr “/scr/cfdisk_sda_empty_disk.xhtml” >}} Check free space on disk {{< /scr >}}

We need to create a partition on the hard disk to contain our Slackware system. We can see our disk is empty and we can use that empty space to create a new partition. If there is no free space on your disk, the first step is to create free space by deleting used space. This is a dangerous operation, so be sure you don’t need anything from that disk before deleting partitions.

cfdisk will ask how much of that free space we want to assign to a partition when we select the option [New] and press enter.

{{< scr “/scr/cfdisk_partition_size.xhtml” >}} Select partition size {{< /scr >}}

If we plan to install the system boot loader in the boot sector of the partition, we need to mark it as bootable with the correspondent cfdisk menu. When its marked as bootable a * symbols appears under the Boot column.

{{< scr “/scr/cfdisk_partition_bootable.xhtml” >}} Mark partition as bootable {{< /scr >}}

In some situations we might need to create partitions of differnt types, for that we can change a partition type with the [Type] entry of the cfdisk program. We can select more than enought partition types.

{{< scr “/scr/cfdisk_partition_type.xhtml” >}} Change partition type {{< /scr >}}

We everything is done, and we’re satisfied with the disk partitioning, we need to write the changes to the disk, and exit the program using the [Quit] menu.

{{< scr “/scr/cfdisk_partition_write.xhtml” >}} Write partition and exit {{< /scr >}}

The Setup Program

Now that you’ve created your partitions it’s time to run the setup program to install Slackware. setup will handle formatting partitions, installing packages, and running basic configuration scripts step-by-step. In order to do so, just type setup at your shell prompt.

{{< scr “/scr/slackware_linux_setup.xhtml” >}} Write partition and exit {{< /scr >}}


If you’ve never installed Slackware before, you can get a very basic over-view of the Slackware installer by reading the Help menu. Most of the information here is on navigating through the installer which should be fairly intuitive, but if you’ve never used a curses-based program before you may find this useful.

{{< scr “/scr/slackware_linux_setup_help.xhtml” >}} Access setup program help {{< /scr >}}


Before we go any further, Slackware gives you the opportunity to select a different mapping for your keyboard. If you’re using a standard US keyboard you can safely skip this step, but if you’re using an international keyboard you will want to select the correct mapping now. This ensures that the keys you press on your keyboard will do exactly what you expect them to do

{{< scr “/scr/slackware_linux_setup_keymap.xhtml” >}} Select keymap {{< /scr >}}


If you created a swap partition, this step will allow you to enable it before running any memory-intensive activities like installing packages. swap space is essentially virtual memory. It’s a hard drive partition (or a file, though Slackware’s installer does not support swap files) where regions of active system memory get copied when your computer is out of useable RAM. This lets the computer “swap” programs in and out of active RAM, allowing you to use more memory than your computer actually has. This step will also add your swap partition to /etc/fstab so it will be available to your OS.


Our next step is selecting our root partition and any other partitions we’d like Slackware to utilize. You’ll be given a choice of filesystems to use and whether or not to format the partition. If you’re installing to a new partition you must format it. If you have a partition with data on it you’d like to save, don’t. For example, many users have a seperate /home partition used for user data and elect not to format it on install. This lets them install newer versions of Slackware without having to backup and restore this data.

{{< scr “/scr/slackware_linux_setup_partition.xhtml” >}} Select target partition {{< /scr >}}


Here you’ll tell the installer where to find the Slackware packages. The most common method is to use the Slackware install DVD or CDs, but various other options are available. If you have your packages installed to a partition that you setup in the previous step, you can install from that partition or a pre-mounted directory. (You may need to mount that partition with mount(8) first. See chapter 11 for more details.) Additionally, Slackware offers a variety of networked options such as NFS shares, FTP, HTTP, and Samba. If you select a network installation, Slackware will prompt you for TCP/IP information first. We’re only going to discuss installation from the DVD, but other methods are similar and straightforward.

{{< scr “/scr/slackware_linux_setup_select_media.xhtml” >}} Select source media {{< /scr >}}


One unique feature of Slackware is its manner of dividing packages into disksets. At the beginning of time, network access to FTP servers was available only through incredibly slow 300 baud modems, so Slackware was split into disk sets that would fit onto floppy disks so users could download and install only those packages they were interested in. Today that practice continues and the installer allows you to chose which sets to install. This allows you to easily skip packages you may not want, such as X and KDE on headless servers or Emacs on everything. Please note that the “A” series is always required.

{{< scr “/scr/slackware_linux_setup_series_selection.xhtml” >}} Select source media {{< /scr >}}


Finally we get to the meat of the installer. At this stage, Slackware will ask you what method to use to chose packages. If this is your first time installing Slackware, the “full” method is highly recommended. Even if this isn’t your first time, you’ll probably want to use it anyway.

The “menu” and “expert” options allow you to choose individual packages to install and are of use to skilled users familiar with the OS. These methods allow such users to quickly prune packages from the installer to build a very minimal system. If you don’t know what you’re doing (sometimes even if you do) you’re likely to leave out crucial pieces of software and end up with a broken system.

The “newbie” method can be very helpful to a new user, but takes a very long time to install. This method will install all the required packages, then prompt you individually for every other package. The big advantage here is that is pauses and gives you a brief overview of the package contents. For a new user, this introduction into what is included with Slackware can be informative. For most other users it is a long and tedious process.

The “custom” and “tagpath” options should only be used by people with the greatest skill and expertise with Slackware. These methods allow the user to install packages from custom tagfiles. Tagfiles are only rarely used. We won’t discuss them in this book.

{{< scr “/scr/slackware_linux_setup_prompt_mode.xhtml” >}} Select source media {{< /scr >}}

If we select the recommended prompt mode we will see how the program install all selected series of packages and shows information for each package. It could be too fast to read in modern computers.

{{< scr “/scr/slackware_linux_setup_installing.xhtml” >}} Installing packages {{< /scr >}}


Once all the packages are installed you’re nearly finished. At this stage, Slackware will prompt you with a variety of configuration tasks for your new operating system. Many of these are optional, but most users will need to set something up here. Depending on the packages you’ve installed, you may be offered different configuration options than the ones shown here, but we’ve included all the really important ones.

USB boot disk

The first thing you’ll likely be prompted to do is setup a boot disk. In the past this was typically a 1.44MB floppy disk, but today’s Linux kernel is far too large to fit on a single floppy, so Slackware offers to create a bootable USB flash memory stick. Of course, your computer must support booting from USB in order to use a USB boot stick (most modern computers do). If you do not intend to use LILO or another traditional boot loader, you should consider making a USB boot stick. Please note that doing so will erase the contents of whatever memory stick you’re using, so be careful.

{{< scr “/scr/slackware_linux_setup_usb_boot.xhtml” >}} Make bootable USB {{< /scr >}}

LILO: The Linux Loader

Nearly everyone will need to setup the LInux LOader, LILO. LILO is in charge of booting the Linux kernel and connecting to an initrd or the root filesystem. Without it (or some other boot loader), your new Slackware operating system will not boot. Slackware offers a few options here. The “simple” method attempts to automatically configure LILO for your computer, and works well with very simple systems. If Slackware is the only operating system on your computer, it should configure and install LILO for you without any hassels. If you don’t trust the simpler method to work, or if you want to take an in-depth look at how to configure LILO, the “expert” method is really not all that complicated. This method will take you through each step and offer to setup dual-boot for Windows and other Linux operating systems. It also allows you to append kernel command parameters (most users will not need to specify any though).

{{< scr “/scr/slackware_linux_setup_install_lilo.xhtml” >}} Make bootable USB {{< /scr >}}

On modern UEFI machines and on some virtualization environment LILO might not work, and you might need to install GRUB or boot directly the linux kernel from the UEFI partition.

Mouse: enable gpm

This simple step allows you to configure and activate a console mouse for use outside of the graphical desktops. By activating a console mouse, you’ll be able to easily copy and paste from within the Slackware terminal. Most users will need to choose one of the first three options, but many are offered, and yes those ancient two-button serial mice do work.

{{< scr “/scr/slackware_linux_setup_mouse_type.xhtml” >}} Select mouse type {{< /scr >}}

And then enable the gpm to enable mouse on the console at boot time.

{{< scr “/scr/slackware_linux_setup_enable_gpm.xhtml” >}} Select mouse type {{< /scr >}}

Network configuration

If you don’t wish to configure your network at this stage, you may decline, but otherwise you’ll be prompted to provide a hostname for your computer.

For laptops and desktop computing (development workstation, family PC, etc.) you will need a Network Manager setup. For a server you might need something different. In this scenario we’re going to cover the laptop/home computing scenario.

First, select we want to setup the network now:

{{< scr “/scr/slackware_linux_setup_ask_network.xhtml” >}} Confirm we want to setup our network {{< /scr >}}

Enter a host name to describe your computer. You might need to type it often for other configurations, so choose wisely (only letters and numbers allowed).

{{< scr “/scr/slackware_linux_setup_hostname.xhtml” >}} Enter a host name {{< /scr >}}

Enter a domain name. This is not used on home computer environmnent most of the time, so almost always can invent a domain name to put here like

{{< scr “/scr/slackware_linux_setup_domain.xhtml” >}} Enter a domain name {{< /scr >}}

Select the Network Manager option:

{{< scr “/scr/slackware_linux_setup_network_manager.xhtml” >}} Select network manager {{< /scr >}}

Then confirm the data we’ve entered is correct to continue the set up.

{{< scr “/scr/slackware_linux_setup_network_confirm.xhtml” >}} Confirm network set up {{< /scr >}}

Start up services

Once your network configuration is completed Slackware will prompt you to configure the startup services that you wish to run automatically upon boot. Helpful descriptions of each service appear both to the right of the service name as well as at the bottom of the screen. If you’re not sure what to turn on, you can safely leave the defaults in place. What services are started at boot time can be easily modified later with pkgtool.

The default ones are normally fine, but you might want to enable or disable some. The fewer you need the better normally.

{{< scr “/scr/slackware_linux_setup_enable_services.xhtml” >}} Enable start up services {{< /scr >}}

Time zone

Every computer needs to keep track of the current time, and with so many timezones around the world you have to tell Slackware which one to use. If your computer’s hardware clock is set to UTC (Coordinated Universal Time), you’ll need to select that; most hardware clocks are not set to UTC from the factory (though you could set it that way on your own; Slackware doesn’t care). Then simply select your timezone from the list provided and off you go.

IF you have another OS like Microsoft Windows installed on your computer, your hardware clock would be set up to you local time. If you’re going to use Slackware as your system, you can choose the option you like more.

{{< scr “/scr/slackware_linux_setup_hwclock.xhtml” >}} Setup hardware clock {{< /scr >}}

If you selected that your hardware clock is sync’ed to UTC the timezone selection will show your local time and date correctly. In any case, the timezone is also needed when the clock is sync’ed to local time.

{{< scr “/scr/slackware_linux_setup_timezone.xhtml” >}} Set yout local timezone {{< /scr >}}

Window manager

If you installed the X disk set, you’ll be prompted to select a default window manager or desktop environment. What you select here will apply to every user on your computer, unless that user decides to run xwmconfig(1) and choose a different one. Don’t be alarmed if the options you see below do not match the ones Slackware offers you. xwmconfig only offers choices that you installed. So for example, if you elected to skip the “KDE” disk set, KDE will not be offered.

{{< scr “/scr/slackware_linux_setup_window_manager.xhtml” >}} Select your window manager {{< /scr >}}

Root password

he last configuration step is setting a root password. The root user is the “super user” on Slackware and all other UNIX-like operating systems. Think of root as the Administrator user. root knows all, sees all, and can do all, so setting a strong root password is just common sense.

{{< scr “/scr/slackware_linux_setup_root_passwd.xhtml” >}} Set the root password {{< /scr >}}

Additional settings and reboot

At this point Slackware is installed. If you need to do additional operations before rebooting, select the appropriate options in the following steps:

{{< scr “/scr/slackware_linux_setup_remove_media.xhtml” >}} Remove installation media {{< /scr >}}

{{< scr “/scr/slackware_linux_setup_reboot_question.xhtml” >}} Reboot? {{< /scr >}}

Remove the Slackware installation disk, and if you performed all the steps correctly, your computer will boot into your new Slackware linux system. If something went wrong, you probably skipped the LILO configuration step or made an error there somehow.

Or be prepared to do your stuff in an screen like this before rebooting ☺

{{< scr “/scr/console_end.xhtml” >}} Reboot? {{< /scr >}}