在Linux系统管理与维护中,无论是进行磁盘空间分析、系统性能优化,还是进行分区规划,都需要准确掌握系统中的存储设备结构。本文将详细介绍四种常用的磁盘分区查看方法,涵盖命令行工具与图形界面工具。
1.使用fdisk命令:经典的分区表管理工具
fdisk 是Linux系统中历史最悠久、使用最广泛的分区表操作工具之一,几乎所有Linux发行版都预装了此工具。
1.1基本使用方法
查看系统中所有磁盘的分区信息:
fdisk -l
1.2命令输出解读
执行上述命令后,将看到类似以下的信息:
[ymadmin@backup ~]$ sudo fdisk -l
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: INTEL SSDPEKNU512GZH
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: DC05CB84-9737-40EF-B866-68C299246539
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1230847 1228800 600M EFI System
/dev/nvme0n1p2 1230848 3327999 2097152 1G Linux filesystem
/dev/nvme0n1p3 3328000 213043199 209715200 100G Linux filesystem
/dev/nvme0n1p4 213043200 246597631 33554432 16G Linux swap
/dev/nvme0n1p5 246597632 1000214527 753616896 359.4G Linux filesystem
Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WDC WD10EZEX-00B
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: A9002B73-B2A7-491D-9FFC-84B45351C365
Device Start End Sectors Size Type
/dev/sda1 2048 1953525134 1953523087 931.5G Linux LVM
Disk /dev/mapper/data_vg-data_lv: 931.51 GiB, 1000198897664 bytes, 1953513472 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
[ymadmin@backup ~]$
主要信息包括:
(一)磁盘基本信息
(1)设备标识:/dev/nvme0n1 (NVMe固态硬盘) 和 /dev/sda (SATA机械硬盘)
(2)容量表示:同时显示GiB(二进制千兆字节)和bytes(字节)两种单位
/dev/nvme0n1: 476.94 GiB (512,110,190,592 字节)/dev/sda: 931.51 GiB (1,000,204,886,016 字节)
(3)扇区总数:磁盘总容量换算为512字节扇区的数量
(4)磁盘型号:具体的硬件型号信息
(二)技术参数
(1)扇区单位:
Units: sectors of 1 * 512 = 512 bytes,表示每个扇区512字节,这是磁盘寻址的基本单位。
(2)扇区大小:
逻辑扇区:操作系统识别的扇区大小(通常为512字节)
物理扇区:磁盘实际的物理扇区大小
NVMe盘:512字节/512字节(传统格式)
SATA盘:512字节/4096字节(4K高级格式)
(3)I/O大小:操作系统与磁盘通信的最佳块大小
- SATA盘:4096字节/4096字节(已针对4K扇区优化)
(三)分区表信息
(1)分区表类型:Disklabel type: gpt
- 两块磁盘均采用GPT(GUID分区表),这是现代UEFI系统的标准
- 相比传统的MBR,GPT支持更大容量(>2TB)和更多分区
(2)磁盘标识符:Disk identifier: ...
其它信息这里略过。
1.3查看特定磁盘
如果只想查看特定磁盘的信息,可以指定设备路径:
sudo fdisk -l /dev/sda
比如,查看/dev/sda磁盘:
[ymadmin@backup ~]$ sudo fdisk -l /dev/sda
[sudo] password for ymadmin:
Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WDC WD10EZEX-00B
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: A9002B73-B2A7-491D-9FFC-84B45351C365
Device Start End Sectors Size Type
/dev/sda1 2048 1953525134 1953523087 931.5G Linux LVM
[ymadmin@backup ~]$
1.4适用场景
2.使用lsblk命令:直观的块设备查看器
lsblk(list block devices)是专门为列出块设备信息设计的工具,它默认以树状结构展示设备间的层次关系,输出直观易懂。
2.1基本使用方法
lsblk
典型输出示例:
[ymadmin@backup ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
`-sda1 8:1 0 931.5G 0 part
`-data_vg-data_lv 253:0 0 931.5G 0 lvm /data
nvme0n1 259:0 0 476.9G 0 disk
|-nvme0n1p1 259:1 0 600M 0 part /boot/efi
|-nvme0n1p2 259:2 0 1G 0 part /boot
|-nvme0n1p3 259:3 0 100G 0 part /
|-nvme0n1p4 259:4 0 16G 0 part [SWAP]
`-nvme0n1p5 259:5 0 359.4G 0 part /data01
[ymadmin@backup ~]$
2.2常用参数选项
(1)查看文件系统信息:
lsblk -f
[ymadmin@backup ~]$ lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
`-sda1 LVM2_member LVM2 001 gLA4qa-oEXA-IbDa-bN6B-HY6t-CIcr-RuL3f2
`-data_vg-data_lv xfs eed8af6c-a5b1-4cb4-9f54-414508ed51c6 861.1G 8% /data
nvme0n1
|-nvme0n1p1 vfat FAT32 034E-53DA 591.8M 1% /boot/efi
|-nvme0n1p2 xfs 5ae0f4b9-7ade-4ffc-b473-13dfded35103 633.5M 34% /boot
|-nvme0n1p3 xfs 315b1bd4-44bc-4901-9010-de4b091088b0 87.2G 13% /
|-nvme0n1p4 swap 1 a6edc51b-4034-4fc0-92d3-e75a3687cd80 [SWAP]
`-nvme0n1p5 xfs ada01fb8-5e5e-4841-8da1-394f5c374eff 356.4G 1% /data01
[ymadmin@backup ~]$
(2)自定义输出列:
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,LABEL,UUID
[ymadmin@backup ~]$ lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,LABEL,UUID
NAME SIZE TYPE FSTYPE MOUNTPOINT LABEL UUID
sda 931.5G disk
`-sda1 931.5G part LVM2_member gLA4qa-oEXA-IbDa-bN6B-HY6t-CIcr-RuL3f2
`-data_vg-data_lv 931.5G lvm xfs /data eed8af6c-a5b1-4cb4-9f54-414508ed51c6
nvme0n1 476.9G disk
|-nvme0n1p1 600M part vfat /boot/efi 034E-53DA
|-nvme0n1p2 1G part xfs /boot 5ae0f4b9-7ade-4ffc-b473-13dfded35103
|-nvme0n1p3 100G part xfs / 315b1bd4-44bc-4901-9010-de4b091088b0
|-nvme0n1p4 16G part swap [SWAP] a6edc51b-4034-4fc0-92d3-e75a3687cd80
`-nvme0n1p5 359.4G part xfs /data01 ada01fb8-5e5e-4841-8da1-394f5c374eff
[ymadmin@backup ~]$
(3)显示完整设备路径:
lsblk -p
[ymadmin@backup ~]$ lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
/dev/sda 8:0 0 931.5G 0 disk
`-/dev/sda1 8:1 0 931.5G 0 part
`-/dev/mapper/data_vg-data_lv 253:0 0 931.5G 0 lvm /data
/dev/nvme0n1 259:0 0 476.9G 0 disk
|-/dev/nvme0n1p1 259:1 0 600M 0 part /boot/efi
|-/dev/nvme0n1p2 259:2 0 1G 0 part /boot
|-/dev/nvme0n1p3 259:3 0 100G 0 part /
|-/dev/nvme0n1p4 259:4 0 16G 0 part [SWAP]
`-/dev/nvme0n1p5 259:5 0 359.4G 0 part /data01
[ymadmin@backup ~]$
(4)以JSON格式输出(便于脚本处理):
lsblk -J
[ymadmin@backup ~]$ lsblk -J
{
"blockdevices": [
{
"name": "sda",
"maj:min": "8:0",
"rm": false,
"size": "931.5G",
"ro": false,
"type": "disk",
"mountpoints": [
null
],
"children": [
{
"name": "sda1",
"maj:min": "8:1",
"rm": false,
"size": "931.5G",
"ro": false,
"type": "part",
"mountpoints": [
……
2.3实用技巧
(1) 仅显示磁盘设备(不显示分区)
[ymadmin@backup ~]$ lsblk -d
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
nvme0n1 259:0 0 476.9G 0 disk
[ymadmin@backup ~]$
上面命令只显示了两个磁盘的基本信息,当磁盘很多时,这很方便:
(2)以字节为单位显示大小
[ymadmin@backup ~]$ lsblk -b
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1000204886016 0 disk
`-sda1 8:1 0 1000203820544 0 part
`-data_vg-data_lv 253:0 0 1000198897664 0 lvm /data
nvme0n1 259:0 0 512110190592 0 disk
|-nvme0n1p1 259:1 0 629145600 0 part /boot/efi
|-nvme0n1p2 259:2 0 1073741824 0 part /boot
|-nvme0n1p3 259:3 0 107374182400 0 part /
|-nvme0n1p4 259:4 0 17179869184 0 part [SWAP]
`-nvme0n1p5 259:5 0 385851850752 0 part /data01
[ymadmin@backup ~]$
(3)查看SCSI设备信息
[ymadmin@backup ~]$ lsblk -S
NAME HCTL TYPE VENDOR MODEL REV SERIAL TRAN
sda 5:0:0:0 disk ATA WDC WD10EZEX-00BBHA0 1A01 WD-WCC6Y3UL5624 sata
[ymadmin@backup ~]$
2.4适用场景
3.使用hwinfo命令:全面的硬件信息查询工具
hwinfo 是一个功能强大的硬件信息查询工具,它不仅提供存储设备信息,还能显示系统中所有硬件的详细信息。
3.1安装方法
如果在系统里找不到hwinfo命令,则执行以下命令安装它,根据不同的Linux发行版,安装命令有所不同:
# Debian/Ubuntu/Mint系列
sudo apt install hwinfo
# RHEL/CentOS/Fedora/Rocky Linux/AlmaLinux系列
sudo yum install hwinfo # 或 sudo dnf install hwinfo
3.2使用方法
(1)查看磁盘详细信息:
sudo hwinfo --disk
如下,该命令检测到两块磁盘:一块512GB Intel NVMe固态硬盘(型号SSDPEKNU512GZH,序列号BTKA2122092Q512A)通过PCIe总线连接,以及一块1TB西部数据机械硬盘(型号WD10EZEX-00B,序列号WD-WCC6Y3UL5624)通过SATA接口连接,两块磁盘均被系统正常识别。
[ymadmin@backup ~]$ sudo hwinfo --disk
[sudo] password for ymadmin:
24: NVME 00.0: 10600 Disk
[Created at block.255]
Unique ID: GP4z.WR9oRi9OoD8
Parent ID: bGtE.HH1M6tPWMm8
SysFS ID: /class/block/nvme0n1
SysFS BusID: nvme0
SysFS Device Link: /devices/pci0000:00/0000:00:0e.0/pci10000:e0/10000:e0:1d.4/10000:e1:00.0/nvme/nvme0
Hardware Class: disk
Model: "Intel INTEL SSDPEKNU512GZH"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0xf1aa "INTEL SSDPEKNU512GZH"
SubVendor: pci 0x8086 "Intel Corporation"
SubDevice: pci 0x390f
Serial ID: "BTKA2122092Q512A"
Driver: "nvme"
Driver Modules: "nvme"
……
25: IDE 500.0: 10600 Disk
[Created at block.255]
Unique ID: 3OOL.bS3gg88bMa8
Parent ID: gf9x.+ek8g6CkZC1
SysFS ID: /class/block/sda
SysFS BusID: 5:0:0:0
SysFS Device Link: /devices/pci0000:00/0000:00:0e.0/pci10000:e0/10000:e0:17.0/ata6/host5/target5:0:0/5:0:0:0
Hardware Class: disk
Model: "WDC WD10EZEX-00B"
Vendor: "WDC"
Device: "WD10EZEX-00B"
Revision: "1A01"
Serial ID: "WD-WCC6Y3UL5624"
Driver: "ahci", "sd"
Driver Modules: "ahci", "sd_mod"
……
(2)简洁模式显示磁盘信息:
sudo hwinfo --disk --short
[ymadmin@backup ~]$ sudo hwinfo --disk --short
disk:
/dev/nvme0n1 Intel INTEL SSDPEKNU512GZH
/dev/sda WDC WD10EZEX-00B
[ymadmin@backup ~]$
(3)查看所有块设备概要:
sudo hwinfo --short --block
[ymadmin@backup ~]$ sudo hwinfo --short --block
disk:
/dev/nvme0n1 Intel INTEL SSDPEKNU512GZH
/dev/sda WDC WD10EZEX-00B
partition:
/dev/nvme0n1p1 Partition
/dev/nvme0n1p2 Partition
/dev/nvme0n1p3 Partition
/dev/nvme0n1p4 Partition
/dev/nvme0n1p5 Partition
/dev/sda1 Partition
[ymadmin@backup ~]$
3.3输出特点
hwinfo输出的信息非常详尽,包括:
3.4适用场景
4.使用图形界面工具:直观的可视化查看
对于 Linux 桌面用户,可通过图形界面工具直观查看磁盘与分区。通常在系统菜单中搜索 “磁盘”(或 “Disks”)即可找到相应应用,打开后即可浏览当前连接的磁盘及其分区情况。
5.工具对比
6.实用工作流程建议
6.1日常快速检查
第一步:快速查看磁盘分区结构
lsblk
第二步:如有需要,查看更详细的分区信息
sudo fdisk -l
6.2硬件故障排查
第一步:查看硬件识别情况
sudo hwinfo --disk --short
第二步:检查分区表
sudo fdisk -l /dev/sda
第三步:查看系统日志
sudo dmesg | grep -i disk
sudo journalctl -k | grep -i sda
6.3脚本编程
使用lsblk的JSON输出格式或使用可解析的文本格式:
lsblk -J > disk_info.json
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT -n > disk_list.txt
7.常见问题与解决方案
7.1新硬盘不显示分区
# 检查内核是否识别到硬盘
sudo dmesg | tail -20
# 查看所有块设备
lsblk
# 如果设备存在但无分区,可能需要创建分区表
# 警告:此操作会清除所有数据!
# sudo fdisk /dev/sdb
7.2查看特定类型的分区
# 只查看ext4分区
lsblk -f | grep ext4
# 查看所有挂载的分区
findmnt
7.3获取分区UUID
# 方法一:使用lsblk
lsblk -f
# 方法二:使用blkid
sudo blkid
# 方法三:查看/dev/disk/by-uuid/
ls -l /dev/disk/by-uuid/
