使用 gdisk 快速判断硬盘分区表类型:是 GPT 还是 MBR?

使用 gdisk 快速判断硬盘分区表类型:是 GPT 还是 MBR?

文章目录

适用环境:Ubuntu 24.04.4(其他 Linux 发行版同样适用)

在日常运维或系统安装中,我们经常需要确认一块硬盘使用的分区表类型------GPT 还是 MBRgdisk 是一个专门操作 GPT 分区表的工具,但它也能轻松帮我们辨别硬盘的分区表格式。下面介绍几种最实用的方法。


方法一:一行命令快速判断(推荐)

bash 复制代码
sudo gdisk -l /dev/sda   # 将 /dev/sda 换成目标硬盘,如 /dev/nvme0n1

执行后,重点查看输出中的 Partition table scan 部分。

✅ 如果是 GPT 磁盘

你会看到类似这样的输出:

复制代码
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present
Found valid GPT with protective MBR; using GPT.

同时,输出顶部通常会显示一行 GUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,这是 GPT 的全局唯一标识符。

❌ 如果是 MBR 磁盘

输出会显示:

复制代码
Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. 
***************************************************************

此时不会出现 GUID 信息,并且 gdisk 会尝试将 MBR"转换"到内存中(注意:这并不会实际修改磁盘,只是一个提示)。


方法二:进入交互模式检查

bash 复制代码
sudo gdisk /dev/sda

进入交互界面后,输入 p 打印分区表:

  • 如果是 GPT :顶部会显示 GPT fdisk (gdisk) version x.x.x,分区列表的列名中包含 Partition GUID code
  • 如果是 MBR :程序会先警告 MBR: MBR only,并询问是否转换为 GPT。此时输入 q 直接退出,不要转换

方法三:精准提取关键信息(脚本友好)

如果你只想看到最核心的判断结果,可以用 grep 过滤:

bash 复制代码
sudo gdisk -l /dev/sda | grep -E "GPT:|MBR:"

输出示例(GPT 磁盘):

复制代码
  MBR: protective
  GPT: present

输出示例(MBR 磁盘):

复制代码
  MBR: MBR only
  GPT: not present

根据输出即可编程判断:含有 GPT: present 就是 GPT,否则为 MBR。


补充说明

分区表类型 gdisk -l 关键特征 是否会出现转换提示
GPT GPT: present,有 GUID 行
MBR GPT: not presentMBR: MBR only,转换提示 是(仅内存中转换)
  • gdisk 默认不会修改磁盘,只是读取信息,放心使用。
  • 如果磁盘完全没有分区表 (原始状态),gdisk 也会提示无效 GPT 和无效 MBR,此时不属于 MBR 或 GPT,需要先创建分区表。
  • 对于大容量磁盘(>2TB),必须使用 GPT,MBR 无法支持。

总结

最实用的一招:

bash 复制代码
sudo gdisk -l /dev/sda | grep "GPT:"
  • 返回 GPT: present → 磁盘是 GPT。
  • 返回 GPT: not present → 磁盘不是 GPT(通常就是 MBR)。

简洁、直观、无需记忆复杂参数。希望这篇分享能帮到你快速辨别硬盘分区表类型!

相关推荐
w2005122411 分钟前
Pod管理
linux·服务器·云原生·容器·k8s·podman
chen<>1 小时前
C++ 六种 memory_order:从原子性到线程间可见性.md
java·linux·开发语言·c++
一直C1 小时前
Linux系统编程|进程间通信IPC全套详解(1)(管道、信号)
linux·c语言·开发语言·网络·青少年编程·visual studio code
库玛西2 小时前
Linux网络编程:HTTP/HTTPS协议核心技术全解析
linux·运维·服务器·网络·c++·http·https
sxd20012 小时前
Vmware和multicast
linux·windows·vmware·无线桥接·multicast
暴力求解2 小时前
Linux网络---NAT代理服务、内网穿透
linux·网络·智能路由器
一直C2 小时前
Linux系统编程|信号进阶 + SystemV IPC(消息队列、共享内存)
linux·c语言·开发语言·算法·青少年编程·vim
_F_y2 小时前
Linux网络常用指令
linux·运维·网络
老当益壮梁奶奶4 小时前
Linux软件编程学习笔记(九):消息队列、共享内存与信号灯详解
linux·c语言·笔记·学习
小雪崩4 小时前
嵌入式学习 day35:进程间通信-消息队列、共享空间及有名信号量
linux·c语言·学习