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)块大小基准上自动执行分区对齐,这应与所有 高级格式 HDD 和绝大多数(如果不是全部)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 文件系统”;您可以稍后更改它。
分区号
分区号是分配给分区的数字,例如,磁盘 /dev/sda
上编号为 1
的分区将是 /dev/sda1
,/dev/nvme0n1
上的 /dev/nvme0n1p1
和 /dev/mmcblk0
上的 /dev/mmcblk0p1
。有关命名方案的详细信息,请参阅 设备文件#分区。分区号可能并不总是与磁盘上分区的顺序匹配,在这种情况下,可以对它们进行排序。
建议选择 fdisk 建议的默认编号。
起始和结束扇区
必须使用扇区号以绝对术语指定起始扇区。可以使用扇区号的绝对位置或以千字节(K
)、兆字节(M
)、吉字节(G
)、太字节(T
)或拍字节(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
配置文件。