linux磁盘操作之sgdisk

2024-12-24 14:52:47 624

欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。

 

sgdisk 是一个用于操作 GPT(GUID Partition Table)格式分区表的命令行工具,属于 gdisk 软件包的一部分。它可以帮助你在 Linux 系统中高效地创建、删除、修改和管理分区。由于 GPT 格式支持更大的磁盘和更多的分区,它比传统的 MBR(Master Boot Record)分区方式更具优势。要使用 sgdisk,需要先安装 gdisk,在大多数 Linux 发行版中,你可以通过以下命令进行安装:

 

Debian/Ubuntu:

sudo apt install gdisk

 

RedHat/CentOS:

sudo yum install gdisk

 

OpenSuSE:

sudo zypper install gdisk

 

1. 新建分区

使用 sgdisk 创建新分区时,可以根据需要指定分区号、起始地址和终止地址。-n 选项后跟的参数格式是 分区号:起始地址:终止地址。其中:

分区号为 0:代表自动选择第一个可用的分区号。

 

起始地址和终止地址为 0:表示从默认的第一个可用地址开始,到最后一个可用地址结束。

 

偏移量:使用 + 或 - 表示相对于起始或终止位置的偏移量。

 

示例:

创建一个没有指定大小和分区号的分区:

sgdisk -n 0:0:0 /dev/sdb

lsblk | grep sdb

该命令创建一个默认大小的分区,并使用第一个可用的分区号。

 

创建一个从默认起始位置开始,大小为 10GB 的分区:

sgdisk -n 2:0:+10G /dev/sdb

lsblk | grep sdb

该命令在 /dev/sdb 上创建一个大小为 10GB 的分区。

 

创建一个指定扇区范围的分区并设置类型:

sgdisk -n 2:2048:10485760 -t 2:8300 -p /dev/sdb

该命令为 /dev/sdb 创建一个从 2048 到 10485760 扇区的分区,并将其类型设置为 8300(Linux 文件系统)。

 

2. 查看分区详情

sgdisk 提供了查看分区信息的功能,通过 -i 选项可以查看单个分区的详细信息,使用 -p 查看整个磁盘的分区表。

 

示例:

查看某个分区的详细信息:

sgdisk -i 1 /dev/sdb

sgdisk --info=1 /dev/sdb

该命令显示 /dev/sdb 上第一个分区的详细信息。

 

查看整个 GPT 分区表:

sgdisk -p /dev/sdb

该命令列出 /dev/sdb 上所有的 GPT 分区。

 

3. 修改分区类型

使用 -t 选项可以修改某个分区的类型代码(type code),类型代码是用来指定分区用途的标识符,例如 8300 表示 Linux 文件系统。

 

示例:

修改第一个分区的类型:

sgdisk -t 1:0FC63DAF-8483-4772-8E79-3D69D8477DE4 /dev/sdb

该命令将 /dev/sdb 的第一个分区的类型代码修改为 0FC63DAF-8483-4772-8E79-3D69D8477DE4(表示 Linux 文件系统)。

 

4. 修改分区名称

如果你想给分区添加描述性名称,可以使用 -c 选项。这样能帮助你更容易地识别分区。

 

示例:

为第一个分区设置名称:

sgdisk -c 1:"test data" /dev/sdb

该命令将 /dev/sdb 上第一个分区的名称设置为 "test data"。

 

5. 清除分区数据

如果需要清除分区数据并销毁 GPT 分区表,可以使用 -z 选项。请注意,这只会销毁 GPT 数据结构,不会删除 MBR。

 

示例:

清除 /dev/sdb1 上的分区数据:

sgdisk -z /dev/sdb1

 

6. 删除分区

sgdisk 还支持删除分区,使用 -d 选项删除指定的分区。要删除所有分区,可以使用 --zap-all。

示例:

删除第一个分区:

sgdisk --delete=1 /dev/sdb

 

删除所有分区:

sgdisk --zap-all --clear --mbrtogpt /dev/sdb

 

7. 备份与恢复分区表

在生产环境中,定期备份分区表非常重要,特别是在进行分区操作前。你可以使用 sgdisk 将分区表备份到文件中,并在发生故障时恢复。

 

示例:

备份分区表:

sgdisk --backup=/root/sda.partitiontable /dev/sda

sgdisk --backup=/root/sdb.partitiontable /dev/sdb

 

恢复分区表:

sgdisk --load-backup=/root/sda.partitiontable /dev/sda

 

8. 复制分区方案

如果你需要将一个磁盘的分区方案复制到另一个磁盘,可以使用 -R 选项。

 

示例:

/dev/sda 的分区方案复制到 /dev/sdb:

sgdisk -R /dev/sdb /dev/sda

 

9. GUID 随机化

为了确保磁盘的 GUID 唯一性,可以使用 -G 选项随机化新的硬盘上的 GUID。

 

示例:

随机化 /dev/sdb 的 GUID:

sgdisk -G /dev/sdb

 

10. 检查分区一致性

检查两个硬盘的分区表是否一致,可以通过打印出分区表来验证。

 

示例:

查看两个硬盘的分区表:

sgdisk -p /dev/sda

sgdisk -p /dev/sdb


蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,蓝队云期待与你一起探索。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: