Chapter 10. Getting started with partitions
As a system administrator, you can use the following procedures to create, delete, and modify various types of disk partitions.
For an overview of the advantages and disadvantages to using partitions on block devices, see the following KBase article: https://access.redhat.com/solutions/163853.
10.1. Viewing the partition table
As a system administrator, you can display the partition table of a block device to see the partition layout and details about individual partitions.
10.1.1. Viewing the partition table with parted
This procedure describes how to view the partition table on a block device using the parted
utility.
Procedure
Start the interactive
parted
shell:# parted block-device
-
Replace block-device with the path to the device you want to examine: for example,
/dev/sda
.
-
Replace block-device with the path to the device you want to examine: for example,
View the partition table:
(parted) print
Optionally, use the following command to switch to another device you want to examine next:
(parted) select block-device
Additional resources
-
The
parted(8)
man page.
10.1.2. Example output of parted print
This section provides an example output of the print
command in the parted
shell and describes fields in the output.
Example 10.1. Output of the print
command
Model: ATA SAMSUNG MZNLN256 (scsi) Disk /dev/sda: 256GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 269MB 268MB primary xfs boot 2 269MB 34.6GB 34.4GB primary 3 34.6GB 45.4GB 10.7GB primary 4 45.4GB 256GB 211GB extended 5 45.4GB 256GB 211GB logical
Following is a description of the fields:
Model: ATA SAMSUNG MZNLN256 (scsi)
- The disk type, manufacturer, model number, and interface.
Disk /dev/sda: 256GB
- The file path to the block device and the storage capacity.
Partition Table: msdos
- The disk label type.
Number
-
The partition number. For example, the partition with minor number 1 corresponds to
/dev/sda1
. Start
andEnd
- The location on the device where the partition starts and ends.
Type
- Valid types are metadata, free, primary, extended, or logical.
File system
-
The file system type. If the
File system
field of a device shows no value, this means that its file system type is unknown. Theparted
utility cannot recognize the file system on encrypted devices. Flags
-
Lists the flags set for the partition. Available flags are
boot
,root
,swap
,hidden
,raid
,lvm
, orlba
.
10.2. Creating a partition table on a disk
As a system administrator, you can format a block device with different types of partition tables to enable using partitions on the device.
Formatting a block device with a partition table deletes all data stored on the device.
10.2.1. Considerations before modifying partitions on a disk
This section lists key points to consider before creating, removing, or resizing partitions.
This section does not cover the DASD partition table, which is specific to the IBM Z architecture. For information on DASD, see:
- Configuring a Linux instance on IBM Z
- The What you should know about DASD article at the IBM Knowledge Center
The maximum number of partitions
The number of partitions on a device is limited by the type of the partition table:
On a device formatted with the Master Boot Record (MBR) partition table, you can have either:
- Up to four primary partitions, or
- Up to three primary partitions, one extended partition, and multiple logical partitions within the extended.
-
On a device formatted with the GUID Partition Table (GPT), the maximum number of partitions is 128. While the GPT specification allows for more partitions by growing the area reserved for the partition table, common practice used by the
parted
utility is to limit it to enough area for 128 partitions.
Red Hat recommends that, unless you have a reason for doing otherwise, you should at least create the following partitions: swap
, /boot/
, and /
(root).
The maximum size of a partition
The size of a partition on a device is limited by the type of the partition table:
- On a device formatted with the Master Boot Record (MBR) partition table, the maximum size is 2TiB.
- On a device formatted with the GUID Partition Table (GPT), the maximum size is 8ZiB.
If you want to create a partition larger than 2TiB, the disk must be formatted with GPT.
Size alignment
The parted
utility enables you to specify partition size using multiple different suffixes:
- MiB, GiB, or TiB
Size expressed in powers of 2.
- The starting point of the partition is aligned to the exact sector specified by size.
- The ending point is aligned to the specified size minus 1 sector.
- MB, GB, or TB
Size expressed in powers of 10.
The starting and ending point is aligned within one half of the specified unit: for example, ±500KB when using the MB suffix.
10.2.2. Comparison of partition table types
This section compares the properties of different types of partition tables that you can create on a block device.
Table 10.1. Partition table types
Partition table | Maximum number of partitions | Maximum partition size |
---|---|---|
Master Boot Record (MBR) | 4 primary, or 3 primary and 12 logical inside an extended partition | 2TiB |
GUID Partition Table (GPT) | 128 | 8ZiB |
10.2.3. MBR disk partitions
The diagrams in this chapter show the partition table as being separate from the actual disk. However, 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 the following diagrams.
Figure 10.1. Disk with MBR partition table
As the previous diagram shows, the partition table is divided into four sections of four primary partitions. A primary partition is a partition on a hard drive that can contain only one logical drive (or section). 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:
- The points on the disk where the partition starts and ends.
- Whether the partition is active. Only one partition can be flagged as active.
- The partition’s type.
The starting and ending points 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, in this case.
The type is a number that identifies the partition’s anticipated usage. 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.
The following diagram shows an example of a drive with single partition:
Figure 10.2. Disk with a single partition
The single partition in this example is labeled as DOS
. This label shows the partition type, with DOS
being one of the most common ones.
10.2.4. Extended MBR partitions
In case four partitions are insufficient for your needs, you can use extended partitions to create up additional partitions. You can do this by setting the type of partition to "Extended".
An extended partition is like a disk drive in its own right - it has its own partition table, which points to one or more partitions (now called logical partitions, as opposed to the four primary partitions), contained entirely within the extended partition itself. The following diagram shows a disk drive with one primary partition and one extended partition containing two logical partitions (along with some unpartitioned free space):
Figure 10.3. Disk with both a primary and an extended MBR partition
As this figure implies, there is a difference between primary and logical partitions - there can be only up to four primary and extended 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, no more than 15 logical partitions can be defined on a single disk drive.
10.2.5. MBR partition types
The table below shows a list of some of the commonly used MBR partition types and hexadecimal numbers used to represent them.
Table 10.2. MBR partition types
MBR partition type | Value | MBR partition type | Value |
Empty | 00 | Novell Netware 386 | 65 |
DOS 12-bit FAT | 01 | PIC/IX | 75 |
XENIX root | O2 | Old MINIX | 80 |
XENIX usr | O3 | 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 |
PRep Boot | 41 | DOS R/O | e3 |
GNU HURD | 63 | DOS secondary | f2 |
Novell Netware 286 | 64 | BBT | ff |
10.2.6. GUID Partition Table
The GUID Partition Table (GPT) is a partitioning scheme based on using Globally Unique Identifier (GUID). GPT was developed to cope with limitations of the MBR partition table, especially with the limited maximum addressable storage space of a disk. Unlike MBR, which is unable to address storage larger than 2 TiB (equivalent to approximately 2.2 TB), GPT is used with hard disks larger than this; the maximum addressable disk size is 2.2 ZiB. In addition, GPT, by default, supports creating up to 128 primary partitions. This number could be extended by allocating more space to the partition table.
A GPT has partition types based on GUIDs. Note that certain partitions require a specific GUID. For example, the system partition for EFI boot loaders require GUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B
.
GPT disks use logical block addressing (LBA) and the partition layout is as follows:
- To preserve backward compatibility with MBR disks, the first sector (LBA 0) of GPT is reserved for MBR data and it is called "protective MBR".
- The primary GPT header begins on the second logical block (LBA 1) of the device. The header contains the disk GUID, the location of the primary partition table, the location of the secondary GPT header, and CRC32 checksums of itself, and the primary partition table. It also specifies the number of partition entries on the table.
- The primary GPT includes, by default 128 partition entries, each with an entry size of 128 bytes, its partition type GUID and unique partition GUID.
- The secondary GPT is identical to the primary GPT. It is used mainly as a backup table for recovery in case the primary partition table is corrupted.
- The secondary GPT header is located on the last logical sector of the disk and it can be used to recover GPT information in case the primary header is corrupted. It contains the disk GUID, the location of the secondary partition table and the primary GPT header, CRC32 checksums of itself and the secondary partition table, and the number of possible partition entries.
Figure 10.4. Disk with a GUID Partition Table
There must be a BIOS boot partition for the boot loader to be installed successfully onto a disk that contains a GPT (GUID Partition table). This includes disks initialized by Anaconda. If the disk already contains a BIOS boot partition, it can be reused.
10.2.7. Creating a partition table on a disk with parted
This procedure describes how to format a block device with a partition table using the parted
utility.
Procedure
Start the interactive
parted
shell:# parted block-device
-
Replace block-device with the path to the device where you want to create a partition table: for example,
/dev/sda
.
-
Replace block-device with the path to the device where you want to create a partition table: for example,
Determine if there already is a partition table on the device:
(parted) print
If the device already contains partitions, they will be deleted in the next steps.
Create the new partition table:
(parted) mklabel table-type
Replace table-type with with the intended partition table type:
-
msdos
for MBR -
gpt
for GPT
-
Example 10.2. Creating a GPT table
For example, to create a GPT table on the disk, use:
(parted) mklabel gpt
The changes start taking place as soon as you enter this command, so review it before executing it.
View the partition table to confirm that the partition table exists:
(parted) print
Exit the
parted
shell:(parted) quit
Additional resources
-
The
parted(8)
man page.
Next steps
- Create partitions on the device. See Section 10.3, “Creating a partition” for details.
10.3. Creating a partition
As a system administrator, you can create new partitions on a disk.
10.3.1. Considerations before modifying partitions on a disk
This section lists key points to consider before creating, removing, or resizing partitions.
This section does not cover the DASD partition table, which is specific to the IBM Z architecture. For information on DASD, see:
- Configuring a Linux instance on IBM Z
- The What you should know about DASD article at the IBM Knowledge Center
The maximum number of partitions
The number of partitions on a device is limited by the type of the partition table:
On a device formatted with the Master Boot Record (MBR) partition table, you can have either:
- Up to four primary partitions, or
- Up to three primary partitions, one extended partition, and multiple logical partitions within the extended.
-
On a device formatted with the GUID Partition Table (GPT), the maximum number of partitions is 128. While the GPT specification allows for more partitions by growing the area reserved for the partition table, common practice used by the
parted
utility is to limit it to enough area for 128 partitions.
Red Hat recommends that, unless you have a reason for doing otherwise, you should at least create the following partitions: swap
, /boot/
, and /
(root).
The maximum size of a partition
The size of a partition on a device is limited by the type of the partition table:
- On a device formatted with the Master Boot Record (MBR) partition table, the maximum size is 2TiB.
- On a device formatted with the GUID Partition Table (GPT), the maximum size is 8ZiB.
If you want to create a partition larger than 2TiB, the disk must be formatted with GPT.
Size alignment
The parted
utility enables you to specify partition size using multiple different suffixes:
- MiB, GiB, or TiB
Size expressed in powers of 2.
- The starting point of the partition is aligned to the exact sector specified by size.
- The ending point is aligned to the specified size minus 1 sector.
- MB, GB, or TB
Size expressed in powers of 10.
The starting and ending point is aligned within one half of the specified unit: for example, ±500KB when using the MB suffix.
10.3.2. Partition types
This section describes different attributes that specify the type of a partition.
Partition types or flags
The partition type, or flag, is used by a running system only rarely. However, the partition type matters to on-the-fly generators, such as systemd-gpt-auto-generator
, which use the partition type to, for example, automatically identify and mount devices.
-
The
parted
utility provides some control of partition types by mapping the partition type to flags. The parted utility can handle only certain partition types: for example LVM, swap, or RAID. -
The
fdisk
utility supports the full range of partition types by specifying hexadecimal codes.
Partition file system type
The parted
utility optionally accepts a file system type argument when creating a partition. The value is used to:
- Set the partition flags on MBR, or
-
Set the partition UUID type on GPT. For example, the
swap
,fat
, orhfs
file system types set different GUIDs. The default value is the Linux Data GUID.
The argument does not modify the file system on the partition in any way. It only differentiates between the supported flags or GUIDs.
The following file system types are supported:
-
xfs
-
ext2
-
ext3
-
ext4
-
fat16
-
fat32
-
hfs
-
hfs+
-
linux-swap
-
ntfs
-
reiserfs
10.3.3. Partition naming scheme
Red Hat Enterprise Linux uses a file-based naming scheme, with file names in the form of /dev/xxyN
.
Device and partition names consist of the following structure:
/dev/
-
This is the name of the directory in which all device files are located. Because partitions are placed on hard disks, and hard disks are devices, the files representing all possible partitions are located in
/dev
. xx
-
The first two letters of the partitions name indicate the type of device on which is the partition located, usually
sd
. y
-
This letter indicates which device the partition is on. For example,
/dev/sda
for the first hard disk,/dev/sdb
for the second, and so on. In systems with more than 26 drives, you can use more letters. For example,/dev/sdaa1
. N
-
The final letter indicates the number that represents the partition. The first four (primary or extended) partitions are numbered
1
through4
. Logical partitions start at5
. For example,/dev/sda3
is the third primary or extended partition on the first hard disk, and/dev/sdb6
is the second logical partition on the second hard disk. Drive partition numbering applies only to MBR partition tables. Note that N does not always mean partition.
Even if Red Hat Enterprise Linux can identify and refer to all types of disk partitions, it might not be able to read the file system and therefore access stored data on every partition type. However, in many cases, it is possible to successfully access data on a partition dedicated to another operating system.
10.3.4. Mount points and disk partitions
In Red Hat Enterprise Linux, each partition is used to form part of the storage necessary to support a single set of files and directories. This is done using the process known as mounting, which associates a partition with a directory. Mounting a partition makes its storage available starting at the specified directory, known as a mount point.
For example, if partition /dev/sda5
is mounted on /usr/
, that would mean that all files and directories under /usr/
physically reside on /dev/sda5
. So the file /usr/share/doc/FAQ/txt/Linux-FAQ
would be stored on /dev/sda5
, while the file /etc/gdm/custom.conf
would not.
Continuing the example, it is also possible that one or more directories below /usr/
would be mount points for other partitions. For instance, a partition /dev/sda7
could be mounted on /usr/local
, meaning that /usr/local/man/whatis
would then reside on /dev/sda7
rather than /dev/sda5
.
10.3.5. Creating a partition with parted
This procedure describes how to create a new partition on a block device using the parted
utility.
Prerequisites
- There is a partition table on the disk. For details on how to format the disk, see Section 10.2, “Creating a partition table on a disk”.
- If the partition you want to create is larger than 2TiB, the disk must be formatted with the GUID Partition Table (GPT).
Procedure
Start the interactive
parted
shell:# parted block-device
-
Replace block-device with the path to the device where you want to create a partition: for example,
/dev/sda
.
-
Replace block-device with the path to the device where you want to create a partition: for example,
View the current partition table to determine if there is enough free space:
(parted) print
- If there is not enough free space, you can resize an existing partition. For more information, see Section 10.5, “Resizing a partition”.
From the partition table, determine:
- The start and end points of the new partition
- On MBR, what partition type it should be.
Create the new partition:
(parted) mkpart part-type name fs-type start end
-
Replace part-type with with
primary
,logical
, orextended
based on what you decided from the partition table. This applies only to the MBR partition table. - Replace name with an arbitrary partition name. This is required for GPT partition tables.
-
Replace fs-type with any one of
xfs
,ext2
,ext3
,ext4
,fat16
,fat32
,hfs
,hfs+
,linux-swap
,ntfs
, orreiserfs
. The fs-type parameter is optional. Note thatparted
does not create the file system on the partition. -
Replace start and end with the sizes that determine the starting and ending points of the partition, counting from the beginning of the disk. You can use size suffixes, such as
512MiB
,20GiB
, or1.5TiB
. The default size megabytes.
Example 10.3. Creating a small primary partition
For example, to create a primary partition from 1024MiB until 2048MiB on an MBR table, use:
(parted) mkpart primary 1024MiB 2048MiB
The changes start taking place as soon as you enter this command, so review it before executing it.
-
Replace part-type with with
View the partition table to confirm that the created partition is in the partition table with the correct partition type, file system type, and size:
(parted) print
Exit the
parted
shell:(parted) quit
Use the following command to wait for the system to register the new device node:
# udevadm settle
Verify that the kernel recognizes the new partition:
# cat /proc/partitions
Additional resources
-
The
parted(8)
man page.
10.3.6. Setting a partition type with fdisk
This procedure describes how to set a partition type, or flag, using the fdisk
utility.
Prerequisites
- There is a partition on the disk.
Procedure
Start the interactive
fdisk
shell:# fdisk block-device
-
Replace block-device with the path to the device where you want to set a partition type: for example,
/dev/sda
.
-
Replace block-device with the path to the device where you want to set a partition type: for example,
View the current partition table to determine the minor partition number:
Command (m for help): print
You can see the current partition type in the
Type
column and its corresponding type ID in theId
column.Enter the partition type command and select a partition using its minor number:
Command (m for help): type Partition number (1,2,3 default 3): 2
Optionally, list the available hexadecimal codes:
Hex code (type L to list all codes): L
Set the partition type:
Hex code (type L to list all codes): 8e
Write your changes and exit the
fdisk
shell:Command (m for help): write The partition table has been altered. Syncing disks.
Verify your changes:
# fdisk --list block-device
10.4. Removing a partition
As a system administrator, you can remove a disk partition that is no longer used to free up disk space.
Removing a partition deletes all data stored on the partition.
10.4.1. Considerations before modifying partitions on a disk
This section lists key points to consider before creating, removing, or resizing partitions.
This section does not cover the DASD partition table, which is specific to the IBM Z architecture. For information on DASD, see:
- Configuring a Linux instance on IBM Z
- The What you should know about DASD article at the IBM Knowledge Center
The maximum number of partitions
The number of partitions on a device is limited by the type of the partition table:
On a device formatted with the Master Boot Record (MBR) partition table, you can have either:
- Up to four primary partitions, or
- Up to three primary partitions, one extended partition, and multiple logical partitions within the extended.
-
On a device formatted with the GUID Partition Table (GPT), the maximum number of partitions is 128. While the GPT specification allows for more partitions by growing the area reserved for the partition table, common practice used by the
parted
utility is to limit it to enough area for 128 partitions.
Red Hat recommends that, unless you have a reason for doing otherwise, you should at least create the following partitions: swap
, /boot/
, and /
(root).
The maximum size of a partition
The size of a partition on a device is limited by the type of the partition table:
- On a device formatted with the Master Boot Record (MBR) partition table, the maximum size is 2TiB.
- On a device formatted with the GUID Partition Table (GPT), the maximum size is 8ZiB.
If you want to create a partition larger than 2TiB, the disk must be formatted with GPT.
Size alignment
The parted
utility enables you to specify partition size using multiple different suffixes:
- MiB, GiB, or TiB
Size expressed in powers of 2.
- The starting point of the partition is aligned to the exact sector specified by size.
- The ending point is aligned to the specified size minus 1 sector.
- MB, GB, or TB
Size expressed in powers of 10.
The starting and ending point is aligned within one half of the specified unit: for example, ±500KB when using the MB suffix.
10.4.2. Removing a partition with parted
This procedure describes how to remove a disk partition using the parted
utility.
Procedure
Start the interactive
parted
shell:# parted block-device
-
Replace block-device with the path to the device where you want to remove a partition: for example,
/dev/sda
.
-
Replace block-device with the path to the device where you want to remove a partition: for example,
View the current partition table to determine the minor number of the partition to remove:
(parted) print
Remove the partition:
(parted) rm minor-number
-
Replace minor-number with the minor number of the partition you want to remove: for example,
3
.
The changes start taking place as soon as you enter this command, so review it before executing it.
-
Replace minor-number with the minor number of the partition you want to remove: for example,
Confirm that the partition is removed from the partition table:
(parted) print
Exit the
parted
shell:(parted) quit
Verify that the kernel knows the partition is removed:
# cat /proc/partitions
-
Remove the partition from the
/etc/fstab
file if it is present. Find the line that declares the removed partition, and remove it from the file. Regenerate mount units so that your system registers the new
/etc/fstab
configuration:# systemctl daemon-reload
If you have deleted a swap partition or removed pieces of LVM, remove all references to the partition from the kernel command line in the
/etc/default/grub
file and regenerate GRUB configuration:On a BIOS-based system:
# grub2-mkconfig --output=/etc/grub2.cfg
On a UEFI-based system:
# grub2-mkconfig --output=/etc/grub2-efi.cfg
To register the changes in the early boot system, rebuild the
initramfs
file system:# dracut --force --verbose
Additional resources
-
The
parted(8)
man page
10.5. Resizing a partition
As a system administrator, you can extend a partition to utilize unused disk space, or shrink a partition to use its capacity for different purposes.
10.5.1. Considerations before modifying partitions on a disk
This section lists key points to consider before creating, removing, or resizing partitions.
This section does not cover the DASD partition table, which is specific to the IBM Z architecture. For information on DASD, see:
- Configuring a Linux instance on IBM Z
- The What you should know about DASD article at the IBM Knowledge Center
The maximum number of partitions
The number of partitions on a device is limited by the type of the partition table:
On a device formatted with the Master Boot Record (MBR) partition table, you can have either:
- Up to four primary partitions, or
- Up to three primary partitions, one extended partition, and multiple logical partitions within the extended.
-
On a device formatted with the GUID Partition Table (GPT), the maximum number of partitions is 128. While the GPT specification allows for more partitions by growing the area reserved for the partition table, common practice used by the
parted
utility is to limit it to enough area for 128 partitions.
Red Hat recommends that, unless you have a reason for doing otherwise, you should at least create the following partitions: swap
, /boot/
, and /
(root).
The maximum size of a partition
The size of a partition on a device is limited by the type of the partition table:
- On a device formatted with the Master Boot Record (MBR) partition table, the maximum size is 2TiB.
- On a device formatted with the GUID Partition Table (GPT), the maximum size is 8ZiB.
If you want to create a partition larger than 2TiB, the disk must be formatted with GPT.
Size alignment
The parted
utility enables you to specify partition size using multiple different suffixes:
- MiB, GiB, or TiB
Size expressed in powers of 2.
- The starting point of the partition is aligned to the exact sector specified by size.
- The ending point is aligned to the specified size minus 1 sector.
- MB, GB, or TB
Size expressed in powers of 10.
The starting and ending point is aligned within one half of the specified unit: for example, ±500KB when using the MB suffix.
10.5.2. Resizing a partition with parted
This procedure resizes a disk partition using the parted
utility.
Prerequisites
If you want to shrink a partition, back up the data that are stored on it.
WarningShrinking a partition might result in data loss on the partition.
- If you want to resize a partition to be larger than 2TiB, the disk must be formatted with the GUID Partition Table (GPT). For details on how to format the disk, see Section 10.2, “Creating a partition table on a disk”.
Procedure
- If you want to shrink the partition, shrink the file system on it first so that it is not larger than the resized partition. Note that XFS does not support shrinking.
Start the interactive
parted
shell:# parted block-device
-
Replace block-device with the path to the device where you want to resize a partition: for example,
/dev/sda
.
-
Replace block-device with the path to the device where you want to resize a partition: for example,
View the current partition table:
(parted) print
From the partition table, determine:
- The minor number of the partition
- The location of the existing partition and its new ending point after resizing
Resize the partition:
(parted) resizepart minor-number new-end
-
Replace minor-number with the minor number of the partition that you are resizing: for example,
3
. -
Replace new-end with the size that determines the new ending point of the resized partition, counting from the beginning of the disk. You can use size suffixes, such as
512MiB
,20GiB
, or1.5TiB
. The default size megabytes.
Example 10.4. Extending a partition
For example, to extend a partition located at the beginning of the disk to be 2GiB in size, use:
(parted) resizepart 1 2GiB
The changes start taking place as soon as you enter this command, so review it before executing it.
-
Replace minor-number with the minor number of the partition that you are resizing: for example,
View the partition table to confirm that the resized partition is in the partition table with the correct size:
(parted) print
Exit the
parted
shell:(parted) quit
Verify that the kernel recognizes the new partition:
# cat /proc/partitions
- If you extended the partition, extend the file system on it as well. See (reference) for details.
Additional resources
-
The
parted(8)
man page.
10.6. Strategies for repartitioning a disk
There are several different ways to repartition a disk. This section discusses the following possible approaches:
- Unpartitioned free space is available
- An unused partition is available
- Free space in an actively used partition is available
Note that this section discusses the previously mentioned concepts only theoretically and it does not include any procedural steps on how to perform disk repartitioning step-by-step.
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 Enterprise Linux.
10.6.1. Using unpartitioned free space
In this situation, the partitions that are already defined do not span the entire hard disk, leaving unallocated space that is not part of any defined partition. The following diagram shows what this might look like:
Figure 10.5. Disk with unpartitioned free space
In the previous example, the first diagram represents a disk with one primary partition and an undefined partition with unallocated space, and the second diagram represents a disk with two defined partitions with allocated space.
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. This scenario is mostly likely for a new disk. Most preinstalled operating systems are configured to take up all available space on a disk drive.
10.6.2. Using space from an unused partition
In this case, you can have one or more partitions that you no longer use. The following diagram illustrated such a situation.
Figure 10.6. Disk with an unused partition
In the previous example, the first diagram represents a disk with an unused partition, and the second diagram represents reallocating an unused partition for Linux.
In this situation, you can use the space allocated to the unused partition. You must delete the partition and then create the appropriate Linux partition(s) in its place. You can delete the unused partition and manually create new partitions during the installation process.
10.6.3. Using free space from an active partition
This is the most common situation. It is also the hardest to handle, because 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 preinstalled 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 can choose from destructive and non-destructive repartitioning.
10.6.3.1. Destructive repartitioning
This deletes the partition and creates several smaller ones instead. You must make a complete backup because any data in the original partition is destroyed. Create two backups, use verification (if available in your backup software), and try to read data from the backup before deleting the partition.
If an operating system was installed on that partition, it must be reinstalled if you want to use that system as well. Be aware that some computers sold with pre-installed operating systems might not include the installation media to reinstall the original operating system. You should check whether this applies to your system before you destroy your original partition and its operating system installation.
After creating a smaller partition for your existing operating system, you can reinstall software, restore your data, and start your Red Hat Enterprise Linux installation.
Figure 10.7. Destructive repartitioning action on disk
Any data previously present in the original partition is lost.
10.6.3.2. Non-destructive repartitioning
With non-destructive repartitioning you execute a program that makes a big partition smaller without losing any of the files stored in that partition. This method is usually reliable, but can be very time-consuming on large drives.
The non-destructive repartitioning process is straightforward and consist of three steps:
- Compress and backup existing data
- Resize the existing partition
- Create new partition(s)
Each step is described further in more detail.
10.6.3.2.1. Compressing existing data
The first step is to compress the data in your existing partition. The reason for doing this is to rearrange the data to maximize the available free space at the "end" of the partition.
Figure 10.8. Compression on disk
In the previous example, the first diagram represents disk before compression, and the second diagram after compression.
This step is crucial. Without it, the location of the data could prevent the partition from being resized to the desired extent. Note that some data cannot be moved. In this case, it severely restricts the size of your new partitions, and you might be forced to destructively repartition your disk.
10.6.3.2.2. Resizing the existing partition
The following figure 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.
Figure 10.9. Partition resizing on disk
In the previous example, the first diagram represents partition before resizing, and the second diagram after resizing.
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 illustrated here, it would be best to delete the new DOS partition and create the appropriate Linux partition or partitions.
10.6.3.2.3. Creating new partitions
As mentioned in the example Resizing the existing partition, it might or might not be necessary to create new partitions. However, unless your resizing software supports systems with Linux installed, it is likely that you must delete the partition that was created during the resizing process.
Figure 10.10. Disk with final partition configuration
In the previous example, the first diagram represents disk before configuration, and the second diagram after configuration.