PRF:20190410 Managing Partitions with sgdisk.md

@geekpi
This commit is contained in:
Xingyu.Wang 2019-04-24 11:33:15 +08:00
parent 0152170ef1
commit c4695a1f3f

View File

@ -1,6 +1,6 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: reviewer: (wxy)
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Managing Partitions with sgdisk)
@ -12,30 +12,45 @@
![][1]
[Roderick W. Smith][2] 的 _sgdisk_ 命令可在命令行中管理硬盘的分区。下面将介绍使用它所需的基础知识。
[Roderick W. Smith][2] 的 `sgdisk` 命令可在命令行中管理硬盘的分区。下面将介绍使用它所需的基础知识。
以下六个参数是你使用 sgdisk 大多数基本功能所需了解的
使用 sgdisk 的大多数基本功能只需要了解以下六个参数
1. **-p**
_打印_ 分区表:
### sgdisk -p /dev/sda
2. **-d x**
_删除_分区 x
### sgdisk -d 1 /dev/sda
3. **-n x:y:z**
创建一个编号 x 的_新_分区从 y 开始,从 z 结束:
### sgdisk -n 1:1MiB:2MiB /dev/sda
4. **-c x:y**
_更改_分区 x 的名称为 y
### sgdisk -c 1:grub /dev/sda
5. **-t x:y**
将分区 x 的_类型_更改为 y
### sgdisk -t 1:ef02 /dev/sda
6. **list-types**
列出分区类型代码:
### sgdisk --list-types
1、`-p` *打印* 分区表:
```
# sgdisk -p /dev/sda
```
2、 `-d x` *删除* 分区 x
```
# sgdisk -d 1 /dev/sda
```
3、 `-n x:y:z` 创建一个编号 x 的*新*分区,从 y 开始,从 z 结束:
```
# sgdisk -n 1:1MiB:2MiB /dev/sda
```
4、`-c x:y` *更改*分区 x 的名称为 y
```
# sgdisk -c 1:grub /dev/sda
```
5、`-t x:y` 将分区 x 的*类型*更改为 y
```
# sgdisk -t 1:ef02 /dev/sda
```
6、`list-types` 列出分区类型代码:
```
# sgdisk --list-types
```
![The SGDisk Command][3]
@ -43,36 +58,44 @@ _更改_分区 x 的名称为 y
可以组合上面的参数,这样你可以一次定义所有分区:
### sgdisk -n 1:1MiB:2MiB -t 1:ef02 -c 1:grub /dev/sda
```
# sgdisk -n 1:1MiB:2MiB -t 1:ef02 -c 1:grub /dev/sda
```
在值的前面加上 **+** 或 **** 符号可以为某些字段指定相对值。如果你使用相对值sgdisk 会为你做数学运算。例如,上面的例子可以写成:
在值的前面加上 `+``` 符号,可以为某些字段指定相对值。如果你使用相对值,`sgdisk` 会为你做数学运算。例如,上面的例子可以写成:
### sgdisk -n 1:1MiB:+1MiB -t 1:ef02 -c 1:grub /dev/sda
```
# sgdisk -n 1:1MiB:+1MiB -t 1:ef02 -c 1:grub /dev/sda
```
**0** 值对于以下几个字段是特殊情况:
`0` 值对于以下几个字段有特殊意义
* 对于_分区号_字段0 表示应使用下一个可用编号(编号从 1 开始)。
  * 对于_起始地址_字段0 表示使用最大可用空闲块的头。硬盘开头的一些空间始终保留给分区表本身。
  * 对于_结束地址_字段0 表示使用最大可用空闲块的末尾。
* 对于*分区号*字段0 表示应使用下一个可用编号(编号从 1 开始)。
* 对于*起始地址*字段0 表示使用最大可用空闲块的头。硬盘开头的一些空间始终保留给分区表本身。
* 对于*结束地址*字段0 表示使用最大可用空闲块的末尾。
通过在适当的字段中使用 `0` 和相对值,你可以创建一系列分区,而无需预先计算任何绝对值。例如,如果在一块空白硬盘中,以下 `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
```
通过在适当的字段中使用 **0** 和相对值,你可以创建一系列分区,而无需预先计算任何绝对值。例如,如果在一块空白硬盘中,以下 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
上面的例子展示了如何为基于 BIOS 的计算机分区硬盘。基于 UEFI 的计算机上不需要 [grub分区][5]。由于 sgdisk 在上面的示例中为你计算了所有绝对值,因此你可以在基于 UEFI 的计算机上跳过第一个命令,并且可以无需修改即可运行其余命令。同样,你可以跳过创建交换分区,并且不需要修改其余命令。
上面的例子展示了如何为基于 BIOS 的计算机分区硬盘。基于 UEFI 的计算机上不需要 [grub 分区][5]。由于 `sgdisk` 在上面的示例中为你计算了所有绝对值,因此你可以在基于 UEFI 的计算机上跳过第一个命令,并且可以无需修改即可运行其余命令。同样,你可以跳过创建交换分区,并且不需要修改其余命令。
还有使用一个命令删除硬盘上所有分区的快捷方式:
### sgdisk --zap-all /dev/sda
```
# sgdisk --zap-all /dev/sda
```
关于最新和详细信息,请查看手册页:
```
$ man sgdisk
```
--------------------------------------------------------------------------------
@ -81,7 +104,7 @@ via: https://fedoramagazine.org/managing-partitions-with-sgdisk/
作者:[Gregory Bartholomew][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出