在Linux系统中,分区表是管理磁盘存储结构的核心,它定义了磁盘如何被划分为不同的分区(如主分区、扩展分区、逻辑分区),以及每个分区的起始和结束位置、文件系统类型等信息,查看分区表对于系统管理、故障排查、磁盘扩容等操作至关重要,以下是Linux中查看分区表的常用命令及详细方法,涵盖不同场景和需求。
基础命令:lsblk——快速查看块设备及分区结构
lsblk
(list block devices)是Linux中最常用的块设备查看工具,它能以树状结构列出所有磁盘及其分区信息,包括设备名、大小、分区类型、挂载点等,适合快速了解磁盘的整体布局。
使用方法:
lsblk
输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 50G 0 part /home
├─sda2 8:2 0 20G 0 part /
└─sda5 8:5 0 30G 0 part /data
sdb 8:16 0 500G 0 disk
└─sdb1 8:17 0 500G 0 part /mnt/backup
关键字段说明:
NAME
:设备名(如sda、sda1,其中sda是磁盘,sda1是分区);TYPE
:类型(disk
表示整块磁盘,part
表示分区);SIZE
:分区或磁盘大小;MOUNTPOINT
:挂载点(未挂载时显示为空)。
扩展选项:
-f
:显示文件系统类型(如ext4、xfs)和UUID,lsblk -f
,输出会增加FSTYPE
(文件系统类型)和UUID
(分区唯一标识)字段;-l
:以列表形式显示(默认为树状),适合脚本处理;-a
:显示所有设备,包括空设备。
传统工具:fdisk——查看和管理MBR/GPT分区表
fdisk
是Linux经典的分区管理工具,支持MBR(主引导记录)和GPT(GUID分区表)两种分区表类型,适合查看分区的详细布局(如起始扇区、结束扇区、分区类型等)。
使用方法:
fdisk -l [设备名] # 查看指定磁盘的分区表,如fdisk -l /dev/sda
输出示例(MBR分区表):
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 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: dos # 标识分区表类型为MBR(dos)
Disk identifier: 0x12345678
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 104857599 104855552 50G 83 Linux
/dev/sda2 104857600 209715199 104857600 20G 83 Linux
/dev/sda5 209715200 209715199 0 1 Extended # 扩展分区
输出示例(GPT分区表):
Disk /dev/sdb: 500 GiB, 536870912000 bytes, 1048576000 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 # 标识分区表类型为GPT
Disk identifier: ABCD-1234
Device Start End Sectors Size Type
/dev/sdb1 2048 1048575999 1048573952 500G Linux filesystem
关键字段说明:
Disklabel type
:分区表类型(dos
为MBR,gpt
为GPT);Device
:分区设备名;Start/End
:分区的起始和结束扇区;Sectors
:分区总扇区数;Id/Type
:分区类型标识(MBR中83
表示Linux原生分区,8e
表示LVM;GPT中通过类型UUID区分)。
交互模式:
直接输入fdisk /dev/sda
可进入交互模式,通过p
(打印分区表)、g
(转换为GPT)、o
(转换为MBR)等命令操作分区。
现代工具:parted——支持GPT/MBR的高级分区查看工具
parted
是比fdisk
更现代的分区工具,原生支持GPT和MBR,尤其适合处理大容量磁盘(超过2TB)和复杂分区布局,输出信息更结构化。
使用方法:
parted -l # 列出所有磁盘的分区信息 parted /dev/sda print # 查看指定磁盘的分区详情
输出示例(GPT分区表):
Model: Virtual Disk (scsi)
Disk /dev/sda: 100GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt # 分区表类型
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 51.0GB 51.0GB ext4 boot # 分区1,带boot标志
2 51.0GB 71.0GB 20.0GB ext4 # 分区2
输出示例(MBR分区表):
Model: Virtual Disk (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos # MBR分区表类型
Disk Flags:
Number Start End Size Type File system Flags
1 32.3kB 500GB 500GB primary ext4 boot, lba # 主分区,带boot和lba标志
关键字段说明:
Partition Table
:明确标识分区表类型(gpt
或msdos
);Number
:分区号;Start/End
:分区的起始和结束位置(支持GB/MB等单位);Flags
:分区标志(如boot
表示引导分区,lba
表示支持大硬盘)。
辅助工具:blkid与df——查看分区标识和挂载状态
blkid
:显示分区的UUID、文件系统类型等唯一标识
blkid
输出示例:
/dev/sda1: UUID="1234abcd-5678-efgh-ijkl-mnopqrstuvwx" TYPE="ext4" PARTUUID="12345678-01" PARTLABEL="root"
/dev/sda2: UUID="9876fedc-4321-ba98-7654-zyxwvutsrqp" TYPE="swap" PARTUUID="12345678-02"
UUID
:分区的全局唯一标识,用于/etc/fstab
挂载配置;PARTUUID
:分区表中的唯一标识(GPT特有);TYPE
:文件系统类型(如ext4、swap、ntfs)。
df
:查看已挂载分区的使用情况
df -h # 以人类可读格式(GB/MB)显示
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 30G 40% /home
/dev/sdb1 500G 100G 400G 20% /mnt/backup
- 注意:
df
仅显示已挂载的分区,未挂载的分区需用lsblk
或fdisk
查看。
分区表类型对比:MBR与GPT
特性 | MBR(主引导记录) | GPT(GUID分区表) |
---|---|---|
最大支持容量 | 2TB(需配合LBA48) | 无限制(理论支持18EB) |
最大分区数 | 4个主分区或3个主分区+1个扩展分区(逻辑分区无限制) | 128个分区(可扩展) |
分区表标识 | 磁盘首个扇区的“55 AA”签名 | 磁盘开头和结尾的“EFI PART”签名 |
兼容性 | 兼容所有BIOS/UEFI系统 | 仅UEFI系统支持(部分BIOS可兼容) |
安全性 | 无备份,分区表损坏易导致数据丢失 | 主分区表+备份分区表,更安全 |
适用场景 | 小容量磁盘、旧系统、需兼容传统BIOS时 | 大容量磁盘、现代UEFI系统、多分区需求时 |
Linux中查看分区表需根据场景选择工具:
- 快速查看:用
lsblk
(树状结构)或lsblk -f
(文件系统类型); - 详细布局:用
fdisk -l
(MBR/GPT分区信息)或parted -l
(现代分区表支持); - 分区标识:用
blkid
(UUID/文件系统类型); - 挂载状态:用
df
(已挂载分区使用情况)。
通过这些工具的组合,可全面掌握磁盘分区结构,为系统管理提供准确依据。
相关问答FAQs
Q1:如何快速判断Linux系统中的磁盘分区表类型是MBR还是GPT?
A:可通过以下两种方式快速判断:
- 使用
fdisk -l
命令,查看输出中的“Disklabel type”字段:若显示“dos”则为MBR,显示“gpt”则为GPT; - 使用
parted -l
命令,查看“Partition Table”字段:若为“msdos”则是MBR,“gpt”则是GPT。
fdisk -l /dev/sda | grep "Disklabel type"
,输出“Disklabel type: dos”即MBR。
Q2:为什么df
命令看不到未挂载的分区?如何查看未挂载的分区?
A:df
命令仅显示已挂载的文件系统,因此未挂载的分区不会出现在其输出中,要查看未挂载的分区,可使用以下方法:
lsblk
:直接列出所有分区,未挂载的分区“MOUNTPOINT”字段为空;fdisk -l
:显示所有分区的详细信息,无论是否挂载;parted -l
:列出所有磁盘的分区表,包含未挂载分区。
lsblk | grep -v MOUNTPOINT
可过滤出未挂载的分区(需结合grep
排除表头)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/37096.html