在 ubuntu 系统中,当我们需要初始化一块新硬盘,或者将旧硬盘从传统的 mbr 分区表转换为更现代的 gpt 分区表时, gdisk 是一个功能强大、安全可靠的命令行工具。本文将手把手教你如何使用 gdisk 完成分区表的创建、分区划分、格式化及挂载,并涵盖从 mbr 无损转换为 gpt 的进阶操作。
一、为什么要使用 gpt 分区表?
- 支持大容量硬盘:mbr 最大支持 2tb 硬盘,gpt 则可以处理 18eb(百亿亿字节)以上的硬盘。
- 更多分区:mbr 最多 4 个主分区或 3 个主分区+1 个扩展分区;gpt 理论上支持 128 个主分区(windows 限制)甚至更多。
- 数据冗余与安全:gpt 在磁盘头部和尾部各保存一份分区表,具有校验机制,更不容易被破坏。
- 现代系统兼容:uefi 启动模式强制要求 gpt;传统 bios 也可引导 gpt(需有 bios boot 分区)。
二、准备工作
2.1 备份数据
警告:无论使用何种分区工具,修改分区表都可能导致数据丢失。如果你的硬盘上已有重要数据,请务必提前备份到其他存储设备。
2.2 确认硬盘路径
在终端执行以下命令,列出当前所有块设备:
lsblk
示例输出:
name maj:min rm size ro type mountpoint sda 8:0 0 238.5g 0 disk ├─sda1 8:1 0 512m 0 part /boot/efi └─sda2 8:2 0 238g 0 part / sdb 8:16 0 931.5g 0 disk
- 通常 sata/sas 硬盘显示为
/dev/sda、/dev/sdb…… - nvme ssd 显示为
/dev/nvme0n1、/dev/nvme1n1……
请根据容量和已有分区情况确定你要操作的硬盘。小心别选错,否则会误清空系统盘。
三、安装 gdisk
ubuntu 大多数最小化安装可能不自带 gdisk。安装命令:
sudo apt update sudo apt install gdisk -y
安装完成后,可以通过 gdisk -v 验证版本。
四、全新硬盘初始化为 gpt 并分区
假设你的目标硬盘是 /dev/sdb(已无有用数据或全新)。
4.1 进入 gdisk 交互界面
sudo gdisk /dev/sdb
你会看到类似下面的提示:
gpt fdisk (gdisk) version 1.0.8 partition table scan: mbr: not present bsd: not present apm: not present gpt: not present creating new gpt entries in memory. command (? for help):
4.2 创建全新的 gpt 分区表
在 command 提示符后输入 o 并回车:
command (? for help): o
程序会询问是否确认创建新的空 gpt 分区表,输入 y 确认。
一步会彻底清除磁盘上原有的任何分区表(mbr 或 gpt),所有旧分区信息都将消失。
4.3 创建分区
输入 n 开始创建新分区:
command (? for help): n
接着按提示一步步操作:
- 分区号 (partition number):直接按回车使用默认值(通常从 1 开始)。
- 起始扇区 (first sector):直接按回车使用默认值(自动对齐)。
- 结束扇区 (last sector):
- 如果要使用整个剩余空间,直接按回车。
- 如果要创建指定大小的分区,输入
+200g(表示 200 gb)、+500m(表示 500 mb)等格式。
- 分区类型代码 (hex code or guid):
- 普通 linux 数据分区:输入
8300回车。 - efi 系统分区(esp):输入
ef00回车。 - linux swap:输入
8200回车。 - 查看所有代码:输入
l会列出长列表。
- 普通 linux 数据分区:输入
重复使用 n 命令可以继续添加更多分区。
4.4 查看分区表
输入 p 可以打印当前分区方案,确认无误。
4.5 保存并退出
非常重要:输入 w 才会将上述所有更改真正写入磁盘。
command (? for help): w
系统会再次确认:
final checks complete. about to write gpt data. this will overwrite existing partitions!! do you want to proceed? (y/n):
输入 y 并回车,gdisk 写入分区表后自动退出。
如果中途想放弃所有修改,输入 q 即可不保存退出。
五、格式化分区
gdisk 只是划分了分区,还需创建文件系统才能存储数据。
例如,将第一个分区 /dev/sdb1 格式化为 ext4:
sudo mkfs.ext4 /dev/sdb1
其他常用格式化命令:
sudo mkfs.xfs /dev/sdb1– xfs 文件系统sudo mkfs.btrfs /dev/sdb1– btrfs 文件系统sudo mkfs.vfat -f 32 /dev/sdb1– fat32(常用于 uefi 的 efi 分区)
如果分区是作为 efi 系统分区(代码 ef00),应格式化为 fat32:sudo mkfs.fat -f32 /dev/sdb1
六、挂载并使用分区
6.1 手动挂载
创建一个挂载点目录(例如 /mnt/data),然后将分区挂载上去:
sudo mkdir -p /mnt/data sudo mount /dev/sdb1 /mnt/data
挂载后可通过 df -h /mnt/data 查看可用空间。
6.2 开机自动挂载(fstab)
获取分区的 uuid(比设备名更稳定):
sudo blkid /dev/sdb1
输出示例:/dev/sdb1: uuid="a1b2c3d4-..." type="ext4"
编辑 /etc/fstab 文件:
sudo nano /etc/fstab
添加一行(请替换 uuid 和挂载点):
uuid=a1b2c3d4-... /mnt/data ext4 defaults 0 2
保存后执行 sudo mount -a 测试是否有错误。
七、进阶:将 mbr 分区表无损转换为 gpt
如果硬盘已经是 mbr 分区表且存有数据,但你想转为 gpt 以使用 2tb 以上容量或支持 uefi,可以尝试 无损转换。但请注意:
风险提示:任何分区表转换操作都有失败风险,强烈建议先备份所有数据。
方法一:使用 gdisk 的自动转换
sudo gdisk /dev/sdb
如果 gdisk 检测到磁盘为 mbr,会提示:
found valid mbr; converting to gpt format in memory.
此时直接按照第四节的步骤创建分区表,保存时 gdisk 会尝试转换并保留原有分区的内容。但部分分区类型可能需手动调整。
方法二:使用 sgdisk 命令
sgdisk 是 gdisk 的脚本版本,可以直接执行转换:
sudo sgdisk -g /dev/sdb
该命令会将 mbr 转换为 gpt,并尽可能保留分区数据。转换后建议用 gdisk 检查并修复分区类型代码。
转换后注意事项:
- 如果系统是从 mbr 磁盘引导的,转换后需要重新配置引导程序(如 grub)或改为 uefi 引导。
- 转换不会影响分区内的文件,但一些旧工具可能无法识别 gpt。
八、gdisk 常用命令速查
| 命令 | 作用 |
|---|---|
p | 打印当前分区表 |
n | 创建新分区 |
d | 删除分区 |
t | 修改分区类型代码 |
i | 显示指定分区的详细信息 |
o | 创建新的空 gpt 分区表(清空磁盘) |
w | 保存修改并退出 |
q | 不保存修改直接退出 |
九、常见问题
q1:执行sudo gdisk /dev/sdb报错 “no such file or directory”?
说明 /dev/sdb 不存在,请用 lsblk 重新确认硬盘正确名称。
q2:创建分区时提示 “no free sectors available”?
磁盘已经没有任何未分配空间。可以用 p 查看现有分区,然后用 d 删除不需要的分区后再创建。
q3:格式化后挂载时提示 “mount: /mnt/data: wrong fs type, bad option, bad superblock…”
说明分区可能没有成功格式化,或者格式化的文件系统类型与挂载参数不匹配。重新执行 mkfs 并确保挂载时不指定 -t 类型或使用正确的类型。
q4:如何在 ubuntu 图形界面下管理 gpt 分区?
可以使用 gnome-disks(磁盘工具)或 gparted。两者都完整支持 gpt,但命令行 gdisk 更适合远程操作或精确控制。
十、总结
gdisk 是 ubuntu 下处理 gpt 分区表的强大工具。通过 o、n、w 三个核心命令即可完成全部分区工作。对于已经使用的 mbr 硬盘,gdisk 也提供了转换途径,但 数据安全永远是第一位的,操作前务必备份重要数据。
掌握 gdisk 后,你便可以轻松管理大容量硬盘、搭建多系统环境,或为服务器准备标准的数据分区。如果遇到更复杂的分区需求(如混合 mbr、特定对齐方式等),gdisk 也提供了高级选项,可以通过 ? 获取帮助。
本文基于 ubuntu 22.04 / 24.04 及
gdisk1.0.8 版本编写。不同版本界面略有差异,但核心命令相同。
希望这篇指南能帮助你顺利完成 gpt 分区操作。如果觉得有用,欢迎分享给更多 linux 用户。
以上就是ubuntu下使用gdisk将硬盘格式化为gpt分区表的完整指南的详细内容,更多关于ubuntu gdisk硬盘格式化为gpt分区表的资料请关注代码网其它相关文章!
发表评论