Ubuntu下使用gdisk将硬盘格式化为GPT分区表的完整指南

 更新时间:2026年04月28日 08:25:57   作者:YasharQ  
本文介绍了在Ubuntu系统中使用gdisk工具初始化硬盘、转换分区表类型(从MBR到GPT)、分区、格式化和挂载分区的方法,还涵盖了从MBR无损转换为GPT的进阶操作,并提供了常见问题的解决方案,需要的朋友可以参考下

在 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 会列出长列表。

重复使用 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 命令

sgdiskgdisk 的脚本版本,可以直接执行转换:

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 分区表的强大工具。通过 onw 三个核心命令即可完成全部分区工作。对于已经使用的 MBR 硬盘,gdisk 也提供了转换途径,但 数据安全永远是第一位的,操作前务必备份重要数据。

掌握 gdisk 后,你便可以轻松管理大容量硬盘、搭建多系统环境,或为服务器准备标准的数据分区。如果遇到更复杂的分区需求(如混合 MBR、特定对齐方式等),gdisk 也提供了高级选项,可以通过 ? 获取帮助。

本文基于 Ubuntu 22.04 / 24.04 及 gdisk 1.0.8 版本编写。不同版本界面略有差异,但核心命令相同。

希望这篇指南能帮助你顺利完成 GPT 分区操作。如果觉得有用,欢迎分享给更多 Linux 用户。

以上就是Ubuntu下使用gdisk将硬盘格式化为GPT分区表的完整指南的详细内容,更多关于Ubuntu gdisk硬盘格式化为GPT分区表的资料请关注脚本之家其它相关文章!

相关文章

  • 详解linux电源管理驱动编写

    详解linux电源管理驱动编写

    这篇文章主要介绍了详解linux电源管理驱动编写,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Linux防火墙配置SNAT教程(1)

    Linux防火墙配置SNAT教程(1)

    这篇文章主要为大家详细介绍了Linux防火墙配置SNAT教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Linux中替换某个目录下所有文件中的特定字符串的方法

    Linux中替换某个目录下所有文件中的特定字符串的方法

    这篇文章主要介绍了在Linux中使用find和sed命令进行批量字符串替换的方法,包括基础用法、安全用法、进阶场景和安全操作流程,覆盖了从基础字符串替换到复杂场景的详细步骤,并提供了示例,需要的朋友可以参考下
    2025-12-12
  • 在Linux服务器下启动tomcat的三种方式

    在Linux服务器下启动tomcat的三种方式

    这篇文章主要介绍了在Linux服务器下启动tomcat的三种方式,Linux作为一种稳定安全的服务器一直受到业界欢迎,那么如何启动部署在服务器上的Tomcat呢,这篇文章带我们来了解
    2023-03-03
  • 在Linux中部署kettle增量调度方式

    在Linux中部署kettle增量调度方式

    文章介绍了在Linux上部署Kettle进行增量调度的步骤,包括上传文件、检查JDK、上传工程、编写调度脚本、赋予权限以及设置定时任务
    2025-11-11
  • linux下shell脚本启动jar包实现过程

    linux下shell脚本启动jar包实现过程

    确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家
    2025-07-07
  • Linux C字符串替换函数实例详解

    Linux C字符串替换函数实例详解

    这篇文章主要介绍了Linux C字符串替换函数实例详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • linux docker仓库拉取失败问题及解决方案

    linux docker仓库拉取失败问题及解决方案

    这篇文章主要介绍了linux docker仓库拉取失败问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-10-10
  • 在CentOS 7中进行磁盘分区的详细步骤

    在CentOS 7中进行磁盘分区的详细步骤

    在服务器管理和运维过程中,磁盘分区是一项基础且重要的操作,合理的磁盘分区可以提高数据存储的安全性、高效性,方便系统管理与维护,本文将详细介绍在 CentOS 7 系统中进行磁盘分区的具体步骤和方法,需要的朋友可以参考下
    2025-09-09
  • Ubuntu 24.04启用root图形登录的操作流程

    Ubuntu 24.04启用root图形登录的操作流程

    Ubuntu 默认禁用 root 账户 的图形与 SSH 登录,这是为了安全,但在某些场景你可能需要 直接用 root 登录 GNOME 桌面,本文以 Ubuntu 24.04 LTS 为例,手把手带你完成配置,需要的朋友可以参考下
    2025-07-07

最新评论