☰
Linux磁盘分区查看工具全解析:fdisk、lsblk与hwinfo
2026/10/14 12:13:40 网站建设 项目流程

1. 为什么需要掌握多种磁盘分区查看方法

刚接触Linux系统管理时,我经常被各种磁盘工具搞得晕头转向。直到有次服务器磁盘告急,紧急情况下才发现只会用fdisk -l根本不够——某些特殊场景下它竟然不显示我的NVMe固态盘。这才明白,真正的Linux管理员必须掌握多种分区查看技巧,就像木匠不会只带一把锤子去工地。

磁盘信息查看不仅是简单的ls命令,不同工具的设计目标各异:

  • fdisk是传统的分区表操作专家
  • lsblk专为快速理清设备树而生
  • hwinfo能透视硬件底层细节
  • 图形工具则适合直观的交互检查

2. fdisk:老牌分区表的解剖专家

2.1 基础使用与输出解读

作为从DOS时代传承下来的工具,fdisk在MBR分区表的识别上仍是权威。基本用法简单直接:

sudo fdisk -l

典型输出包含几个关键部分:

Disk /dev/sda: 477GiB, 512110190592 bytes, 1000215216 sectors Disk model: Samsung SSD 870 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: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Device Start End Sectors Size Type /dev/sda1 2048 1050623 1048576 512M EFI System /dev/sda2 1050624 1000214527 999163904 476G Linux filesystem

这里需要注意:

  1. Disklabel type显示分区表类型(GPT/MBR)
  2. Sector size影响分区对齐性能
  3. Start/End sectors用于计算分区精确大小

2.2 高级技巧与局限

虽然fdisk很强大,但有些坑要注意:

  • 对NVMe设备需要使用/dev/nvme0n1这样的特殊路径
  • 旧版本可能无法正确显示超过2TB的分区
  • 使用-c=dos参数可以强制识别MBR分区表

提示:遇到fdisk无法识别的磁盘时,先检查dmesg看内核是否成功检测到设备

3. lsblk:设备树形结构的可视化大师

3.1 基础用法与输出优化

lsblk的设计哲学是"展示设备层级关系",默认输出就很有特色:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 476.9G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi └─sda2 8:2 0 476.4G 0 part / nvme0n1 259:0 0 931.5G 0 disk └─nvme0n1p1 259:1 0 931.5G 0 part /data

几个实用参数组合:

lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,LABEL -e 7
  • -o自定义输出列
  • -e 7排除回环设备
  • -f显示完整文件系统信息

3.2 在脚本中的实战应用

在自动化脚本中,我常用这样的组合获取特定分区信息:

data_part=$(lsblk -ln -o NAME,MOUNTPOINT | awk '/\/data/{print $1}')

lsblk的优势在于:

  • 原生支持JSON输出(-J)便于程序解析
  • 清晰展示多路径设备关系
  • 无需root权限查看基础信息

4. hwinfo:硬件信息的瑞士军刀

4.1 安装与基本探测

需要先安装这个强大工具:

# Ubuntu/Debian sudo apt install hwinfo # RHEL/CentOS sudo yum install hwinfo

查看磁盘信息的命令是:

sudo hwinfo --disk

输出会包含厂商固件级别的详细信息:

01: None 00.0: 10600 Disk [Created at block.245] Unique ID: xxxx.xxxx SysFS ID: /class/block/sda Model: "Samsung SSD 870" Vendor: "Samsung" Device: "SSD 870" Revision: "2B6Q" Serial ID: "S4X5NJ0Nxxxxxx" Driver: "ahci", "sd" Device File: /dev/sda Device Files: /dev/sda, /dev/disk/by-id/ata-Samsung_SSD_870_xxxxxx Device Number: block 8:0-8:15 Geometry (Logical): CHS 60801/255/63 Size: 512110190592 bytes Config Status: cfg=new, avail=yes, need=no, active=unknown

4.2 深度解析应用场景

hwinfo特别适合这些情况:

  • 确认磁盘物理健康状态
  • 获取SMART数据之外的详细参数
  • 追踪设备唯一序列号
  • 诊断硬件兼容性问题

注意:在最小化安装的服务器环境可能需要额外安装libhd21等依赖库

5. 图形化工具:从GNOME到KDE的视觉方案

5.1 GNOME Disks实用技巧

在GNOME桌面环境中,gnome-disk-utility提供了最完整的图形界面:

  1. 通过Dash搜索"Disks"启动
  2. 左侧选择物理磁盘
  3. 分区图表显示直观的布局结构

高级功能包括:

  • 创建磁盘镜像文件
  • 运行基准测试
  • 配置SMART监控
  • 格式化时设置高级选项

5.2 KDE Partition Manager的特色

KDE环境的工具更侧重分区管理:

  • 实时显示文件系统使用情况
  • 支持btrfs子卷操作
  • 可以调整EXT4日志参数
  • 内置分区恢复向导

5.3 终端图形化方案

对于远程服务器,可以安装ncdu进行可视化分析:

sudo apt install ncdu ncdu /

或者使用cfdisk这种半图形化工具:

sudo cfdisk /dev/sda

6. 工具选型决策指南

根据多年运维经验,我总结出这个决策矩阵:

场景需求推荐工具理由
快速查看挂载点lsblk输出简洁,直接显示mountpoint列
修改分区表前检查fdisk -l显示分区起始扇区等关键信息
诊断硬件兼容问题hwinfo --disk提供厂商级详细信息
可视化分析GNOME Disks直观展示分区比例和文件系统
脚本中获取设备IDlsblk -o NAME,MOUNTPOINT输出规范易解析
检查NVMe设备lsblk或nvme list传统工具对NVMe支持有限

7. 常见问题排错实录

问题1:工具显示的分区大小不一致

  • fdisk以扇区为单位
  • lsblk显示十进制GB
  • hwinfo显示精确字节数 解决方案:统一用lsblk -b查看字节数

问题2:LVM卷无法直接查看需要组合使用:

lsblk sudo pvdisplay sudo vgdisplay sudo lvdisplay

问题3:USB设备不显示先确认内核是否识别:

dmesg | grep usb lsusb

问题4:磁盘已满但找不到大文件使用组合命令:

sudo du -h --max-depth=1 / | sort -h

8. 性能观察与进阶技巧

通过iostat监控磁盘活动:

sudo apt install sysstat iostat -x 1

关键指标解读:

  • %util:设备利用率
  • await:IO平均等待时间
  • svctm:服务时间

对于ZFS/Btrfs等高级文件系统,需要专用工具:

# ZFS sudo zpool list sudo zfs list # Btrfs sudo btrfs filesystem show

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询