菜鸟科技网

命令行如何查看硬盘分区?

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

命令行如何查看硬盘分区?-图1
(图片来源网络,侵删)

lsblk(list block devices)是一个以树状结构展示块设备的命令,能够清晰显示硬盘及其分层的分区信息,执行lsblk命令时,默认会列出所有块设备,包括硬盘、分区、光驱等,并显示设备名称、大小、挂载点等字段,输出中可能包含sda(表示第一块SATA硬盘)、sda1sda2等分区,以及sr0(光驱),通过lsblk -f选项可以额外显示文件系统类型(如ext4xfs)和UUID(通用唯一标识符),这对于排查文件系统问题或确认分区格式非常有帮助。lsblk的优势在于输出简洁直观,适合快速了解设备层级关系,但无法显示分区的详细信息如起始扇区、文件系统标签等。

对于需要查看分区详细参数的场景,fdisk是一个经典的分区管理工具,通过sudo fdisk -ll为字母小写)可以列出所有磁盘及其分区的详细信息,包括磁盘大小、分区数量、每个分区的起始和结束扇区、系统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”的信息,其中StartEnd表示分区在磁盘上的位置,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”,相比fdiskparted的输出更易读,且支持调整分区大小、创建文件系统等高级操作,适合需要管理分区的用户。

df(disk free)命令主要用于查看文件系统的磁盘使用情况,但也能间接反映分区信息,通过df -hh表示human-readable)可以按易读的格式(如GB、MB)显示每个挂载点的总容量、已用空间、可用空间及使用率,同时显示对应的设备名称(如/dev/sda1)和挂载点(如、/home)。“Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 28G 42% /”。df的优势在于直观展示文件系统的使用状态,适合监控磁盘空间,但无法显示未挂载的分区信息。

命令行如何查看硬盘分区?-图2
(图片来源网络,侵删)

blkid命令用于查看块设备的属性,包括UUID、文件系统类型、卷标等,执行blkid会列出所有已识别的块设备及其属性,/dev/sda1: UUID=”12345678-1234-1234-1234-123456789abc” TYPE=”ext4” PARTUUID=”…” MOUNT=”/””。blkid常用于确认分区的唯一标识符,尤其是在配置/etc/fstab文件时,通过UUID挂载分区可以避免因设备名变化(如插拔硬盘后sda变成sdb)导致挂载失败。

在实际使用中,可能需要结合多个命令来全面了解硬盘分区情况,先用lsblk查看设备层级,再用fdisk -lparted -l获取分区详细信息,最后用dfblkid确认文件系统状态和属性,对于RAID阵列或LVM(逻辑卷管理)环境,还可以使用mdadm(查看RAID信息)或lvdisplay/vgdisplay(查看LVM逻辑卷和卷组信息)等命令。

需要注意的是,部分命令(如fdiskparted)需要root权限或sudo权限才能执行,以避免对系统分区造成误操作,不同Linux发行版的命令输出格式可能略有差异,但核心含义一致,对于新手用户,建议先在测试环境中熟悉命令输出,避免在生产环境中误操作。

以下是一个使用lsblkfdisk -l查看分区信息的示例对比:

命令行如何查看硬盘分区?-图3
(图片来源网络,侵删)
命令 输出示例(简化) 说明
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不会显示,要查看所有分区(包括未挂载的),需要使用lsblkfdisk -lparted -l等命令,这些命令直接读取磁盘分区表,不依赖挂载状态。

Q2: 如何区分lsblkparted在查看分区时的适用场景?
A: lsblk适合快速了解块设备的层级关系(如硬盘包含哪些分区、分区是否挂载),输出简洁直观,适合日常监控和简单查看;而parted更适合需要分区详细信息的场景,如分区表类型(MBR/GPT)、分区文件系统、扇区范围等,同时支持对分区进行高级操作(如调整大小、创建文件系统),如果只是查看分区是否挂载及大小,用lsblk;如果需要分析分区结构或管理分区,用partedfdisk

分享:
扫描分享到社交APP
上一篇
下一篇