最准判断方式是用 parted -l 查 partition table 字段:gpt 为 gpt,msdos 为 mbr;gdisk -l 可验证 gpt 健康性;fdisk -l 易误判,因将 gpt 的保护性 mbr 识别为 dos;/proc/partitions 中 p 编号规律可辅助判断。

直接看 parted -l 的 Partition Table 字段
这是最准、最不依赖磁盘状态的判断方式。只要能读到分区表头(哪怕分区损坏),parted -l 就会明确写出类型。
执行命令:sudo parted -l
- 每块磁盘下方找
Partition Table:这一行,值为gpt就是 GPT,msdos就是 MBR - 若显示
unknown,说明分区表严重损坏、未初始化,或设备权限不足(比如某些 NVMe 盘未被内核完全识别) -
/dev/sda是磁盘,/dev/sda1是分区——判断对象必须是前者,别对分区设备运行该命令
用 gdisk -l 验证 GPT 是否真实有效
gdisk 不是“另一个查看工具”,它是 GPT 协议栈原生解析器,会校验 CRC、比对主/备份头、报告一致性。它能告诉你“是不是 GPT”,更关键的是“GPT 健不健康”。
执行命令:sudo gdisk -l /dev/sda(把 /dev/sda 换成你的目标磁盘)
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 输出含
Found valid GPT with protective MBR→ 确认为健康 GPT - 输出含
Found invalid GPT and valid MBR→ 实际是 MBR,GPT 区域被覆盖或未初始化 - 输出含
Found invalid GPT and invalid MBR→ 分区表双损,别急着重分区,先用sgdisk -b backup.bin /dev/sda尝试备份原始结构 - 交互模式下误按
w会重写保护性 MBR,非必要不进入交互模式
别信 fdisk -l 的 Disk label type
fdisk 是 MBR 时代的工具,对 GPT 属于“尽力而为”解析。它看到 GPT 磁盘上的保护性 MBR,就可能报 Disk label type: dos,但这不是真相。
常见误导信号:
-
Disk label type: dos出现在 GPT 磁盘上——因为 GPT 必须带保护性 MBR,fdisk就认这个 - 同时出现
GPT PMBR size mismatch或Invalid partition table——这不是警告,是明确告诉你 GPT 结构已异常 - 分区编号 ≥5(如
/dev/sda5)→ 基本可反推是 MBR 扩展分区结构(GPT 支持 128 个主分区,无需逻辑分区) -
fdisk完全看不到 GPT 特有字段:分区 GUID、Name、备份头位置
交叉验证:看 /proc/partitions 和设备命名规律
/proc/partitions 是内核实时维护的设备列表,不经过任何用户态解析,适合做辅助判断。
执行命令:cat /proc/partitions
- 看到
nvme0n1p1、nvme0n1p2这类带p编号的条目,且没有p5及以后 → 大概率是 GPT(NVMe 默认 GPT) - 看到
sda1~sda4后还有sda5→ 基本锁定为 MBR 扩展分区结构 - 注意:
/proc/partitions不体现分区表格式本身,只反映内核是否成功加载了分区信息;如果连这里都看不到某块盘,说明内核根本没识别到设备
parted -l 和 gdisk -l 查的是磁盘本身的分区结构,不是当前系统怎么启动的。










