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-12-12
  • Linux配置VSFTP服务器的方法

    Linux配置VSFTP服务器的方法

    下面小编就为大家带来一篇Linux配置VSFTP服务器的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Linux静态链接库与模板类的处理方式

    Linux静态链接库与模板类的处理方式

    这篇文章主要介绍了Linux下编译使用静态链接库遇到模板类的时该如何处理。
    2017-11-11
  • 详解如何在Linux中检查和设置时区

    详解如何在Linux中检查和设置时区

    时区是地球上的一部分,其中的时间被认为是相同的,每个时区都有一个基准点,其时间被认为是“标准时间”,在 Linux 系统中,时区通常存储在 /usr/share/zoneinfo/ 目录中,本文给大家介绍了如何在Linux中检查和设置时区,需要的朋友可以参考下
    2024-06-06
  • Linux basename命令的使用方法

    Linux basename命令的使用方法

    这篇文章主要介绍了Linux basename命令的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Centos7如何修改ssh连接速度

    Centos7如何修改ssh连接速度

    本文介绍了解决Linux服务器SSH连接速度慢的问题,主要原因是DNS反向解析和GSSAPI认证机制,通过修改SSH配置文件中的GSSAPIAuthentication和UseDNS参数,可以显著提升SSH连接速度,优化后耗时可减少至0.3-0.8秒
    2026-04-04
  • CentOS 7.x 安装 ZSH 终端的配置方法

    CentOS 7.x 安装 ZSH 终端的配置方法

    这篇文章主要介绍了CentOS 7.x 安装 ZSH 终端的配置方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • Linux下动态链接库加载路径及搜索路径问题

    Linux下动态链接库加载路径及搜索路径问题

    这篇文章主要介绍了Linux下动态链接库加载路径及搜索路径问题,需要的朋友可以参考下
    2018-04-04
  • linux下实现web数据同步的四种方式(性能比较)

    linux下实现web数据同步的四种方式(性能比较)

    这篇文章主要介绍了linux下常用的四种web数据同步方法,并且说明了每个方法的功能与优势,需要的朋友可以参考下
    2013-09-09
  • 安装redhat 8.0红帽系统的图文教程(小白必备)

    安装redhat 8.0红帽系统的图文教程(小白必备)

    这篇文章主要介绍了安装redhat 8.0红帽系统的图文教程(小白必备),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论