| |
|
Home
|
| Red Hat Linux 7.2: The Official Red Hat Linux x86 Installation Guide |
|---|
| Prev | | Next |
Disk partitions are a standard part of the personal computer landscape
and have been for quite some time. However, with many people purchasing
computers featuring preinstalled operating systems, relatively few people
understand how partitions work. This chapter attempts to explain the
reasons for and use of disk partitions so your Red Hat Linux installation will be
as simple and painless as possible.
If you are reasonably comfortable with disk partitions, you could skip ahead
to the section called Making Room For Red Hat Linux for more information on the
process of freeing up disk space to prepare for a Red Hat Linux installation. This
section also discusses the partition naming scheme used by Linux systems,
sharing disk space with other operating systems, and related topics.
Hard disks perform a very simple function — they store data and reliably
retrieve it on command.
When discussing issues such as disk partitioning, it is important to know
a bit about the underlying hardware. Unfortunately, it is easy to become
bogged down in details. Therefore, we will use a simplified diagram of a
disk drive to help explain what is really happening when a disk drive
is partitioned. Figure E-1 shows a
brand-new, unused disk drive.
Not much to look at, is it? But if we are talking about disk drives on a
basic level, it will do. Say that we would like to store some data on
this drive. As things stand now, it will not work. There is something we
need to do first…
Experienced computer users probably got this one on the first try.
We need to format the drive. Formatting
(usually known as "making a filesystem") writes
information to the drive, creating order out of the empty space in an
unformatted drive.
As Figure E-2 implies, the order
imposed by a filesystem involves some trade-offs:
A small percentage of the drive's available space is used to store
filesystem-related data and can be considered as overhead.
A filesystem splits the remaining space into small,
consistently-sized segments. For Linux, these segments
are known as blocks.
[1]
Given that filesystems make things like directories and files
possible, these tradeoffs are usually seen as a small price to pay.
It is also worth noting that there is no single, universal
filesystem. As Figure E-3 shows,
a disk drive may have one of many different filesystems written on it. As
you might guess, different filesystems tend to be incompatible; that
is, an operating system that supports one filesystem (or a handful of
related filesystem types) may not support another. This last
statement is not a hard-and-fast rule, however. For example, Red Hat Linux
supports a wide variety of filesystems (including many commonly used
by other operating systems), making data interchange between different
filesystems easy.
Of course, writing a filesystem to disk is only the beginning. The
goal of this process is to actually store and
retrieve data. Let us take a look at our drive
after some files have been written to it.
As Figure E-4 shows, 14 of
the previously-empty blocks are now holding data. However, by simply
looking at this picture, we cannot determine exactly how many files
reside on this drive. There may be as few as one or as
many as 14 files, as all files use at least one block and some files
use multiple blocks. Another important
point to note is that the used blocks do not have to form a contiguous
region; used and unused blocks may be interspersed. This is known as
fragmentation. Fragmentation can play a part
when attempting to resize an existing partition.
As with most computer-related technologies, disk drives changed over
time after their introduction. In particular, they got bigger. Not
larger in physical size, but bigger in their capacity to store
information. And, this additional capacity drove a fundamental change
in the way disk drives were used.
As disk drive capacities soared, some people began to wonder if
having all of that formatted space in one big chunk was such a great idea. This
line of thinking was driven by several issues, some philosophical,
some technical. On the philosophical side, above a certain size, it
seemed that the additional space provided by a larger drive created
more clutter. On the technical side, some filesystems were never
designed to support anything above a certain capacity. Or the filesystems
could support larger drives with a greater
capacity, but the overhead imposed by the filesystem to track files
became excessive.
The solution to this problem was to divide disks into
partitions. Each partition can be accessed as
if it was a separate disk. This is done through the addition of a
partition table.
 | Note |
|---|
| | While the diagrams in this chapter show the partition table as being
separate from the actual disk drive, this is not entirely
accurate. In reality, the partition table is stored at the very
start of the disk, before any filesystem or user data. But for
clarity, we will keep it separate in our diagrams.
|
As Figure E-5 shows, the
partition table is divided into four sections. Each section can hold
the information necessary to define a single partition, meaning that
the partition table can define no more than four partitions.
Each partition table entry contains several important characteristics
of the partition:
Let us take a closer look at each of these characteristics. The
starting and ending points actually define the partition's size and
location on the disk. The "active" flag is used by some operating
systems' boot loaders. In other words, the operating system in the
partition that is marked "active" will be booted.
The partition's type can be a bit confusing. The type is a number that
identifies the partition's anticipated usage. If that statement sounds
a bit vague, that is because the meaning of the partition type is a bit
vague. Some operating systems use the partition type to denote a
specific filesystem type, to flag the partition as being associated
with a particular operating system, to indicate that the partition
contains a bootable operating system, or some combination of the
three.
Table E-1 contains a listing of some
popular (and obscure) partition types, along with their numeric
values.
Table E-1. Partition Types | Partition Type | Value | Partition Type | Value |
|---|
| Empty | 00 | Novell Netware 386 | 65 | | DOS 12-bit FAT | 01 | PIC/IX | 75 | | XENIX root | 02 | Old MINIX | 80 | | XENIX usr | 03 | Linux/MINUX | 81 | | DOS 16-bit <=32M | 04 | Linux swap | 82 | | Extended | 05 | Linux native | 83 | | DOS 16-bit >=32 | 06 | Linux extended | 85 | | OS/2 HPFS | 07 | Amoeba | 93 | | AIX | 08 | Amoeba BBT | 94 | | AIX bootable | 09 | BSD/386 | a5 | | OS/2 Boot Manager | 0a | OpenBSD | a6 | | Win95 FAT32 | 0b | NEXTSTEP | a7 | | Win95 FAT32 (LBA) | 0c | BSDI fs | b7 | | Win95 FAT16 (LBA) | 0e | BSDI swap | b8 | | Win95 Extended (LBA) | 0f | Syrinx | c7 | | Venix 80286 | 40 | CP/M | db | | Novell | 51 | DOS access | e1 | | Microport | 52 | DOS R/O | e3 | | GNU HURD | 63 | DOS secondary | f2 | | Novell Netware 286 | 64 | BBT | ff |
By this point, you might be wondering how all this additional complexity is
normally used. See Figure E-6 for an example.
In many cases, there is only a single partition spanning
the entire disk, essentially duplicating the method used before
partitions. The partition table has only one entry used, and it points to
the start of the partition.
We have labeled this partition as being of the "DOS" type. Although it
is only one of several possible partition types listed in Table E-1, it is adequate for the purposes of
this discussion. This is a typical partition layout for most newly
purchased computers with a consumer version of Microsoft
Windows™ preinstalled.
Of course, over time it became obvious that four partitions would not be
enough. As disk drives continued to grow, it became more and more
likely that a person could configure four reasonably-sized partitions
and still have disk space left over. There needed to be some way of
creating more partitions.
Enter the extended partition. As you may have noticed in Table E-1, there is an "Extended" partition
type. It is this partition type that is at the heart of extended
partitions.
When a partition is created and its type is set to "Extended," an
extended partition table is created. In essence, the extended
partition is like a disk drive in its own right —— it has a partition
table that points to one or more partitions (now called
logical partitions, as opposed to the four
primary partitions) contained entirely within
the extended partition itself. Figure E-7 shows a disk drive with
one primary partition and one extended partition containing two
logical partitions (along with some unpartitioned free space).
As this figure implies, there is a difference between primary and
logical partitions -- there can only be four primary partitions, but
there is no fixed limit to the number of logical partitions that can
exist. (However, in reality, it is probably not a good idea to try to
define and use more than 12 logical partitions on a single disk
drive.)
Now that we have discussed partitions in general, let us see how to use
this knowledge to install Red Hat Linux.
There are three possible scenarios you may face when attempting to
repartition your hard disk:
Unpartitioned free space is available
An unused partition is available
Free space in an actively used partition is available
Let's look at each scenario in order.
 | Note |
|---|
| | Please keep in mind that the following illustrations are simplified in
the interest of clarity and do not reflect the exact partition layout
that you will encounter when actually installing Red Hat Linux.
|
In this situation, the partitions already defined do not span the
entire hard disk, leaving unallocated space that is not part of any
defined partition. Figure E-8 shows what this
might look like.
If you think about it, an unused hard disk also falls into this
category. The only difference is that all the
space is not part of any defined partition.
In any case, you can simply create the necessary partitions from the
unused space. Unfortunately, this scenario, although very simple,
is not very likely (unless you have just purchased a new disk just for
Red Hat Linux). Most pre-installed operating systems are configured to take
up all available space on a disk drive (see the section called Using Free Space from an Active Partition).
Let's move on to a slightly more common situation.
In this case, maybe you have one or more partitions that you do not
use any longer. Perhaps you have dabbled with another operating
system in the past, and the partition(s) you dedicated to it
never seem to be used anymore. Figure E-9 illustrates
such a situation.
If you find yourself in this situation, you can use the space
allocated to the unused partition. You will first need to delete the
partition, and then create the appropriate Linux partition(s) in its
place. You can either delete the partition using the DOS
fdisk command, or you will be given the opportunity to do
so during a custom installation.
This is the most common situation. It is also, unfortunately, the
hardest to handle. The main problem is that, even if you have
enough free space, it is presently allocated to a partition that is
already in use. If you purchased a computer with pre-installed software,
the hard disk most likely has one massive partition holding the
operating system and data.
Aside from adding a new hard drive to your system, you have two
choices:
- Destructive Repartitioning
Basically, you delete the single large partition and create
several smaller ones. As you might imagine, any data you had
in the original partition is destroyed. This means that
making a complete backup is necessary. For your own sake,
make two backups, use verification (if available in your
backup software), and try to read data from your backup
before you delete the partition.
 | Caution |
|---|
| | If there was an operating system of some type
installed on that partition, it will need to be reinstalled as
well. Be aware that some computers sold with pre-installed operating
systems may not include the CD-ROM media to reinstall the
original operating system. The best time to notice if this
applies to your system is before you
destroy your original partition and its operating system
installation.
|
After creating a smaller partition for your existing software,
you can reinstall any software, restore your data, and
continue your Red Hat Linux installation. Figure E-10 shows this being
done.
 | Caution |
|---|
| | As Figure E-10
shows, any data present in the original partition will be
lost without proper backup!
|
- Non-Destructive Repartitioning
Here, you run a program that does the seemingly impossible: it
makes a big partition smaller without losing any of the files
stored in that partition. Many people have found this method
to be reliable and trouble-free. What software should you use
to perform this feat? There are several disk management
software products on the market. You will have to do some
research to find the one that is best for your situation.
While the process of non-destructive repartitioning is rather
straightforward, there are a number of steps involved:
Let's take a look at each step in a bit more detail.
As Figure E-11 shows,
the first step is to compress the data in your existing partition.
The reason for doing this is to rearrange the data such that it
maximizes the available free space at the "end" of the partition.
This step is crucial. Without it, the location
of your data could prevent the partition from being resized to the
extent desired. Note also that, for one reason or another, some
data cannot be moved. If this is the case (and it severely restricts the
size of your new partition(s)), you may be forced to destructively
repartition your disk.
Figure E-12 shows the
actual resizing process. While the actual result of the
resizing operation varies depending on the software used, in most
cases the newly freed space is used to create an unformatted
partition of the same type as the original partition.
It is important to understand what the resizing software you use
does with the newly freed space, so that you can take the
appropriate steps. In the case we have illustrated, it would be
best to simply delete the new DOS partition, and create the
appropriate Linux partition(s).
As the previous step implied, it may or may not be necessary to
create new partitions. However, unless your resizing software is
Linux-aware, it is likely you will need to delete the partition that
was created during the resizing process. Figure E-13 shows this
being done.
 | Note |
|---|
| | The following information is specific to Intel-based computers only.
|
As a convenience to Red Hat Linux users, the DOS fips
utility is included on the Red Hat Linux/x86 CD 1 in the dosutils
directory. This is a freely available program that can resize FAT
(File Allocation Table) partitions.
 | Warning |
|---|
| | Many people have successfully used fips to
resize their hard drive partitions. However, because of the nature
of the operations carried out by fips and
the wide variety of hardware and software configurations under
which it must run, Red Hat cannot guarantee that
fips will work properly on your system.
Therefore, no installation support is available for
fips. Use it at your own risk.
|
That said, if you decide to repartition your hard drive with
fips, it is vital that you
do two things:
Perform a backup — Make two copies
of all the important data on your computer. These copies
should be to removable media (such as tape or diskettes), and
you should make sure they are readable before proceeding.
Read the documentation — Completely read the
fips documentation, located in the
dosutils/fipsdocs subdirectory on
Red Hat Linux/x86 CD 1.
Should you decide to use fips, be aware that
after fips runs you will be left with
two partitions: the one you resized, and the
one fips created out of the newly freed space.
If your goal is to use that space to install Red Hat Linux, you should
delete the newly created partition, either by using
fdisk under your current operating system or
while setting up partitions during a custom installation.
Linux refers to disk partitions using a combination of letters and
numbers which may be confusing, particularly if you are used to the "C
drive" way of referring to hard disks and their partitions. In the
DOS/Windows world, partitions are named using the following method:
Each partition's type is checked to determine if it can be read by
DOS/Windows.
If the partition's type is compatible, it is assigned a "drive
letter." The drive letters start with a "C" and move on to the
following letters, depending on the number of partitions to be labeled.
The drive letter can then be used to refer to that partition as
well as the filesystem contained on that partition.
Red Hat Linux uses a naming scheme that is more flexible and conveys more
information than the approach used by other operating systems. The
naming scheme is file-based, with filenames in the form:
Here is how to decipher the partition naming scheme:
- /dev/
This string is the name of the directory in which all device
files reside. Since partitions reside on hard disks, and hard
disks are devices, the files representing all possible
partitions reside in /dev/.
- xx
The first two letters of the partition name indicate the type of
device on which the partition resides. You will normally see
either hd (for IDE disks) or
sd (for SCSI disks).
- y
This letter indicates which device the partition is on. For
example, /dev/hda (the first IDE hard disk)
or /dev/sdb (the second SCSI disk).
- N
The final number denotes the partition. The first four (primary
or extended) partitions are numbered 1
through 4. Logical partitions start at
5. So, for example, /dev/hda3 is
the third primary or extended partition on the first IDE hard
disk, and /dev/sdb6 is the second logical
partition on the second SCSI hard disk.
 | Note |
|---|
| | There is no part of this naming convention that is based on
partition type; unlike DOS/Windows, all
partitions can be identified under Red Hat Linux. Of course, this does not
mean that Red Hat Linux can access data on every type of partition, but in
many cases it is possible to access data on a partition dedicated to
another operating system.
|
Keep this information in mind; it will make things easier to
understand when you are setting up the partitions Red Hat Linux requires.
If your Red Hat Linux partitions will be sharing a hard disk with partitions
used by other operating systems, most of the time you will have no
problems. However, there are certain combinations of Linux and other
operating systems that require extra care. Information on creating
disk partitions compatible with other operating systems is available
in several HOWTOs and Mini-HOWTOs, available on the Red Hat Linux
Documentation CD in the HOWTO and HOWTO/mini
directories. In particular, the Mini-HOWTOs whose names start with
Linux+ are quite helpful.
 | Note |
|---|
| | If Red Hat Linux/x86 will coexist on your machine with OS/2, you must
create your disk partitions with the OS/2 partitioning
software —— otherwise, OS/2 may not recognize the disk partitions.
During the installation, do not create any new partitions, but do
set the proper partition types for your Linux partitions using the
Linux fdisk.
|
One area that many people new to Linux find confusing is the matter of
how partitions are used and accessed by the Linux operating system.
In DOS/Windows, it is relatively simple: Each partition gets a "drive
letter." You then use the correct drive letter to refer to files and
directories on its corresponding partition.
This is entirely different from how Linux deals with partitions and,
for that matter, with disk storage in general. The main difference is
that each partition is used to form part of the storage necessary to
support a single set of files and directories. This is done by
associating a partition with a directory through a process known as
mounting. Mounting a partition makes its
storage available starting at the specified directory (known as a
mount point).
For example, if partition /dev/hda5 were mounted
on /usr, that would mean that all files and
directories under /usr would physically reside on
/dev/hda5. So the file
/usr/share/doc/FAQ/txt/Linux-FAQ would be stored on
/dev/hda5, while the file
/etc/X11/gdm/Sessions/Gnome would not.
Continuing our example, it is also possible that one or more
directories below /usr would be mount points for
other partitions. For instance, a partition (say,
/dev/hda7) could be mounted on
/usr/local, meaning that
/usr/local/man/whatis would then reside on
/dev/hda7 rather than
/dev/hda5.
At this point in the process of preparing to install Red Hat Linux, you will
need to give some consideration to the number and size of the
partitions to be used by your new operating system. The question of
"how many partitions" continues to spark debate within the Linux
community and, without any end to the debate in sight, it is safe to
say that there are probably as many partition layouts as there are
people debating the issue.
Keeping this in mind, we recommend that, unless you have a reason for
doing otherwise, you should at least create the following partitions:
A swap partition — Swap partitions are
used to support virtual memory. In other words, data is written to
swap when there is not RAM to hold the data your system is
processing. You must create a swap partition to
correctly use Red Hat Linux. The minimum size of your swap partition should
be equal to twice the amount of your computer's RAM or 32 MB,
whichever is larger.
A /boot partition
— The partition mounted on /boot
contains the operating system kernel (which allows your system to boot Red Hat Linux),
along with a few other files used during the bootstrap process.
Due to the limitations of most PC BIOSs, creating a small
partition to hold these files is a good idea. For most users, a 32
MB boot partition is sufficient.
A root partition (/)
— The root partition is where / (the
root directory) resides. In this partitioning layout, all files
(except those stored in /boot)
reside on the
root partition. Because of this, it is in your best interest to
maximize the size of your root partition. A 1.2 GB root partition
will permit the equivalent of a workstation installation
(with very little free space), while a 3.4 GB
root partition will let you install every package. Obviously, the
more space you can give the root partition, the better.
Specific recommendations concerning the proper size for various Red Hat Linux
partitions can be found in the section called Step 5 - Which Installation Class is Best For You? in Chapter 1.
GRUB and LILO are the most commonly used methods to boot Red Hat Linux on
Intel-based systems. As operating system loaders, they operate
"outside" of any operating system, using only the Basic I/O System (or
BIOS) built into the computer hardware itself. This section describe
GRUB and LILO's interactions with PC BIOSs and is specific to
Intel-compatible computers.
GRUB and LILO are subject to some limitations imposed by the BIOS in most
Intel-based computers. Specifically, most BIOSs cannot access more
than two hard drives, and they cannot access any data stored beyond
cylinder 1023 of any drive. Note that some recent BIOSs do not
have these limitations, but this is by no means universal.
All the data GRUB and LILO need to access at boot time (including
the Linux kernel) are located in the /boot
directory. If you follow the partition layout recommended above or
are performing a workstation or server install, the
/boot directory will be in a small, separate
partition. Otherwise, it may reside in the root partition
(/). In either case, the partition in which
/boot resides must conform to the following
guidelines if you are going to use GRUB or LILO to boot your Red Hat Linux
system:
- On First Two IDE Drives
If you have 2 IDE (or EIDE) drives, /boot
must be located on one of them. Note that this two-drive limit
also includes any IDE CD-ROM drives on your primary IDE
controller. So, if you have one IDE hard drive, and one IDE
CD-ROM on your primary controller, /boot
must be located on the first hard drive
only, even if you have other hard drives
on your secondary IDE controller.
- On First IDE or First SCSI Drive
If you have one IDE (or EIDE) drive and one or more SCSI
drives, /boot must be located either on
the IDE drive or the SCSI drive at ID 0. No other SCSI IDs
will work.
- On First Two SCSI Drives
If you have only SCSI hard drives, /boot
must be located on a drive at ID 0 or ID 1. No other SCSI IDs
will work.
- Partition Completely Below Cylinder 1023
No matter which of the above configurations apply, the
partition that holds /boot must be
located entirely below cylinder 1023. If the partition
holding /boot straddles cylinder 1023,
you may face a situation where GRUB and LILO will work initially
(because all the necessary information is below cylinder
1023) but will fail if a new kernel is to be loaded and that
kernel resides above cylinder 1023.
As mentioned earlier, it is possible that some of the newer BIOSs
may permit GRUB and LILO to work with configurations that do not meet
these guidelines. Likewise, some of GRUB and LILO's more esoteric
features may be used to get a Linux system started, even if the
configuration does not meet our guidelines. However, due to the
number of variables involved, Red Hat cannot support such efforts.
 | Note |
|---|
| | Disk Druid, as well as the workstation-
and server installations, takes these BIOS-related
limitations into account.
|
|
|
|
|
|
|
|
|
Disclaimer: For authoritative source or latest update to this
documentation, please refer to http://www.redhat.com/docs/manuals/linux/ |
|
 |
|
|
|
Quotes: It is a golden rule not to judge men by their opinions but rather by what their opinions make of them.
|
|
|
|
|
|
|