Fdisk (简体中文)
Related articles
GPT fdisk 是编辑 GPT 硬盘的文本模式工具集。由 gdisk, sgdisk 和 cgdisk 组成,它们分别和来自 util-linux 的 fdisk (用于 MBR 硬盘)等价。在 [extra] 源的 gptfdisk 可用。
来自 util-linux (基于 util-linux 内建的 libfdisk) 的 fdisk 工具部分支持 GPT, 但仍在测试阶段 (自从2013年10月7日). 相关的 cfdisk 和 sfdisk 仍不支持 GPT, 并在 GPT 硬盘上使用的话有可能损坏 GPT 头和分区表。
Contents
使用 GPT - 推荐方式
Gdisk 用法
使用 GPT 的话,用于编辑分区表的工具是 gdisk。它可以自动将分区在 2048 扇区对齐(或 1024 KiB)进行对齐,这对于绝大多数主流 SSD 来说都是兼容的。GNU parted 也支持 GPT,但是在分区对齐方面的用户友好性较差。Arch 的安装 ISO 镜像提供的环境是 gdisk 命令。如果你在系统安装完成之后想要使用它,可以在 gptfdisk 包中找到 gdisk。
典型的gdisk使用方式总结如下:
- 以 root 身份启动 gdisk (disk-device 形如
/dev/sda
):
# gdisk disk-device
- 如果是全新的磁盘或你想重新分区,使用
o
命令建立一个新的空 GUID 分区表。 - 使用
n
命令创建一个新的分区(主分区/第一分区)。 - Assuming the partition is new, gdisk will pick the highest possible alignment. Otherwise, it will pick the largest power of two that divides all partition offsets.
- 如果指定使用第 2048 扇区之前的扇区作为起点,gdisk 会自动将分区起点移至第 2048 扇区。这是为了保证 2048 扇区对齐(由于每个扇区大小是 512 字节,这也就是能够保证兼容几乎所有 SSD NAND 擦除块大小的 1024 KiB对齐)。
- 使用
+x{M,G}
的格式指定分区大小为 x MB 或 GB。如果指定的大小不是对齐大小(1024KiB)的整数倍,gdisk 会将其缩减到最临近的值。例如,如果你需要创建一个 15 GiB 的分区,你需要输入+15G
。如果想要使用所有剩余空间,直接敲下回车,或者输入+0
。 - 选择分区类型 ID。默认值
Linux filesystem
(代码8300
)在大多数情况下适用。输入L
会打印出所有分区类型代码的列表。如果想要使用 LVM,选择Linux LVM
(8e00
)。 - 其他分区的处理方式类似。
- 使用
w
命令将分区表写入磁盘并退出。 - 将新分区格式化为文件系统。
使用 MBR - 传统方式
使用 MBR 的话,可以使用fdisk 工具编辑分区表。新版本的 fdisk 已经废弃使用柱面作为默认显示单位的方式,同时默认也放弃了对MS-DOS的兼容性。最新版本的 fdisk 会自动将所有分区对齐到2048扇区,或1024 KiB,以兼容所有已知的 SSD 制造商的 EBS 大小。即使用默认设置即可获得合适的分区对齐。
注意,在以前 fdisk 使用柱面作为默认显示单位,并且保留了 MS-DOS 兼容性,这使其默认无法进行 SSD 对齐。因此人们需要从网上查找各种资料以保证分区对齐。使用最新版本的 fdisk 简单得多,正如本文档所述那样。
Fdisk 用法
- 以 root 身份启动 fdisk (disk-device 形如
/dev/sda
):
# fdisk disk-device
- 如果是全新的磁盘或你想重新分区,使用
o
命令建立一个新的空 DOS 分区表。 - 使用
n
命令创建一个新的分区(主分区/第一分区)。 - 使用
+xG
的格式指定分区大小为 x GB。例如,如果你需要创建一个 15 GiB 的分区,你需要输入+15G
。 - 使用
t
命令将分区的 ID 从默认值修改为 Linux(type 83
)。这是一个可选步骤。如果用户想创建其他类型的分区,如swap,NTFS,LVM 等也可以。注意,完整的可用分区类型列表可以通过l
命令获取。 - 其他分区的处理方式类似。
- 使用
w
命令将分区表写入磁盘并退出。 - 将新分区格式化为文件系统。
用 cgdisk 创建 GPT 分区
启动 cgdisk:
# cgdisk /dev/sda
根分区:
- 选择 New (或者按
N
) –Enter
以在第一个扇区 (2048) 上开始创建分区 – 输入15G
–Enter
以保持默认的十六进制码 (8300) –Enter
以分区名留空。
Home 分区:
- 按几次下方方向键,让光标移动到大的空白分区。
- 在第一扇区选择 New (或者按
N
) –Enter
–Enter
以使用全部剩余空间(或者您也可以输入确定的大小,比如 "30G") –Enter
以保持默认的十六进制码 (8300) –Enter
以分区名留空。
完成之后,分区界面应该类似下面:
Part. # Size Partition Type Partition Name ---------------------------------------------------------------- 1007.0 KiB free space 1 15.0 GiB Linux filesystem 2 123.45 GiB Linux filesystem
再三仔细检查分区大小和布局是否正确。
如果您想从头开始,直接选 Quit 或按 Q
退出,该动作不会保存任何变动,接着您再执行 cgdisk.
如果您对当前的分区方案感到满意,选 Write 或按 Shift+W
, 完成分区。输入 yes
, ,再选 Quit 或按 Q
, 可毫无新变动保留地退出。
用 fdisk 建立 MBR 分区
启动 fdisk :
# fdisk /dev/sda
创建分区表:
-
Command (m for help):
输入o
并按下Enter
然后建立第一个分区:
-
Command (m for help):
输入n
并按下Enter
- Partition type:
Select (default p):
按下Enter
-
Partition number (1-4, default 1):
按下Enter
-
First sector (2048-209715199, default 2048):
按下Enter
-
Last sector, +sectors or +size{K,M,G} (2048-209715199....., default 209715199):
输入+15G
并按下Enter
然后建立第二个分区:
-
Command (m for help):
输入n
并按下Enter
- Partition type:
Select (default p):
按下Enter
-
Partition number (1-4, default 2):
按下Enter
-
First sector (31459328-209715199, default 31459328):
按下Enter
-
Last sector, +sectors or +size{K,M,G} (31459328-209715199....., default 209715199):
按下Enter
现在预览下新的分区表:
-
Command (m for help):
输入p
并按下Enter
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x5698d902 Device Boot Start End Blocks Id System /dev/sda1 2048 31459327 15728640 83 Linux /dev/sda2 31459328 209715199 89127936 83 Linux
然后向磁盘写入这些改动:
-
Command (m for help):
输入w
并按下Enter
如果一切顺利无错误的话,fdisk 程序将显示如下信息:
The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
若因 fdisk 遇到错误导致以上操作无法完成,可以用 q
命令来退出。
从 MBR 转换为 GPT
gdisk (以及 sgdisk 和 cgdisk也是)最好的特性之一就是能无损转换 MBR 和 BSD 盘符到 GPT. 一旦转换完成,MBR 主分区和逻辑分区转换成 GPT 分区并生成有正确的分区类型 GUID 和 唯一分区 GUID.
只需打开 MBR, 用 gdisk 的"w"选项来把改变写入到硬盘(和 fdisk 类似)以转换到 GPT. 警惕所有错误并在写入硬盘之前修复它们,因为你会有损失数据的风险。更多信息见 http://www.rodsbooks.com/gdisk/mbr2gpt.html . 转换之后,需要重新安装引导器以配置到从 GPT 启动。