使用 sgdisk 管理分区

罗德里克·W·史密斯的 sgdisk 命令可用于从命令行管理硬盘驱动器的分区。 您需要开始使用它的基础知识如下所示。

以下六个参数是您使用 sgdisk 最基本功能所需要知道的全部内容:

  1. -p
    打印分区表:

    # sgdisk -p /dev/sda

  2. -dx
    删除分区 x:

    # sgdisk -d 1 /dev/sda

  3. -nx:y:z
    创建一个编号为 x 的新分区,从 y 开始,到 z 结束:

    # sgdisk -n 1:1MiB:2MiB /dev/sda

  4. -cx:y
    将分区 x 的名称更改为 y:

    # sgdisk -c 1:grub /dev/sda

  5. -tx:y
    将分区 x 的类型更改为 y:

    # sgdisk -t 1:ef02 /dev/sda

  6. –列表类型
    列出分区类型代码:

    # sgdisk –list-types

SGDisk 命令

正如您在上面的示例中看到的,大多数命令都要求 设备文件名 最后一个参数指定要操作的硬盘驱动器。

上面显示的参数可以组合起来,这样您就可以通过一次运行 sgdisk 命令来完全定义一个分区:

# sgdisk -n 1:1MiB:2MiB -t 1:ef02 -c 1:grub /dev/sda

可以通过在值前面加上前缀来为某些字段指定相对值 + 或者 象征。 如果您使用相对值,sgdisk 将为您计算。 为了 example, 以上 example 可以写成:

# sgdisk -n 1:1MiB:+1MiB -t 1:ef02 -c 1:grub /dev/sda

价值 0 对几个字段有特殊意义:

  • 在分区编号字段中,0 表示应使用下一个可用编号(编号从 1 开始)。
  • 在起始地址字段中,0 表示应该使用最大可用空闲空间块的开始。 硬盘驱动器开头的一些空间始终为分区表本身保留。
  • 在结束地址字段中,0 表示应该使用最大可用空闲空间块的末尾。

通过使用 0 和相应字段中的相对值,您可以创建一系列分区,而无需预先计算任何绝对值。 为了 example,以下 sgdisk 命令序列将创建典型 Linux 安装所需的所有基本分区,如果按顺序针对空白硬盘驱动器运行:

# sgdisk -n 0:0:+1MiB -t 0:ef02 -c 0:grub /dev/sda
# sgdisk -n 0:0:+1GiB -t 0:ea00 -c 0:boot /dev/sda
# sgdisk -n 0:0:+4GiB -t 0:8200 -c 0:swap /dev/sda
# sgdisk -n 0:0:0 -t 0:8300 -c 0:root /dev/sda

以上 example 展示了如何为基于 BIOS 的计算机对硬盘进行分区。 这 grub 分区 在基于 UEFI 的计算机上不需要。 因为 sgdisk 在上面为你计算所有的绝对值 example,您可以跳过在基于 UEFI 的计算机上运行第一个命令,其余命令无需修改即可运行。 同样,您可以跳过创建交换分区,并且不需要修改剩余的命令。

还有一个使用单个命令从硬盘中删除所有分区的快捷方式:

# sgdisk –zap-all /dev/sda

有关最新和详细的信息,请查看手册页:

$ man sgdisk