| |
|
Home
|
| Red Hat Linux 9: Red Hat Linux x86 Installation Guide |
|---|
| Prev | | Next |
Appendix E. An Introduction to Disk PartitionsDisk partitions are a standard part of the personal computer landscape
and have been for quite some time. However, with many people purchasing
computers featuring pre-installed 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 is as simple and painless as possible.
If you are reasonably comfortable with disk partitions, you could skip
ahead to Section E.1.4 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.
E.1. Hard Disk Basic ConceptsHard 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, this appendix uses 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 is adequate. 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…
E.1.1. It is Not What You Write, it is How You Write ItExperienced computer users probably got this one on the first try.
We need to format the drive. Formatting
(usually known as "making a file system") 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 file system involves some trade-offs:
A small percentage of the drive's available space is used to
store file system-related data and can be considered as overhead.
A file system splits the remaining space into small,
consistently-sized segments. For Linux, these segments are known
as blocks.
[1]
Given that file systems 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
file system. As Figure E-3, shows,
a disk drive may have one of many different file systems written on
it. As you might guess, different file systems tend to be incompatible;
that is, an operating system that supports one file system (or a
handful of related file system 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 file systems
(including many commonly used by other operating systems), making data
interchange between different file systems easy.
Of course, writing a file system 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 just
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.
E.1.2. Partitions: Turning One Drive Into ManyAs 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 file systems
were never designed to support anything above a certain capacity. Or
the file systems could support larger drives with
a greater capacity, but the overhead imposed by the file system 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 file system or user data. But
for clarity, they are 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" is 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 file system 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.
| 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 |
Table E-1. Partition Types 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.
E.1.3. Partitions within Partitions — An Overview of Extended
PartitionsOf 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, due to the way in which partitions are accessed in
Linux, you should avoid defining 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.
E.1.4. Making Room For Red Hat LinuxThere 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 us 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 encounter when actually
installing Red Hat Linux.
|
E.1.4.1. Using Unpartitioned Free SpaceIn 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 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 Section E.1.4.3 Using Free Space from an Active Partition).
Next, we will discuss a slightly more common situation.
E.1.4.2. Using Space from an Unused PartitionIn 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
parted command or you can select to create
partitions manually during the installation process and delete the
partition before creating a new one.
E.1.4.3. Using Free Space from an Active PartitionThis 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. 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:
Next we will look at each step in a bit more detail.
E.1.4.3.1. Compress existing dataAs 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.
E.1.4.3.2. Resize the existing partitionFigure 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 delete the new DOS partition and create the appropriate
Linux partition(s).
E.1.4.3.3. Create new 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
x86-based computers only.
|
As a convenience to our customers, we provide the
parted utility. This is a freely available program
that can resize partitions. If you decide to repartition your hard drive with
parted, it is important 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, CD-ROM, or
diskettes), and you should make sure they are readable before
proceeding.
Read the Documentation
— Completely read the parted
documentation; refer to the chapter titled Managing
Disk Storage in the
Red Hat Linux Customization Guide.
Should you decide to use parted, be aware
that after parted runs you are left with
two partitions: the one you resized, and the
one parted 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 the
Windows'fdisk partitioning utility under your
current operating system or while setting up partitions during
installation.
E.1.5. Partition Naming SchemeLinux 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 file system 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 file names 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, usually 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 makes things easier to
understand when you are setting up the partitions Red Hat Linux
requires.
E.1.6. Disk Partitions and Other Operating SystemsIf 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.
 | Note |
|---|
| | If Red Hat Linux 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 parted.
|
 | Note |
|---|
| | If you want to be able to read from and write to a Windows NT, 2000,
or XP partition from Red Hat Linux, do not set the Windows partition to file
system type NTFS. If the Windows partition is of type NTFS, the
partition can not be read in Red Hat Linux. If the Windows partition is of type
VFAT, the partition can be read in Red Hat Linux.
If you have multiple Windows partitions, not all of them have to be
of the same file system type. If you have more than one partition in
Windows, you can set one to use VFAT and store any files you wish to
share between Windows and Red Hat Linux on it. |
E.1.7. Disk Partitions and Mount PointsOne 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.
E.1.8. How Many Partitions?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: swap, /boot, and
/ (root).
For more information, refer to Section 3.19.4 Recommended Partitioning Scheme. Specific recommendations concerning the proper size for
various Red Hat Linux partitions can be found in Section 1.5 Which Installation Class is Best For You?. E.1.9. One Last Wrinkle: Using GRUB or LILOGRUB and LILO are the most commonly used methods to boot Red Hat Linux on
x86-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 describes
GRUB and LILO's interactions with PC BIOSes and is specific to
x86-compatible computers.
E.1.9.1. BIOS-Related Limitations Impacting GRUB and LILOGRUB and LILO are subject to some limitations imposed by the
BIOS in most x86-based computers. Specifically, most BIOSes cannot
access more than two hard drives, and they cannot access any data
stored beyond cylinder 1023 of any drive. Note that some recent
BIOSes do not have these limitations, but this is by no means
universal.
 | Tip |
|---|
| | While partitioning your hard drive, keep in
mind that the BIOS in some older systems cannot access more than
the first 1024 cylinders on a hard drive. If this is the case,
leave enough room for the /boot Linux
partition on the first 1024 cylinders of your hard drive to boot
Linux. The other Linux partitions can be after cylinder 1024.
In parted, 1024 cylinders equals 528MB
(this exact number is dependent on your BIOS, however). Refer to http://www.pcguide.com/ref/hdd/bios/sizeMB504-c.html
for more information. |
All the data GRUB and LILO need to access at boot time
(including the Linux kernel) is located in the
/boot directory. If you follow the partition
layout recommended above or are performing a workstation, personal
desktop, 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.
As mentioned earlier, it is possible that some of the newer
BIOSes 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 automatic partitioning, 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: Flaming enthusiasm, backed by horse sense and persistence, is the quality that most frequently makes for success.
|
|
|
|
|
|
|