在linux系统中,MBR和GPT是两种主流的分区表类型,MBR支持最大2TB磁盘和4个主分区,GPT支持超过2TB磁盘和更多分区,判断分区表类型对磁盘管理、系统安装等操作有重要意义。

使用fdisk命令判断
fdisk是linux常用的磁盘分区工具,查看磁盘分区表类型是最直接的方法之一。执行以下命令查看指定磁盘的分区表信息:
# 查看/dev/sda磁盘的分区表类型,替换为实际磁盘路径 sudo fdisk -l /dev/sda
输出结果中会有明确的分区表类型标识,如果是MBR分区表,会显示Disklabel type: dos,如果是GPT分区表,会显示Disklabel type: gpt。示例输出如下:
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 12345678-1234-1234-1234-123456789012
使用parted命令判断
parted是另一款功能强大的磁盘分区管理工具,同样可以查看分区表类型。执行以下命令进入parted交互模式:
# 查看/dev/sda磁盘,替换为实际磁盘路径 sudo parted /dev/sda
进入交互模式后输入print命令,输出结果中会显示Partition Table字段,对应的值就是分区表类型,msdos代表MBR,gpt代表GPT。操作示例如下:
(parted) print Model: Virtual Disk (scsi) Disk /dev/sda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 538MB 537MB fat32 boot, esp 2 538MB 21.5GB 20.9GB ext4
使用gdisk命令判断
gdisk是专门用于GPT分区表管理的工具,也可以用来判断分区表类型。执行以下命令查看磁盘信息:
# 查看/dev/sda磁盘,替换为实际磁盘路径 sudo gdisk -l /dev/sda
如果是GPT分区表,输出开头会显示GPT fdisk (gdisk) version ...以及GPT相关的分区表信息;如果是MBR分区表,会提示Found invalid GPT and valid MBR; converting MBR to GPT format in memory或者直接说明是MBR分区表。
通过查看分区表头部特征判断
MBR分区表的头部位于磁盘的第一个扇区(512字节),最后两个字节是0x55AA的魔术字;GPT分区表的头部位于磁盘的第二个扇区,开头有EFI PART的标识。可以通过hexdump命令查看磁盘开头的字节特征:
# 查看磁盘前两个扇区的内容,替换为实际磁盘路径 sudo hexdump -C -n 1024 /dev/sda
如果第一个扇区最后两个字节是55 aa,且第二个扇区开头没有EFI PART标识,大概率是MBR分区表;如果第二个扇区开头有EFI PART的ASCII字符,就是GPT分区表。
不同方法的适用场景
- 快速判断推荐用
fdisk -l命令,输出简洁直观,不需要进入交互模式 - 需要同时查看分区详细信息和分区表类型时,推荐用
parted命令 - 专门处理GPT分区表的场景下,用
gdisk命令更准确 - 没有上述工具时,可以通过查看磁盘字节特征的方式判断