Red Hat Training

A Red Hat training course is available for RHEL 8

第 3 章 分区入门

作为系统管理员,您可以使用以下步骤创建、删除和修改各种磁盘分区。

有关在块设备中使用分区的优缺点概述,请参阅以下 KBase 文章:

3.1. 重新划分现存分区的大小

作为系统管理员,您可以显示块设备的分区表来查看分区布局和单个分区的详情。

3.1.1. 使用 parted 查看分区表

这个步骤描述了如何使用 parted 工具查看块设备的分区表。

流程

  1. 启动交互式 parted shell:

    # parted block-device
    • 使用您要检查的设备的路径替换 block-device:例如 /dev/sda
  2. 查看分区表:

    (parted) print
  3. 另外,使用以下命令切换到您想要检查下一个设备的另一个设备:

    (parted) select block-device

其它资源

  • parted(8) man page。

3.1.2. parted print 的输出示例

本节提供了 parted shell 中的 print 命令输出示例,并描述输出中的字段。

例 3.1. print 命令的输出

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

下面是这些字段的描述:

Model: ATA SAMSUNG MZNLN256 (scsi)
磁盘类型、制造商、型号号和接口。
Disk /dev/sda: 256GB
到块设备和存储容量的文件路径。
Partition Table: msdos
磁盘标签类型。
Number
分区号。例如:带有次号码 1 的分区对应 /dev/sda1
StartEnd
在分区启动和结束的设备中的位置。
Type
有效类型为 metadata、free、primary、extended 或 logical。
File system
文件系统类型。如果设备的 File system 字段没有显示值,这意味着其文件系统类型未知。parted 工具无法识别加密设备的文件系统。
Flags
列出为分区设置的标记。可用标记有 bootrootswaphiddenraidlvmlba

3.2. 在磁盘中创建分区表

作为系统管理员,您可以使用不同类型的分区表格式化块设备来启用该设备的分区。

警告

使用分区表格式化块设备会删除该设备中所有存储的数据。

3.2.1. 修改磁盘分区前的注意事项

本节列出了在创建、删除或重新定义分区大小前需要考虑的关键点。

注意

本节不涵盖 DASD 分区表,它特定于 IBM Z 构架。有关 DASD 的详情请参考:

分区的最大数量

设备中的分区数量受分区表类型的限制:

  • 在使用主引导记录(MBR)分区表格式化的设备中,您可以使用:

    • 最多四个主分区,或者
    • 最多有三个主分区,以及一个扩展分区,其中包括多个逻辑分区。
  • 在使用 GUID 分区表(GPT) 格式化的设备中,最多分区数为 128。尽管 GPT 规范通过增大为分区表保留的区域来允许更多分区,但 parted 工具使用的常见做法是将其限制为 128 分区足够区域。
注意

红帽建议,除非您有其他原因,否则至少应创建以下分区swap/boot// (root)。

分区的最大大小

设备中的分区大小受分区表类型的限制:

  • 在使用主引导记录(MBR) 分区表格式化的设备中,最大值为 2TiB。
  • 在使用 GUID 分区表(GPT) 格式化的设备中,最大大小为 8ZiB。

如果要创建一个大于 2TiB 的分区,该磁盘必须使用 GPT 格式化。

大小协调

parted 工具可让您使用多个不同的后缀指定分区大小:

MiB、GiB 或 TiB

大小为 2 的指数代表。

  • 分区的起点与根据大小指定的扇区一致。
  • 结束点与指定大小减 1 扇区一致。
MB、GB 或 TB

以 10 的指数表示容量。

起始和结束点在指定单元的一半内一致:例如,使用 MB 后缀时 ±500KB。

3.2.2. 分区表类型比较

本节比较您可以在块设备中创建的不同类型的分区表的属性。

表 3.1. 分区表类型

分区表最多分区数最大分区大小

主引导记录(MBR)

4 个主分区,或 3 个主分区和一个扩展分区中的 12 个逻辑分区

2TiB

GUID 分区表(GPT)

128

8ZiB

3.2.3. MBR 磁盘分区

本章图表显示分区表与实际磁盘分开。但这并不完全准确。实际上,分区表被保存在磁盘的最开始,并在任何文件系统或用户数据之前。为了简洁,下图将它们分开。

图 3.1. 有 MBR 分区表的磁盘

未使用的分区驱动器

如上图所示,分区表被分为四节(四个主分区)。主分区是在硬盘中只能包含一个逻辑驱动器(或部分)的分区。每个部分都可以保存定义单个分区所需的信息,即分区表只能定义四个分区。

每个分区表条目包含分区的几个重要特征:

  • 磁盘上分区开始和结束的地方。
  • 分区是否 活跃。只能有一个分区被标记为活跃分区。
  • 分区的类型。

起点和结束点定义了分区的大小和在磁盘中的位置。"active(活跃)"标志是被某些操作系统引导装载程序使用。换句话说,位于被标记为"活跃"的分区中的操作系统会被引导。

类型是一个数字,用于识别分区预定的用法。某些操作系统使用分区类型表示特定的文件系统类型,将分区标记为与特定操作系统关联的分区,表示该分区包含可引导的操作系统,或者三个操作系统的某种组合。

下图显示了含有单一分区的驱动器示例:

图 3.2. 只有一个分区的磁盘

dos 单个分区

这个例子里的单个分区被标记为 DOS。这个标签显示分区类型,DOS 是最常见的分区类型之一。

3.2.4. 扩展 MBR 分区

如果四个分区不足,您可以使用扩展分区来创建额外的分区。您可以把分区类型设置为"Extended"来达到此目的。

扩展分区本身就如同磁盘驱动器一样 - 它有自己的分区表,指向一个或多个分区(现在称为逻辑分区,而不是四个主分区),它完全包含在扩展的分区中。下图显示了一个带有一个主分区的磁盘驱动器,另一个扩展分区包含两个逻辑分区(以及一些未分区的可用空间):

图 3.3. 带主和扩展 MBR 分区的磁盘

扩展分区

如图表中所暗示,主分区和逻辑分区之间有一个区别 - 主分区和扩展分区的数量只能是 4 个,但逻辑分区的数量没有固定限制。但是,由于在 Linux 中访问分区的方式,单个磁盘驱动器上无法定义超过 15 个逻辑分区。

3.2.5. MBR 分区类型

下表显示了一些常用的 MBR 分区类型和用于代表它们的十六进制数字。

表 3.2. MBR 分区类型

MBR 分区类型

MBR 分区类型

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

3.2.6. GUID 分区表

GUID 分区表(GPT)是基于使用全局唯一标识符(GUID)的分区方案。GPT 的开发目的是弥补 MBR 分区表的限制,特别是对磁盘的最大可寻址存储空间的限制。MBR 无法寻址大于 2 TiB 的存储(等同于大约 2.2 TB),而 GPT 可以用于大于这个存储限制的硬盘,其可寻址的最大磁盘大小为 2.2 ZiB。另外,GPT 默认支持创建最多 128 个主分区。这个号码可以通过为分区表分配更多空间来扩展。

注意

GPT 有基于 GUID 的分区类型。请注意,某些分区需要一个特定的 GUID。例如:EFI 引导装载程序的系统分区需要 GUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B

GPT 磁盘使用逻辑块寻址(LBA),分区布局如下:

  • 为了保持与 MBR 磁盘的向后兼容性,GPT 的第一个扇区(LBA 0)保留用于 MBR 数据,它称为"保护 MBR"。
  • 主 GPT 标头从设备的第二个逻辑块(LBA 1)开始。标头中包含磁盘 GUID、主分区表的位置、从属 GPT 标头的位置、自身的 CRC32 checksum 以及主分区表。它还指定表上的分区条目数目。
  • 默认情况下,主 GPT 包括 128 个分区条目,每个条目大小为 128 字节,其分区类型 GUID 和唯一分区 GUID。
  • 二级 GPT 与主 GPT 相同。它主要用作恢复的备份表,以防主分区表损坏。
  • 辅助 GPT 标头位于磁盘的最后一个逻辑扇区,在主标头损坏时可用于恢复 GPT 信息。它包含磁盘 GUID、二级分区表和主 GPT 标头的位置、自身的 CRC32 checksums 校验、从属分区表,以及可能的分区条目数目。

图 3.4. 带有 GUID 分区表的磁盘

GPT 分区
重要

必须有一个 BIOS 引导分区才能成功安装引导装载程序到包含 GPT(GUID 分区表)的磁盘中。这包括 Anaconda 初始化的磁盘。如果磁盘已经包含 BIOS 引导分区,则它可以被重复使用。

3.2.7. 使用 parted 在磁盘中创建分区表

这个步骤描述了如何使用 parted 工具格式化带有分区表的块设备。

流程

  1. 启动交互式 parted shell:

    # parted block-device
    • 使用您要创建分区表的设备的路径替换 block-device:例如 /dev/sda
  2. 确定该设备中是否已有一个分区表:

    (parted) print

    如果设备已经包含分区,将在后续步骤中删除它们。

  3. 创建新分区表:

    (parted) mklabel table-type
    • 用预期的分区表类型来替换 table-type

      • msdos 用于 MBR
      • gpt 用于 GPT

    例 3.2. 创建 GPT 表

    例如,要在磁盘中创建 GPT 表,请使用:

    (parted) mklabel gpt

    输入此命令后,这些更改就会生效,因此在执行前请先重新检查。

  4. 查看分区表以确认分区表是否存在:

    (parted) print
  5. 退出 parted shell:

    (parted) quit

其它资源

  • parted(8) man page。

后续步骤

3.3. 创建分区

作为系统管理员,您可以在磁盘上创建新分区。

3.3.1. 修改磁盘分区前的注意事项

本节列出了在创建、删除或重新定义分区大小前需要考虑的关键点。

注意

本节不涵盖 DASD 分区表,它特定于 IBM Z 构架。有关 DASD 的详情请参考:

分区的最大数量

设备中的分区数量受分区表类型的限制:

  • 在使用主引导记录(MBR)分区表格式化的设备中,您可以使用:

    • 最多四个主分区,或者
    • 最多有三个主分区,以及一个扩展分区,其中包括多个逻辑分区。
  • 在使用 GUID 分区表(GPT) 格式化的设备中,最多分区数为 128。尽管 GPT 规范通过增大为分区表保留的区域来允许更多分区,但 parted 工具使用的常见做法是将其限制为 128 分区足够区域。
注意

红帽建议,除非您有其他原因,否则至少应创建以下分区swap/boot// (root)。

分区的最大大小

设备中的分区大小受分区表类型的限制:

  • 在使用主引导记录(MBR) 分区表格式化的设备中,最大值为 2TiB。
  • 在使用 GUID 分区表(GPT) 格式化的设备中,最大大小为 8ZiB。

如果要创建一个大于 2TiB 的分区,该磁盘必须使用 GPT 格式化。

大小协调

parted 工具可让您使用多个不同的后缀指定分区大小:

MiB、GiB 或 TiB

大小为 2 的指数代表。

  • 分区的起点与根据大小指定的扇区一致。
  • 结束点与指定大小减 1 扇区一致。
MB、GB 或 TB

以 10 的指数表示容量。

起始和结束点在指定单元的一半内一致:例如,使用 MB 后缀时 ±500KB。

3.3.2. 分区类型

本节描述了指定分区类型的不同属性。

分区类型或标志

分区类型或标志仅供运行中的系统少用。但是,分区类型与实时生成器有关,如 systemd-gpt-auto-generator,它们使用分区类型自动识别和挂载设备。

  • parted 工具通过将分区类型映射到标记来提供对分区类型的一些控制。parted 实用程序只能处理某些分区类型:例如 LVM、swap 或 RAID。
  • fdisk 工具通过指定十六进制代码来支持全范围的分区类型。
分区文件系统类型

在创建分区时,parted 工具接受文件系统类型参数。该值用于:

  • 在 MBR 中设定分区标记,或者
  • 在 GPT 中设定分区 UUID 类型。例如, swapfathfs 文件系统类型设置了不同的 GUID。默认值为 Linux Data GUID。

参数不会以任何形式修改分区中的文件系统。它只区分受支持的标志或 GUID。

支持以下文件系统类型:

  • xfs
  • ext2
  • ext3
  • ext4
  • fat16
  • fat32
  • hfs
  • hfs+
  • linux-swap
  • ntfs
  • reiserfs

3.3.3. 分区命名方案

Red Hat Enterprise Linux 使用基于文件的命名方案,格式为 /dev/xxyN

设备和分区名称由以下结构组成:

/dev/
这是所有设备文件所在的目录名称。由于分区放置在硬盘中,而硬盘是设备,代表所有可能分区的文件位于 /dev 中。
xx
分区名的前两个字母标明分区所在设备的类型,通常是 sd
y
这个字母标明分区所在的设备。例如:第一个硬盘为 /dev/sda,第二个硬盘为 /dev/sdb,以此类推。在超过 26 个驱动器的系统中,您可以使用更多字母。例如: /dev/sdaa1
N
最后的字母代表分区的数字。前四个分区(主分区或扩展分区)由 14 进行编号。逻辑分区从 5 开始。例如: /dev/sda3 是第一个硬盘上的第三个主分区或扩展分区,/dev/sdb6 是第二个硬盘中的第二个逻辑分区。驱动器分区编号只适用于 MBR 分区表。请注意,N 并不总是意味着分区。
注意

即使 Red Hat Enterprise Linux 可以识别和引用 所有类型的磁盘分区,它可能无法读取文件系统,因此无法访问分区类型中保存的数据。然而,在很多情况下,成功访问专用于另一个操作系统的分区中的数据是可能的。

3.3.4. 挂载点和磁盘分区

在 Red Hat Enterprise Linux 中,每个分区都被用来成为支持一组文件和目录所必需的存储的一部分。这可使用名为 mounting 的进程完成,该进程可将分区和目录相关联。挂载分区后,可以从指定的目录(称为挂载点 )开始使用其存储。

例如:如果分区 /dev/sda5 挂载到 /usr/,这意味着 /usr/ 下的所有文件和目录实际都驻留在 /dev/sda5 中。因此 /usr/share/doc/FAQ/txt/Linux-FAQ 文件将存储在 /dev/sda5 中,而 /etc/gdm/custom.conf 文件则不会。

继续这个示例,/usr/ 以下一个或多个目录可能是其他分区的挂载点。例如,一个 /dev/sda7 分区可挂载到 /usr/local 上,这意味着 /usr/local/man/whatis 将位于 /dev/sda7 中而不是 /dev/sda5

3.3.5. 使用 parted 创建分区

这个步骤描述了如何使用 parted 工具在块设备中创建新分区。

先决条件

流程

  1. 启动交互式 parted shell:

    # parted block-device
    • 使用您要创建分区的设备的路径替换 block-device:例如 /dev/sda
  2. 查看当前的分区表来确定是否有足够空闲空间:

    (parted) print
    • 如果没有足够的可用空间,您可以调整现有分区的大小。更多信息请参阅 第 3.5 节 “重新定义分区尺寸”
    • 从分区表中决定:

      • 新分区的开始和结束点
      • 在 MBR 上,它应该是什么分区类型。
  3. 创建新分区:

    (parted) mkpart part-type name fs-type start end
    • 根据您在分区表里决定的,用 primarylogicalextended 替换 part-type。这只适用于 MBR 分区表。
    • 使用任意分区名称替换 name。对于 GPT 分区表,这是必需的。
    • 使用 xfsext2ext3ext4fat16fat32hfshfs+linux-swapntfsreiserfs 之一替换 fs-typefs-type 参数是可选的。请注意,parted 不会在分区中创建文件系统。
    • 用从磁盘开头起计算分区开始和结束点的大小替换start end。您可以使用大小后缀,如 512MiB20GiB1.5TiB。默认大小 MB。

    例 3.3. 创建小的主分区

    例如:要在 MBR 表中创建主分区(从 1024MiB 到 2048MiB),使用:

    (parted) mkpart primary 1024MiB 2048MiB

    输入此命令后,这些更改就会生效,因此在执行前请先重新检查。

  4. 查看分区表以确认创建的分区位于分区表中,并带有正确的分区类型、文件系统类型和大小:

    (parted) print
  5. 退出 parted shell:

    (parted) quit
  6. 使用以下命令等待系统注册新设备节点:

    # udevadm settle
  7. 验证内核是否识别了新的分区:

    # cat /proc/partitions

其它资源

  • parted(8) man page。

3.3.6. 使用 fdisk 设置分区类型

这个步骤描述了如何使用 fdisk 实用程序设置分区类型或标志。

先决条件

  • 磁盘上有一个分区。

流程

  1. 启动交互式 fdisk shell:

    # fdisk block-device
    • 使用您要设置分区类型的设备的路径替换 block-device:例如 /dev/sda
  2. 查看当前的分区表以确定副分区号码:

    Command (m for help): print

    您可以在 Type 列中看到当前的分区类型及其对应的类型 ID(在 Id 列中)。

  3. 输入分区类型命令并使用它的副号码选择分区:

    Command (m for help): type
    Partition number (1,2,3 default 3): 2
  4. 另外,还可列出可用的十六进制代码:

    Hex code (type L to list all codes): L
  5. 设置分区类型:

    Hex code (type L to list all codes): 8e
  6. 编写更改并退出 fdisk shell:

    Command (m for help): write
    The partition table has been altered.
    Syncing disks.
  7. 验证您的更改:

    # fdisk --list block-device

3.4. 删除分区

作为系统管理员,您可以删除不再用来释放磁盘空间的磁盘分区。

警告

删除分区将删除保存在分区中的所有数据。

3.4.1. 修改磁盘分区前的注意事项

本节列出了在创建、删除或重新定义分区大小前需要考虑的关键点。

注意

本节不涵盖 DASD 分区表,它特定于 IBM Z 构架。有关 DASD 的详情请参考:

分区的最大数量

设备中的分区数量受分区表类型的限制:

  • 在使用主引导记录(MBR)分区表格式化的设备中,您可以使用:

    • 最多四个主分区,或者
    • 最多有三个主分区,以及一个扩展分区,其中包括多个逻辑分区。
  • 在使用 GUID 分区表(GPT) 格式化的设备中,最多分区数为 128。尽管 GPT 规范通过增大为分区表保留的区域来允许更多分区,但 parted 工具使用的常见做法是将其限制为 128 分区足够区域。
注意

红帽建议,除非您有其他原因,否则至少应创建以下分区swap/boot// (root)。

分区的最大大小

设备中的分区大小受分区表类型的限制:

  • 在使用主引导记录(MBR) 分区表格式化的设备中,最大值为 2TiB。
  • 在使用 GUID 分区表(GPT) 格式化的设备中,最大大小为 8ZiB。

如果要创建一个大于 2TiB 的分区,该磁盘必须使用 GPT 格式化。

大小协调

parted 工具可让您使用多个不同的后缀指定分区大小:

MiB、GiB 或 TiB

大小为 2 的指数代表。

  • 分区的起点与根据大小指定的扇区一致。
  • 结束点与指定大小减 1 扇区一致。
MB、GB 或 TB

以 10 的指数表示容量。

起始和结束点在指定单元的一半内一致:例如,使用 MB 后缀时 ±500KB。

3.4.2. 使用 parted 删除分区

这个步骤描述了如何使用 parted 工具删除磁盘分区。

流程

  1. 启动交互式 parted shell:

    # parted block-device
    • 使用您要删除分区的设备的路径替换 block-device:例如 /dev/sda
  2. 查看当前的分区表以确定要删除的分区的副号码:

    (parted) print
  3. 删除分区:

    (parted) rm minor-number
    • 使用您要删除的分区的次要号码替换 minor-number:例如: 3

    输入此命令后,这些更改就会生效,因此在执行前请先重新检查。

  4. 确认分区已从分区表中被删除:

    (parted) print
  5. 退出 parted shell:

    (parted) quit
  6. 确定内核知道已删除该分区:

    # cat /proc/partitions
  7. 如果分区存在,从 /etc/fstab 文件中删除它。找到声明已删除分区的行,并将其从 文件中删除。
  8. 重新生成挂载单元以便您的系统注册新的 /etc/fstab 配置:

    # systemctl daemon-reload
  9. 如果您删除了交换分区或删除了 LVM 部分,请从 /etc/default/grub 文件中的内核命令行中删除所有对分区的引用,并重新生成 GRUB 配置:

    • 在基于 BIOS 的系统中:

      # grub2-mkconfig --output=/etc/grub2.cfg
    • 在基于 UEFI 的系统中:

      # grub2-mkconfig --output=/etc/grub2-efi.cfg
  10. 要在早期引导系统中注册更改,重建 initramfs 文件系统:

    # dracut --force --verbose

其它资源

  • parted(8) man page

3.5. 重新定义分区尺寸

作为系统管理员,您可以扩展分区来利用未使用的磁盘空间,或者缩小分区以达到不同的目的。

3.5.1. 修改磁盘分区前的注意事项

本节列出了在创建、删除或重新定义分区大小前需要考虑的关键点。

注意

本节不涵盖 DASD 分区表,它特定于 IBM Z 构架。有关 DASD 的详情请参考:

分区的最大数量

设备中的分区数量受分区表类型的限制:

  • 在使用主引导记录(MBR)分区表格式化的设备中,您可以使用:

    • 最多四个主分区,或者
    • 最多有三个主分区,以及一个扩展分区,其中包括多个逻辑分区。
  • 在使用 GUID 分区表(GPT) 格式化的设备中,最多分区数为 128。尽管 GPT 规范通过增大为分区表保留的区域来允许更多分区,但 parted 工具使用的常见做法是将其限制为 128 分区足够区域。
注意

红帽建议,除非您有其他原因,否则至少应创建以下分区swap/boot// (root)。

分区的最大大小

设备中的分区大小受分区表类型的限制:

  • 在使用主引导记录(MBR) 分区表格式化的设备中,最大值为 2TiB。
  • 在使用 GUID 分区表(GPT) 格式化的设备中,最大大小为 8ZiB。

如果要创建一个大于 2TiB 的分区,该磁盘必须使用 GPT 格式化。

大小协调

parted 工具可让您使用多个不同的后缀指定分区大小:

MiB、GiB 或 TiB

大小为 2 的指数代表。

  • 分区的起点与根据大小指定的扇区一致。
  • 结束点与指定大小减 1 扇区一致。
MB、GB 或 TB

以 10 的指数表示容量。

起始和结束点在指定单元的一半内一致:例如,使用 MB 后缀时 ±500KB。

3.5.2. 使用 parted 重新定义分区大小

这个过程使用 parted 工具重新定义磁盘分区大小。

先决条件

  • 如果您想缩小分区,备份保存在分区上的数据。

    警告

    缩小分区可能会导致分区上的数据丢失。

  • 如果要将分区大小调整为大于 2TiB,磁盘必须使用 GUID 分区表(GPT)进行格式化。有关如何格式化磁盘的详情请参考 第 3.2 节 “在磁盘中创建分区表”

流程

  1. 如果您想缩小分区,首先缩小它上面的文件系统,使其不大于重新定义大小的分区。请注意 XFS 不支持缩小。
  2. 启动交互式 parted shell:

    # parted block-device
    • 使用您要重新定义分区大小的设备的路径替换 block-device: 例如 /dev/sda
  3. 查看当前的分区表:

    (parted) print

    从分区表中决定:

    • 分区的从号码
    • 调整大小后现有分区的位置和新结束点
  4. 重新定义分区大小:

    (parted) resizepart minor-number new-end
    • 使用您要重新划分大小的分区的副号码替换 minor-number:例如: 3
    • 用决定重新定义大小的新分区的结束点(从磁盘开始计算)替换 new-end。您可以使用大小后缀,如 512MiB20GiB1.5TiB。默认大小 MB。

    例 3.4. 扩展分区

    例如,要将位于磁盘开头的分区大小扩展为 2GiB,请使用:

    (parted) resizepart 1 2GiB

    输入此命令后,这些更改就会生效,因此在执行前请先重新检查。

  5. 查看分区表以确认重新定义大小的分区位于分区表中,大小正确:

    (parted) print
  6. 退出 parted shell:

    (parted) quit
  7. 验证内核是否识别了新的分区:

    # cat /proc/partitions
  8. 如果您扩展了分区,也扩展了它上面的文件系统。详情请参阅(参考)。

其它资源

  • parted(8) man page。

3.6. 重新分区磁盘策略

重新分区磁盘的方法有几种。本节讨论以下可能的方法:

  • 有可用的未分区的空闲空间
  • 有可用的未使用过的分区
  • 被活跃使用的分区内有可用的空闲空间

请注意,本节仅讨论前面提到的概念,不包括关于如何执行磁盘重新分区步骤的任何流程步骤。

注意

为了清晰起见,以下示意图进行了简化,不反映您在实际安装 Red Hat Enterprise Linux 时遇到的确切分区布局。

3.6.1. 使用未分区的空闲空间

在这种情况下,已定义的分区不会跨越整个硬盘,留下不属于任何定义的分区的未分配空间。下图显示了以下情况:

图 3.5. 有未分区的可用空间的磁盘

unpart 空间

在上例中,第一个图表示一个具有一个主分区的磁盘,以及一个具有未分配空间的未定义分区的磁盘,第二个图代表了具有两个定义分区且分配空间的磁盘。

未使用的硬盘也属于这一类别。唯一的区别在于,所有空间并非任何定义的分区的一部分

无论哪种情况,您都可以从未使用的空间创建必要的分区。这种情境很可能是新磁盘。大部分预安装的操作系统都被配置为占据磁盘驱动器上所有可用空间。

3.6.2. 使用未使用分区中的空间

在这种情况下,您可以有一个或者多个不再使用的分区。下图显示了这种情况。

图 3.6. 有未使用分区的磁盘

未使用的分区

在上例中,第一个图表示带有未使用分区的磁盘,第二个图表示为 Linux 重新分配未使用的分区。

在这种情况下,您可以使用分配给未使用分区的空间。您必须删除分区,然后在其位置创建适当的 Linux 分区。您可以删除未使用的分区并在安装过程中手动创建新分区。

3.6.3. 使用活跃分区中的空闲空间

这是最常见的情况。它也是最难以处理的,因为即使您有足够的可用空间,它也当前被分配给已在使用的分区。如果您购买了一台带有预安装软件的计算机,硬盘很可能有一个大型分区存放操作系统和数据。

除了向系统添加新硬盘驱动器外,您还可以从破坏性和非破坏性重新分区中选择。

3.6.3.1. 破坏性重新分区

这会删除分区并创建几个较小的分区。您必须进行完整备份,因为原始分区中的所有数据都会被破坏。创建两个备份,使用验证(如果您的备份软件中可用),并在删除分区前尝试从备份中读取数据

警告

如果在该分区上安装了操作系统,必须重新安装它才能使用该系统。请注意,一些与预安装操作系统一起销售的计算机可能不包括安装介质来重新安装原始操作系统。在销毁原始分区及其操作系统安装前,您应该检查是否对您的系统适用。

为现有操作系统创建一个更小的分区后,您可以重新安装软件,恢复您的数据并启动 Red Hat Enterprise Linux 安装。

图 3.7. 在磁盘上进行破坏性重新分区动作

dstrct reprt
警告

原有分区中的数据将会丢失。

3.6.3.2. 非破坏性重新分区

通过非破坏性重新分区,您将执行一个程序,使大分区减小而不丢失该分区中存储的任何文件。这个方法通常是可靠的,但在大型驱动器上可能非常耗时。

非破坏性重新分区过程很简单,它由三个步骤组成:

  1. 压缩和备份现存数据
  2. 重新划分现存分区的大小
  3. 创建新分区

每个步骤都会详细介绍。

3.6.3.2.1. 压缩现有数据

第一步要压缩现存分区上的数据。这样做的原因是重新排列数据,以最大化分区"结尾"的可用空间。

图 3.8. 磁盘压缩

compression

在上例中,第一个图在压缩前代表磁盘,压缩后的第二个图表代表磁盘。

这一步骤至关重要。如果没有它,数据的位置可能会阻止分区的大小调整为所需的范围。请注意,有些数据无法移动。在这种情况下,它会严重限制新分区的大小,并且可能强制您以破坏性方式重新分区磁盘。

3.6.3.2.2. 重新定义现有分区大小

下图显示了实际调整大小的流程。虽然重新定义大小操作的实际结果会有所不同,具体取决于所使用的软件,但在大多数情况下,新释放空间用于创建与原始分区相同的类型未格式化的分区。

图 3.9. 分区在磁盘上调整大小

部分调整大小

在上例中,第一个图表示重新定义大小前的分区,调整大小后的第二个图表。

务必要了解重新定义软件大小对新释放空间有什么作用,以便您可以执行相应的步骤。在此处演示的情形中,最好删除新的 DOS 分区并创建适当的 Linux 分区或分区。

3.6.3.2.3. 创建新分区

重新定义现存分区大小 示例中所述,创建新分区可能也可能不是必需的。然而,除非重新分区软件支持安装 Linux 系统,您很可能需要删除在调整大小过程中创建的分区。

图 3.10. 带有最终分区配置的磁盘

nondestruct fin

在上例中,第一个图表示配置前的磁盘,配置后是第二个图表。