Installation Slackware's installation is a bit more simplistic than that of many/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. 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. This book will only focus on the most common way: installing via optical media. In order to install Slackware, you'll need at least an Intel 486 (or equivalent) or x86_64 CPU, but we recommend you obtain a 586 or better CPU if at all possible. Slackware can be pared down to run on as little as 32 MB of RAM, but with the size of the 2.6 kernel and userspace applications, you will find yourself having a much easier time if you have a minimum of 64 MB of RAM. If you wish to use anything older than these, you might want to obtain an older copy of Slackware which will perform better with fewer CPU Megahertz and less RAM.
Booting the Installer FILL THIS IN! FILL THIS IN! FILL THIS IN! FILL THIS IN! FILL THIS IN! FILL THIS IN! FILL THIS IN! FILL THIS IN! FILL THIS IN! FILL THIS IN! FILL THIS IN! FILL THIS IN! FILL THIS IN! FILL THIS IN!
Partitioning Unlike many other Linux distributions, Slackware does not make use of a graphical disk partitioning tool in its installer; rather, Slackware makes use of fdisk(8) and cfdisk(8), both of which are console tools. cfdisk is a curses-based partitioning tool while fdisk is not. Which one you decide to use should only rarely matter. In this book, we'll only discuss fdisk. In order to partition your hard drive, you'll first need to know how to identify it. In Linux, all hardware is identified by a special file called a device file. These are all (typically) located in the /dev directory. Hard drives, both the older IDE (PATA) and Serial ATA (SATA) disks are identified as SCSI devices by the kernel, and as such, they'll be assigned a device node such as /dev/sda. If you don't know which device node is assigned to your hard drive, fdisk can help you find out. root@slackware:/# fdisk -l Disk /dev/sda: 72.7 GB, 72725037056 bytes 255 heads, 63 sectors/track, 8841 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Here, you can see that my system has a hard drive located at /dev/sda that is 72.7 GB in size. You can also see some additional information about this hard drive (in my case, this is actually three SCSI hard drives on a hardware RAID controller that makes them appear as a single drive). The -l argument to fdisk tells it to display the hard drives and all the partitions it finds on those drives, but it won't make any changes to the disks. In order to actually partition our drives, we'll have to tell fdisk the drive on which to operate. root@slackware:/# fdisk /dev/sda The number of cylinders for this disk is set to 8841. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): Now we've told fdisk what disk we wish to partition, and it has dropped us into command mode after printing an annoying warning message. The 1024 cylinder limit has not been a problem for quite some time, and Slackware's boot loader will have no trouble booting disks larger than this. Typing m and pressing ENTER will print out a helpful message telling you what to do with fdisk. Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Now that we know what commands will do what, it's time to begin partitioning our drive. At a minimum, you will need a single / partition, and you should also create a swap partition. You might also want to make a separate /home partition for storing user files (this will make it easier to upgrade later or to install a different Linux operating system by keeping all of your users' files on a separate partition). Therefore, let's go ahead and make three partitions. The command to create a new partition is n (which you noticed when you read the help). Command: (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-8841, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-8841, default 8841): +8G Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (975-8841, default 975): 975 Last cylinder or +size or +sizeM or +sizeK (975-8841, default 8841): +1G Here we have created two partitions. The first is 8GB in size, and the second is only 1GB. We can view our existing partitions with the p command. Command (m for help): p Disk /dev/sda: 72.7 GB, 72725037056 bytes 255 heads, 63 sectors/track, 8841 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 974 7823623+ 83 Linux /dev/sda2 975 1097 987997+ 83 Linux Both of these partitions are of type "83" which is the standard Linux filesystem. We will need to change /dev/sda2 to type "82" in order to make this a swap partition. We will do this with the t argument to fdisk. Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Command (me for help): p Disk /dev/sda: 72.7 GB, 72725037056 bytes 255 heads, 63 sectors/track, 8841 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 974 7823623+ 83 Linux /dev/sda2 975 1097 987997+ 82 Linux swap The swap partition is a special partition that is used for virtual memory by the Linux kernel. If for some reason you run out of RAM, the kernel will move the contents of some of the RAM to swap in order to prevent a crash. The size of your swap partition is up to you. A great many people have participated in a great many flamewars on the size of swap partitions, but a good rule of thumb is to make your swap partition about twice the size of your system's RAM. Since my machine has only 512MB of RAM, I decided to make my swap partition 1GB. You may wish to experiment with your swap partition's size and see what works best for you, but generally there is no harm in having "too much" swap. That being said, there's generally no good reason to follow this "rule of thumb" if you have a *lot* of RAM (e.g. more than 2 GB). If you plan to use hibernation (suspend to disk), you will need to have at least as much swap space as you have physical memory (RAM), so keep that in mind. At this point we can stop, write these changes to the disk, and continue on, but I'm going to go ahead and make a third partition which will be mounted at /home. Command: (me for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (1098-8841, default 1098): 1098 Last cylinder or +size or +sizeM or +sizeK (1098-8841, default 8841): 8841 Now it's time to finish up and write these changes to disk. Command: (me for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. root@slackware:/# At this point, we are done partitioning our disks and are ready to begin the setup program. However, if you have created any extended partitions, you may wish to reboot once to ensure that they are properly read by the kernel.
The <application>setup</application> Program
Help
Keymap
Addswap
Target
Source
Select
Install
Configure