fdisk
util-linux fdisk 是一个交互式命令行工具,用于创建和操作硬盘上的分区表和分区。硬盘被划分为分区,这种划分描述在分区表中。
本文档涵盖了 fdisk(8) 及其相关的 sfdisk(8) 工具。
安装
fdisk 及其相关工具由 util-linux 包提供,该包是 base 元包的依赖项。
列出分区
要列出 块设备 上的分区表和分区,可以运行以下命令,其中 device 是一个名称,如 /dev/sda、/dev/nvme0n1、/dev/mmcblk0 等。
# fdisk -l /dev/sda
/proc/partitions 中的所有分区。备份和恢复分区表
在对硬盘进行更改之前,您可能需要备份驱动器的分区表和分区方案。您也可以使用备份将相同分区布局复制到多个驱动器上。
对于 GPT 和 MBR,您都可以使用 sfdisk 使用 -d/--dump 选项将设备的分配布局保存到文件中。运行以下命令来处理设备 /dev/sda
# sfdisk -d /dev/sda > sda.dump
对于一个大小为 1 GiB 的 ext4 分区,文件应该看起来像这样
sda.dump
label: gpt label-id: AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE device: /dev/sda unit: sectors first-lba: 34 last-lba: 1048576 sector-size: 512 /dev/sda1 : start=2048, size=1048576, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=BBF1CD36-9262-463E-A4FB-81E32C12BDE7
要稍后恢复此布局,可以运行
# sfdisk /dev/sda < sda.dump
创建分区表和分区
对磁盘进行 分区 的第一步是创建分区表。之后,根据所需的 分区方案 创建实际的分区。请参阅 分区表 文章,以帮助决定使用 MBR 还是 GPT。
在开始之前,您可能希望 备份 当前的分区表和方案。
fdisk 自动执行分区对齐,以 2048 个 512 字节扇区(1 MiB)为块大小,这应该与所有 高级格式化 硬盘以及绝大多数(如果不是全部) SSD 兼容。这意味着默认设置将为您提供正确的对齐。
要使用 fdisk,请运行程序并提供您要更改/编辑的 块设备 的名称。此示例使用 /dev/sda
# fdisk /dev/sda
这将打开 fdisk 对话框,您可以在其中输入命令。
创建新表
- 在分区之前,请检查您的 NVMe 驱动器和高级格式化硬盘是否使用了 最佳逻辑扇区大小。
- 在分区 SSD 之前,请考虑执行 SSD 内存单元清除。
要创建新的分区表并清除所有当前分区数据,请在提示符处键入 g 以创建 GUID 分区表 (GPT),或键入 o 以创建 MBR 分区表。如果所需的表已创建,请跳过此步骤。
创建分区
使用 n 命令创建新分区。您必须输入分区编号、起始扇区和结束扇区。如果使用 MBR 进行格式化,可能还需要分区类型。
分区类型
使用 MBR 时,fdisk 会要求输入 MBR 分区类型。指定它,键入 p 创建主分区,或键入 e 创建扩展分区。最多可以有四个主分区。
fdisk 不会询问分区类型 ID,默认使用“Linux filesystem”;您可以在 稍后更改。
分区编号
分区编号是分配给分区的数字,例如,在 /dev/sda 磁盘上编号为 1 的分区将是 /dev/sda1,在 /dev/nvme0n1 上是 /dev/nvme0n1p1,在 /dev/mmcblk0 上是 /dev/mmcblk0p1。有关命名方案的详细信息,请参阅 设备文件#分区。分区编号可能不总是与磁盘上的分区顺序匹配,在这种情况下可以 排序。
建议选择 fdisk 建议的默认编号。
起始扇区和结束扇区
起始扇区必须使用绝对扇区编号指定。结束扇区可以使用绝对扇区位置指定,或使用以 kibibytes (K)、mebibytes (M)、gibibytes (G)、tebibytes (T) 或 pebibytes (P) 为单位的测量位置来指定;
结束扇区的位置可以指定为
- 从磁盘开始的绝对位置。例如,
40M作为起始扇区指定了距离磁盘开始处 40 MiB 的位置。 - 相对位置,通过在大小前加上
+size或-size来指定。例如,+2G指定起始扇区后 2 GiB 的位置,或-200M指定距离最后一个可用扇区前 200 MiB 的位置。
按 Enter 键而不输入任何内容会指定默认值,即起始扇区为最大可用块的开始,结束扇区为同一块的结束。
重复此过程,直到拥有所需的分区。
更改分区类型
每个分区都与一个类型相关联。MBR 使用 分区 ID;GPT 使用 分区类型 GUID。
按 t 更改分区的类型。您可以使用常见分区类型的别名
使 MBR 分区可引导
可以通过键入 a 使 MBR 分区 可引导(也称为激活)。
审查并写入更改到分区表
- 通过
p命令打印更改。 - 通过
q命令中止更改。 - 使用
w命令将更改写入磁盘并退出。
创建文件系统
要在新分区上创建文件系统,请参阅 文件系统#创建文件系统。
移动分区
为了移动分区,您需要在分区将被移动的位置有可用空间。如有必要,可以通过缩小分区及其文件系统来腾出空间。请参阅 Parted#缩小分区。要重新定位分区
# echo '+sectors,' | sfdisk --move-data device -N number
其中 sectors 是移动分区的扇区数(+ 表示向前移动),device 是包含分区的设备,number 是分区编号。请注意,如果您在磁盘的中间或开头添加新分区,则很可能需要重新编号分区。请参阅 #排序分区 或 fdisk 的“附加功能”模式。
技巧与提示
排序分区
这适用于在两个分区之间的空间中创建了新分区或删除了分区的情况。本示例中使用 /dev/sda。
# sfdisk -r /dev/sda
排序分区后,如果您未使用 持久块设备命名,则可能需要调整 /etc/fstab 和/或 /etc/crypttab 配置文件。