在Linux和Unix-like系统中,命令行是管理硬盘分区的重要工具,通过一系列命令可以直观地查看硬盘的分区信息、文件系统类型、挂载点等关键数据,以下将详细介绍几种常用的命令行方法来查看硬盘分区,包括lsblk
、fdisk
、parted
、df
和blkid
等,并结合实际场景说明其使用方法和输出含义。

lsblk
(list block devices)是一个以树状结构展示块设备的命令,能够清晰显示硬盘及其分层的分区信息,执行lsblk
命令时,默认会列出所有块设备,包括硬盘、分区、光驱等,并显示设备名称、大小、挂载点等字段,输出中可能包含sda
(表示第一块SATA硬盘)、sda1
、sda2
等分区,以及sr0
(光驱),通过lsblk -f
选项可以额外显示文件系统类型(如ext4
、xfs
)和UUID(通用唯一标识符),这对于排查文件系统问题或确认分区格式非常有帮助。lsblk
的优势在于输出简洁直观,适合快速了解设备层级关系,但无法显示分区的详细信息如起始扇区、文件系统标签等。
对于需要查看分区详细参数的场景,fdisk
是一个经典的分区管理工具,通过sudo fdisk -l
(l
为字母小写)可以列出所有磁盘及其分区的详细信息,包括磁盘大小、分区数量、每个分区的起始和结束扇区、系统ID(如83
表示Linux文件系统,8e
表示LVM物理卷)等。fdisk
以交互式模式运行时,输入p
(print)可以打印当前分区表,输入m
查看帮助命令,在输出中可能看到类似“Device Boot Start End Sectors Size Id Type /dev/sda1 2048 41943039 41940992 20G 83 Linux”的信息,其中Start
和End
表示分区在磁盘上的位置,Sectors
是扇区数,Size
是分区大小,Id
是系统标识符。fdisk
适合查看MBR(主引导记录)分区表,对于GPT(GUID分区表)也能支持,但输出格式相对传统,可能需要结合其他命令解读。
parted
是另一个强大的分区管理工具,支持MBR和GPT分区表,并且能够以更友好的方式显示分区信息,使用sudo parted -l
可以列出所有磁盘及其分区表类型、分区大小、文件系统类型、挂载点等,输出中可能包含“Model: ATA Samsung SSD 860 (scsi) Disk /dev/sda: 512GB Sector size (logical/physical): 512B/512B Partition Table: gpm Number Start End Size File system Name Flags 1 1049kB 538MB 537MB ext4 boot 2 538MB 512GB 511GB ext2 primary”,相比fdisk
,parted
的输出更易读,且支持调整分区大小、创建文件系统等高级操作,适合需要管理分区的用户。
df
(disk free)命令主要用于查看文件系统的磁盘使用情况,但也能间接反映分区信息,通过df -h
(h
表示human-readable)可以按易读的格式(如GB、MB)显示每个挂载点的总容量、已用空间、可用空间及使用率,同时显示对应的设备名称(如/dev/sda1
)和挂载点(如、/home
)。“Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 28G 42% /”。df
的优势在于直观展示文件系统的使用状态,适合监控磁盘空间,但无法显示未挂载的分区信息。

blkid
命令用于查看块设备的属性,包括UUID、文件系统类型、卷标等,执行blkid
会列出所有已识别的块设备及其属性,/dev/sda1: UUID=”12345678-1234-1234-1234-123456789abc” TYPE=”ext4” PARTUUID=”…” MOUNT=”/””。blkid
常用于确认分区的唯一标识符,尤其是在配置/etc/fstab
文件时,通过UUID挂载分区可以避免因设备名变化(如插拔硬盘后sda
变成sdb
)导致挂载失败。
在实际使用中,可能需要结合多个命令来全面了解硬盘分区情况,先用lsblk
查看设备层级,再用fdisk -l
或parted -l
获取分区详细信息,最后用df
和blkid
确认文件系统状态和属性,对于RAID阵列或LVM(逻辑卷管理)环境,还可以使用mdadm
(查看RAID信息)或lvdisplay
/vgdisplay
(查看LVM逻辑卷和卷组信息)等命令。
需要注意的是,部分命令(如fdisk
、parted
)需要root权限或sudo权限才能执行,以避免对系统分区造成误操作,不同Linux发行版的命令输出格式可能略有差异,但核心含义一致,对于新手用户,建议先在测试环境中熟悉命令输出,避免在生产环境中误操作。
以下是一个使用lsblk
和fdisk -l
查看分区信息的示例对比:

命令 | 输出示例(简化) | 说明 |
---|---|---|
lsblk |
NAME MAJ:MIN RM SIZE RO MOUNTPOINT sda 8:0 0 512G 0 ├─sda1 8:1 0 20G 0 / └─sda2 8:2 0 100G 0 /home sr0 11:0 1 1024M 0 |
以树状结构显示设备及分区,包含大小和挂载点 |
sudo fdisk -l |
Disk /dev/sda: 512GB, 549755813888 bytes Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 41943039 41940992 20G 83 Linux /dev/sda2 41943040 209715199 167772160 80G 83 Linux |
显示分区的详细扇区信息、系统ID等 |
通过以上命令,用户可以全面掌握硬盘分区的状态,为磁盘管理、故障排查或系统维护提供数据支持。
相关问答FAQs
Q1: 为什么df
命令无法显示未挂载的分区?
A: df
命令主要功能是显示已挂载文件系统的磁盘使用情况,因此它只会列出当前系统中已挂载的分区及其挂载点,如果分区未挂载(如新创建的分区或未格式化的分区),df
不会显示,要查看所有分区(包括未挂载的),需要使用lsblk
、fdisk -l
或parted -l
等命令,这些命令直接读取磁盘分区表,不依赖挂载状态。
Q2: 如何区分lsblk
和parted
在查看分区时的适用场景?
A: lsblk
适合快速了解块设备的层级关系(如硬盘包含哪些分区、分区是否挂载),输出简洁直观,适合日常监控和简单查看;而parted
更适合需要分区详细信息的场景,如分区表类型(MBR/GPT)、分区文件系统、扇区范围等,同时支持对分区进行高级操作(如调整大小、创建文件系统),如果只是查看分区是否挂载及大小,用lsblk
;如果需要分析分区结构或管理分区,用parted
或fdisk
。