可通过sudo parted -l命令查看Partition Table字段:值为gpt或msdos(即MBR)即为真实分区表类型;fdisk -l仅作辅助参考,lsblk可依EFI分区初筛但不可定论。

要确认本地磁盘用的是MBR还是GPT这种底层分区表格式,不能只看文件系统类型,得直接读取磁盘的分区表元数据——因为同一块盘上可以有ext4分区,但分区表本身可能是dos(即MBR)或gpt。
用parted命令直接读取分区表类型
这是最可靠、最直观的方式,parted专为解析分区表而设计,不依赖挂载状态,也不受内核模块限制。
第一步:打开终端,执行 sudo parted -l。
第二步:在输出中逐个查找以 Disk /dev/xxx: 开头的段落,比如 Disk /dev/nvme0n1: 或 Disk /dev/sda:。
第三步:在对应磁盘段落里找 Partition Table: 这一行,后面紧跟的值就是真实分区表格式——gpt 或 msdos(注意:msdos 就是 MBR,不是“DOS操作系统”)。
如果看到 Partition Table: unknown,说明该设备没有有效分区表,可能是裸盘、LVM物理卷、LUKS加密容器,或分区表已损坏。
用fdisk -l辅助验证(仅适用于MBR兼容场景)
fdisk -l 也能显示分区表类型,但它对GPT支持有限——遇到GPT磁盘时,新版fdisk会提示“欢迎使用GPT磁盘”,但老版本可能只显示模糊的“Disk label type: gpt”,甚至误判为“dos”。所以它只能当secondary参考。
运行 sudo fdisk -l,然后定位到目标磁盘段落。
查看 Disk label type: 字段:若为 dos,基本可判定是MBR;若为 gpt,则确认是GPT;若为空或显示 unknown,不要采信,立刻切回parted验证。
【重要前提】 fdisk -l 对NVMe设备(如/dev/nvme0n1p1)的分区表识别可能失准,尤其在某些ARM平台或旧内核上,务必以parted结果为准。
通过lsblk间接推测(快速初筛)
如果你只是想快速扫一眼有没有GPT特征(比如ESP分区),lsblk不用sudo也能跑,适合日常排查。
执行 lsblk -o NAME,TYPE,FSTYPE,LABEL,MOUNTPOINT。
观察 TYPE 列为 part 的行,再看 FSTYPE 和 LABEL:如果某一分区标着 FSTYPE=vfat 且 LABEL=EFI System 或 MOUNTPOINT=/boot/efi,那这块盘极大概率用了GPT——因为MBR不原生支持EFI启动分区。
但反过来说:没看到EFI分区 ≠ 就是MBR。很多GPT磁盘纯用于数据存储,根本没建ESP。

















