In this section we'll describe how to prepare your system for installing Slackware, and finally how to go about installing it.
On most systems, the hard drive is already dedicated to partitions for MS-DOS, OS/2, and so on. You need to resize these partitions in order to make space for Linux.
NOTE: If you use one of the umsds
root diskettes,
you can install Slackware TO a directory on your MS-DOS
partition. (This is different than installing FROM an MS-DOS
partition.) Instead, you use the ``UMSDOS filesystem'', which
allows you to treat a directory of your MS-DOS partition as a Linux
filesystem. In this way, you don't have to repartition your drive.
I only suggest using this method if your drive has four partitions and repartitioning would be more trouble than it's worth. Or, if you want to try Slackware out before repartitioning, this is a good way to do so. But in most cases you should repartition, as described here. If you do plan to use UMSDOS, you are on your own---it is not documented in detail here. From now on, we assume that you are NOT using UMSDOS, and that you will be repartitioning.
A partition is just a section of the hard drive set aside for a particular operating system to use. If you only have MS-DOS installed, your hard drive probably has just one partition, entirely for MS-DOS. To use Linux, however, you'll need to repartition the drive, so that you have one partition for MS-DOS, and one (or more) for Linux.
Partitions come in three flavors: primary, extended, and logical. Briefly, primary partitions are one of the four main partitions on your drive. However, if you wish to have more than four partitions per drive, you need to create an extended partition, which can contain many logical partitions. You don't store data directly on an extended partition---it is used only as a container for logical partitions. Data is stored only on either primary or logical partitions.
To put this another way, most people use only primary partitions. However, if you need more than four partitions on a drive, you create an extended partition. Logical partitions are then created on top of the extended partition, and there you have it---more than four partitions per drive.
Note that you can easily install Linux on the second drive on your
system (known as D:
to MS-DOS). You simply specify the
appropriate device name when creating Linux partitions. This is
described in detail below.
Back to repartitioning your drive: The problem with resizing partitions is that there is no way to do it (easily) without deleting the data on those partitions. Therefore, you will need to make a full backup of your system before repartitioning. In order to resize a partition, we simply delete the partition(s), and re-create them with smaller sizes.
NOTE: There is a non-destructive disk repartitioner available
for MS-DOS, called FIPS. Look on sunsite.unc.edu
in the directory
/pub/Linux/system/Install
. With FIPS, a disk optimizer (such
as Norton Speed Disk), and a little bit of luck, you should be able
to resize MS-DOS partitions without destroying the data on them.
It's still suggested that you make a full backup before attempting
this.
If you're not using FIPS, however, the classic way to modify
partitions is with the program FDISK
. For example, let's say
that you have an 80 meg hard drive, dedicated to MS-DOS. You'd
like to split it in half---40 megs for MS-DOS and 40 megs for
Linux. In order to do this, you run FDISK
under MS-DOS,
delete the 80 meg MS-DOS partition, and re-create a 40 meg
MS-DOS partition in its place. You can then format the new partition
and reinstall your MS-DOS software from backups. 40 megabytes of
the drive is left empty. Later, you create Linux partitions
on the unused portion of the drive.
In short, you should do the following to resize MS-DOS partitions with FDISK:
FORMAT /S A:
FDISK.EXE
and FORMAT.COM
to this floppy,
as well as any other utilities that you need. (For example, utilities
to recover your system from backup.) FDISK
, possibly specifying the drive to modify (such as
C:
or D:
).FDISK
menu options to delete the partitions which
you wish to resize. This will destroy all data on the affected
partitions.FDISK
menu options to re-create those partitions,
with smaller sizes.FDISK
and re-format the new partitions with the
FORMAT
command.Note that MS-DOS FDISK
will give you an option to create
a ``logical DOS drive''. A logical DOS drive is just a logical
partition on your hard drive. You can install Linux on a logical
partition, but you don't want to create that logical partition
with MS-DOS fdisk. So, if you're currently using a logical
DOS drive, and want to install Linux in its place, you should
delete the logical drive with MS-DOS FDISK
, and (later)
create a logical partition for Linux in its place.
The mechanism used to repartition for OS/2 and other operating systems is similar. See the documentation for those operating systems for details.
After repartitioning your drive, you need to create partitions for Linux. Before describing how to do that, we'll talk about partitions and filesystems under Linux.
Linux requires at least one partition, for the root filesystem, which will hold the Linux software itself.
You can think of a filesystem as a partition formatted for
Linux. Filesystems are used to hold files. Every system must
have a root filesystem, at least. However, many users prefer to
use multiple filesystems---one for each major part of the
directory tree. For example, you may wish to create a separate
filesystem to hold all files under the /usr
directory.
(Note that on UNIX systems, forward slashes are used to delimit
directories, not backslashes as with MS-DOS.) In this case you
have both a root filesystem, and a /usr
filesystem.
Each filesystem requires its own partition. Therefore, if you're
using both root and /usr
filesystems, you'll need to
create two Linux partitions.
In addition, most users create a swap partition, which is used for virtual RAM. If you have, say, 4 megabytes of memory on your machine, and a 10-megabyte swap partition, as far as Linux is concerned you have 14 megabytes of virtual memory.
When using swap space, Linux moves unused pages of memory out to disk, allowing you to run more applications at once on your system. However, because swapping is often slow, it's no replacement for real physical RAM. But applications that require a great deal of memory (such as the X Window System) often rely on swap space if you don't have enough physical RAM.
Nearly all Linux users employ a swap partition. If you have 4 megabytes of RAM or less, a swap partition is required to install the software. It is strongly recommended that you have a swap partition anyway, unless you have a great amount of physical RAM.
The size of your swap partition depends on how much virtual memory you need. It's often suggested that you have at least 16 megabytes of virtual memory total. Therefore, if you have 8 megs of physical RAM, you might want to create an 8-megabyte swap partition. Note that swap partitions can be no larger than 128 megabytes in size. Therefore, if you need more than 128 megs of swap, you must create multiple swap partitions. You may have up to 16 swap partitions in all.
The first step is to boot the Slackware bootdisk. After the system boots, you will see the message:
Welcome to the Slackware Linux 2.0.0 Bootkernel disk!
Here, you are given the opportunity to specify various hardware
parameters, such as your SCSI controller IRQ and address, or
drive geometry, before booting the Linux kernel.
This is necessary in case Linux does not detect your SCSI controller
or hard drive geometry, for example.
In particular, many BIOS-less SCSI controllers require you to specify the port address and IRQ at boot time. Likewise, IBM PS/1, ThinkPad, and ValuePoint machines do not store drive geometry in the CMOS, and you must specify it at boot time.
To try booting the kernel without any special parameters,
just press enter
at the boot prompt.
Watch the messages as the system boots. If you have a SCSI controller, you should see a listing of the SCSI hosts detected. If you see the message
SCSI: 0 hosts
Then your SCSI controller was not detected, and you will have to
use the following procedure.
Also, the system will display information on the drive partitions and devices detected. If any of this information is incorrect or missing, you will have to force hardware detection.
On the other hand, if all goes well and you hardware seems to be detected, you can skip to the following section, ``Loading the root disk.''
To force hardware detection, you must enter the appropriate parameters at the boot prompt, using the following syntax:
ramdisk <parameters...>
There are a number of such parameters available; here are some of the most common.
hd=cylinders,heads,sectors
Specify the drive geometry.
Required for systems such as the IBM PS/1, ValuePoint, and ThinkPad.
For example, if your drive has 683 cylinders, 16 heads, and 32 sectors
per track, enter
ramdisk hd=683,16,32
tmc8xx=memaddr,irq
Specify address and IRQ for BIOS-less
Future Domain TMC-8xx SCSI controller. For example,
ramdisk tmc8xx=0xca000,5
Note that the 0x
prefix must be used for all values given
in hex. This is true for all of the following options.st0x=memaddr,irq
Specify address and IRQ for BIOS-less
Seagate ST02 controller.t128=memaddr,irq
Specify address and IRQ for BIOS-less
Trantor T128B controller.ncr5380=port,irq,dma
Specify port, IRQ, and DMA channel for
generic NCR5380 controller.aha152x=port,irq,scsi_id,1
Specify port, IRQ, and SCSI ID
for BIOS-less AIC-6260 controllers. This includes Adaptec 1510, 152x,
and Soundblaster-SCSI controllers.ramdisk
' followed by the
parameter that you wish to use.
If you have questions about these boot-time options, please read the Linux SCSI HOWTO, which should be available on any Linux FTP archive site (or from wherever you obtained this document). The SCSI HOWTO explains Linux SCSI compatibility in much more detail.
After booting the kernel, you will be prompted to enter the Slackware root disk:
Please remove the boot kernel disk from your floppy drive,
insert a disk to be loaded into the ramdisk, and press
[enter] to continue.
At this point you should remove the bootdisk from the drive
and insert the rootdisk. Then press enter
to go on.
The rootdisk will be loaded into memory, and you should be
presented with a login prompt. Login as ``root
''.
slackware login: root
#
fdisk
To create Linux partitions, we'll use the Linux version of the
fdisk
program. After logging in as root, run the command
fdisk drive
where drive is the name of the drive that you wish to create
Linux partitions on. Hard drive device names are:
/dev/hda
First IDE drive/dev/hdb
Second IDE drive/dev/sda
First SCSI drive/dev/sdb
Second SCSI drive
fdisk /dev/sda
If you use fdisk
without an argument, it will assume
/dev/hda
.
To create Linux partitions on the second drive on your system,
simply specify either /dev/hdb
(for IDE drives)
or /dev/sdb
(for SCSI drives)
when running fdisk
.
Your Linux partitions don't all have to be on the same drive.
You might want to create your root filesystem partition on
/dev/hda
and your swap partition on /dev/hdb
,
for example. In order to do so just run fdisk
once for
each drive.
Use of fdisk
is simple. The command ``p
'' displays your
current partition table. ``n
'' creates a new partition, and
``d
'' deletes a partition.
To Linux, partitions are given a name based on the drive which
they belong to. For example, the first partition on
the drive /dev/hda
is /dev/hda1
, the second is
/dev/hda2
, and so on. If you have any logical partitions,
they are numbered starting with /dev/hda5
,
/dev/hda6
and so on up.
NOTE: You should not create or delete partitions for operating
systems other than Linux with Linux fdisk
. That is, don't create
or delete MS-DOS partitions with this version of fdisk
; use
MS-DOS's version of FDISK
instead. If you try to create
MS-DOS partitions with Linux fdisk
, chances are MS-DOS will
not recognize the partition and not boot correctly.
Here's an example of using fdisk
. Here, we have a single
MS-DOS partition using 61693 blocks on the drive, and the
rest of the drive is free for Linux. (Under Linux, one block is
1024 bytes. Therefore, 61693 blocks is about 61 megabytes.)
We will create two Linux partitions: one for swap, and one for the
root filesystem.
First, we use the ``p
'' command to display the current partition
table. As you can see, /dev/hda1
(the first partition
on /dev/hda
) is a DOS partition of 61693 blocks.
Command (m for help): p Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders Units = cylinders of 608 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 203 61693 6 DOS 16-bit >=32M Command (m for help):
Next, we use the ``n
'' command to create a new partition. The Linux root
partition will be 80 megs in size.
Command (m for help): n Command action e extended p primary partition (1-4) p
Partition number (1-4): 2 First cylinder (204-683): 204 Last cylinder or +size or +sizeM or +sizeK (204-683): +80M
The first cylinder should be the cylinder AFTER where the last
partition left off. In this case, /dev/hda1
ended on
cylinder 203, so we start the new partition at cylinder 204.
As you can see, if we use the notation ``+80M
'', it specifies a
partition of 80 megs in size. Likewise, the notation ``+80K
''
would specify an 80 kilobyte partition, and ``+80
'' would
specify just an 80 byte partition.
Warning: Linux cannot currently use 33090 sectors of this partition
Next, we create our 10 megabyte swap partition, /dev/hda3
.
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (474-683): 474 Last cylinder or +size or +sizeM or +sizeK (474-683): +10M
Again, we display the contents of the partition table. Be sure to write down the information here, especially the size of each partition in blocks. You need this information later.
Command (m for help): p Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders Units = cylinders of 608 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 203 61693 6 DOS 16-bit >=32M /dev/hda2 204 204 473 82080 83 Linux native /dev/hda3 474 474 507 10336 83 Linux native
Note that the Linux swap partition (here, /dev/hda3
) has type
``Linux native''. We need to change the type of the swap partition to
``Linux swap'' so that the installation program will recognize it
as such. In order to do this, use the fdisk
``t
'' command:
Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): 82
L
'' to list the type codes, you'll find that
82 is the type corresponding to Linux swap.
To quit fdisk
and save the changes to the partition table, use the
``w
'' command. To quit fdisk
WITHOUT saving changes,
use the ``q
'' command.
After quitting fdisk
, the system may tell you to reboot to
make sure that the changes took effect. In general there is no reason
to reboot after using fdisk
---the version of fdisk
on
the Slackware distribution is smart enough to update the partitions
without rebooting.
If you have 4 megabytes of RAM (or less) in your machine, you need
to create a swap partition (using fdisk
) and enable it for
use before installing the software. Here, we describe how to
format and enable your swap partition(s).
If you have more than 4 megs of RAM, you need only create your partition(s)---it's not necessary to format and enable them before installing the software. In this case you can skip down to the section ``Installing the Software''.
If you get any ``out of memory
'' errors during
the installation procedure you should create a swap partition and
enable it as described here.
To prepare the swap space for use, we use the mkswap
command.
It takes the form:
mkswap -c partition size
where partition is the partition name, such as
/dev/hda3
, and size is the size of the
partition in blocks.
For example, if you created the swap partition /dev/hda3
of
size 10336 blocks, use the command
mkswap -c /dev/hda3 10336
The -c
option tells mkswap to check for bad blocks on the
partition when preparing the swap space. If you see any
``read_intr
'' error messages during the mkswap operation, this
means that bad blocks were found (and flagged). So you can ignore
these errors.
To enable swapping on the new device, use the command
swapon partition
For example, for our swap space on /dev/hda3
, we use
swapon /dev/hda3
We're now swapping with about 10 megabytes more virtual memory.
You should execute mkswap
and swapon
for each swap
partition that you created.
Installing the Slackware release is very simple; it's almost
automatic. You use the setup
command, which guides you through
a series of menus which allow you to specify the
means of installation, the partitions to use, and so forth.
Almost everything is automatic.
Here, we're not going to document many of the specifics of using
setup
, because it changes from time to time. setup
is
very self-explanatory; it contains its own documentation. Just to
give you an idea of what it's like, however, we'll describe what
most installations are like using setup
.
Before you begin, be sure that you have a high-density MS-DOS formatted floppy on hand. You will use this floppy to create a Linux boot diskette.
After running fdisk
(and, perhaps, mkswap
and swapon
as described above), issue the command
# setup
This will present you with a colourful menu with various options
such as ``Addswap'' (to set up your swap space), ``Source'' (to
specify the source of the software to install, such as floppy or
hard drive), ``Target'' (to specify where to install the software),
and so on.
In general, you should go through the menu commands in the following order:
fdisk
),
use the addswap
menu option to tell the system about it.
This option will present you with a list of possible swap partitions;
just type in the name of the swap partition(s) that you wish to use
(such as /dev/hda3
). The system will then ask you if you
want to format the swap partition, which you should do unless
you already ran mkswap
and swapon
on it.
That is, you should format the swap partition unless you already
formatted and enabled it by hand as described in the previous section.
C:\SLACKWAR
, you should enter the name of the
MS-DOS partition (such as /dev/hda1
) and the name of the
directory (such as /slackwar
). Note that you should use
forward slashes (/
), not backslashes (\
),
in the directory name.
There are other means of installation, such as CD-ROM. These
should be self-explanatory as well.
/dev/hda2
. You will be asked if you want to format the
partition; unless you are installing on a partition previously
formatted for Linux you should do so. You should use the Second
Extended Filesystem (ext2fs
) type for the partition.
You will also be given a chance to use additional partitions for
different parts of the directory tree. For example, if you created
a separate partition for the /usr
filesystem, you should
enter the name of that partition and the directory that it
corresponds to (/usr
) when asked.
return
when you're done selecting disk sets.
You may wish to only install a minimal system at this time. That's
fine. Only the A
diskset is required. After you have installed
the software you may run setup
to install other disksets.
setup
on your system to install it later).
While the software is installing, watch out for error messages
that may be displayed. The most common error that you're likely
to run into is ``device full
'', which means that you have
run out of space on your Linux partitions. Unfortunately, the
Slackware installation procedure is not quite smart enough to
detect this, and will attempt to continue installing the software
regardless. If you get any kind of error messages during the
installation procedure, you may wish to break out of the installation
program (using Ctrl-C
) to record them. The only solution
for the ``device full
'' problem is to re-create your Linux
partitions with different sizes, or attempt to reinstall the
software without several of the optional software packages. After installation is complete, and if all goes well, you will be given the option of creating a ``standard boot disk'', which you can use to boot your newly-installed Linux system. For this you will need a blank, high-density MS-DOS formatted diskette of the type that you boot with on your system. Simply insert the disk when prompted and a boot diskette will be created.
You will also be given the chance to install LILO on your hard drive. LILO (which stands for LInux LOader) is a program that will allow you to boot Linux (as well as other operating systems, such as MS-DOS) from your hard drive. If you wish to do this, just select the appropriate menu option and follow the prompts.
If you are using OS/2's Boot Manager, the menu will include an option for configuring LILO for use with the Boot Manager, so that you can boot Linux from it.
Note that this automated LILO installation procedure is not foolproof; there are situations in which this can fail. Be sure that you have a way to boot MS-DOS, Linux, and other operating systems from floppy before you attempt to install LILO. If the LILO installation fails you will be able to boot your system from floppy and correct the problem.
More information on configuring LILO is given below.
The postinstallation procedure will also take you through several menu items allowing you to configure your system. This includes specifying your modem and mouse device, as well as your time zone. Just follow the menu options.
If everything went as planned, you should be able to boot your
Linux boot floppy (not the Slackware installation floppy, but
the floppy created after installing the software). Or, if you
installed LILO, you should be able to boot from the hard drive.
After booting, login as root
. Congratulations! You
have your very own Linux system.
If you are booting using LILO, try holding down shift
or
control
during boot. This will present you with a
boot prompt; press tab
to see a list of options. In this
way you can boot Linux, MS-DOS, or whatever directly from LILO.
After booting your system and logging in as root, one of the
first things you should do is create an account for yourself.
The adduser
command may be used for this purpose. For
example,
# adduser
Login to add (^C to quit): ebersol
Full Name: Norbert Ebersol
GID [100]: 100
UID [501]: 501
Home Directory [/home/ebersol]: /home/ebersol
Shell [/bin/bash]: /bin/bash
Password [ebersol]: new.password
Information for new user [ebersol]:
Home directory: [/home/ebersol] Shell: [/bin/bash]
Password: [new.password] UID: [502] GID:[100]
Is this correct? [y/n]: y
adduser
will prompt you for various parameters, such
as the username, full name, GID (group ID), UID (user ID),
and so on. For the most part you can use the defaults. If you're
unfamiliar with creating users on a UNIX system, I strongly
suggest getting a book on UNIX systems administration. It will
help you greatly in setting up and using your new system.
You can now login as the new user. You can use the keys
Alt-F1
through Alt-F8
to switch between
virtual consoles, which will allow you to login multiple
times from the console. The passwd
command can be used
to set the passwords on your new accounts; you should set a
password for root
and any new users that you create.
Also, the hostname of your machine is set at boot time in the
file /etc/rc.d/rc.M
. You should edit this
file (as root
) to change the hostname of the machine.
You should edit the lines in this file which run the commands
hostname
or hostname_notcp
. (The default hostname is
darkstar
.) You may also wish to edit the domainname
commands in this file, if you are on a TCP/IP network.
(On most Slackware systems the hostname and domain name are set
in the file /etc/HOSTNAME
, so editing this file will
probably suffice.)
Obviously, there are many more things to setup and configure. A good book on UNIX systems administration should help. (I suggest Essential Systems Administration from O'Reilly and Associates.) You will pick these things up as time goes by. You should read various other Linux HOWTOs, such as the NET-2-HOWTO and Printing-HOWTO, for information on other configuration tasks.
After that, the system is all yours... have fun!
Next Chapter, Previous Chapter
Table of contents of this chapter, General table of contents
Top of the document, Beginning of this Chapter