1. Linux磁盘信息查看方法概述
在Linux系统管理中,磁盘信息查看是最基础也是最重要的运维技能之一。无论是排查存储空间不足问题,还是规划磁盘分区方案,亦或是监控磁盘I/O性能,掌握全面的磁盘信息查看方法都是系统管理员必备的能力。
我管理过的服务器中,90%的存储相关问题都可以通过正确的磁盘信息诊断工具快速定位。不同于图形化操作系统,Linux提供了丰富的命令行工具来获取不同维度的磁盘数据,每种工具都有其特定的适用场景和输出解读方式。
对于Linux新手来说,最常遇到的困惑是:为什么我的磁盘显示100%使用了,但通过du统计却找不到大文件?为什么df和lsblk显示的磁盘大小不一致?这些问题都需要我们对Linux磁盘管理机制有系统性的认识。
2. 基础磁盘容量查看工具
2.1 df命令详解
df(disk filesystem)是最常用的磁盘空间检查工具,其基本用法是:
df -h这里的-h参数表示"human-readable",以GB、MB等易读单位显示。典型输出如下:
Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p2 196G 25G 162G 14% / tmpfs 3.9G 0 3.9G 0% /dev/shm关键字段解析:
- Filesystem:实际设备或虚拟文件系统名称
- Use%:这个数值达到90%以上就需要引起警惕
- Mounted on:挂载点路径,/表示根分区
经验提示:当Use%达到100%时,系统可能变得极不稳定。建议设置监控在85%时报警
高级用法组合:
df -hT --total # 显示文件系统类型并计算总量 df -i # 查看inode使用情况(小文件多的系统要特别关注)2.2 du命令深度使用
du(disk usage)用于统计目录和文件的磁盘使用量,与df形成互补:
du -sh /var/log # 查看/var/log目录总大小 du -ah --max-depth=1 /home | sort -hr # 找出/home下占用最大的子目录实用技巧:
- 结合sort -hr对结果排序(h-human, r-reverse)
- 使用--time显示文件修改时间
- --exclude参数可以排除特定模式的文件
常见问题:du统计结果远小于df显示的已用空间?可能是被删除但仍被进程占用的文件,用lsof | grep deleted查找
3. 磁盘设备与分区信息
3.1 lsblk专业解读
lsblk以树状结构显示块设备信息,是分析磁盘分区布局的利器:
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,LABEL,UUID输出示例:
NAME SIZE FSTYPE MOUNTPOINT LABEL UUID nvme0n1 256G ├─nvme0n1p1 512M vfat /boot/efi ESP 67E3-17ED └─nvme0n1p2 255G ext4 / rootfs d8939c8e-1234-5678重要参数:
- -d:只显示磁盘不显示分区
- -p:显示完整设备路径(/dev/nvme0n1)
- -b:以字节显示精确大小
3.2 fdisk与parted对比
查看分区表详细信息:
sudo fdisk -l # 传统MBR分区信息 sudo parted -l # 支持GPT分区的更现代工具关键区别:
- fdisk适用于MBR(最大2TB磁盘)
- parted支持GPT大容量磁盘
- 对于NVMe设备,设备名通常是/dev/nvme0n1而非传统的/dev/sda
4. 高级磁盘信息获取
4.1 smartctl检测磁盘健康
安装smartmontools后,可以获取SSD/HDD的S.M.A.R.T信息:
sudo smartctl -a /dev/nvme0n1 # 对NVMe磁盘 sudo smartctl -a /dev/sda # 对传统SATA磁盘需要关注的健康指标:
- Reallocated_Sector_Ct:重映射扇区数
- Temperature_Celsius:运行温度
- Power_On_Hours:通电时长
- Media_Wearout_Indicator:SSD磨损度(百分比)
4.2 iostat实时监控IO
iostat -x 1 # 每1秒刷新一次扩展统计关键指标解读:
- %util:设备利用率(接近100%表示IO瓶颈)
- await:平均IO等待时间(ms)
- r/s w/s:读写IOPS
4.3 lshw查看硬件详情
获取完整的硬件拓扑信息:
sudo lshw -class disk -class storage输出包含控制器类型、驱动型号、固件版本等深度信息,适合硬件故障排查。
5. 图形化工具替代方案
5.1 ncdu交互式分析
对于不喜欢命令行的用户,可以安装ncdu:
sudo apt install ncdu ncdu / # 扫描根目录操作提示:
- 方向键导航
- d删除文件
- n按文件名排序
5.2 GNOME Disk Utility
图形界面工具,提供:
- 磁盘健康状态可视化
- 基准测试功能
- 分区表编辑(谨慎使用)
6. 企业级监控方案
6.1 Prometheus+Granfa监控
配置node_exporter的textfile收集器,添加自定义指标:
#!/bin/bash echo "node_disk_usage_percent $(df --output=pcent / | tail -1 | tr -d '%')" > /var/lib/node_exporter/disk_metrics.prom6.2 日志轮转配置
防止日志占满磁盘:
sudo vim /etc/logrotate.conf推荐设置:
/var/log/*.log { daily missingok rotate 7 compress delaycompress notifempty create 640 root adm }7. 疑难问题排查指南
7.1 磁盘空间莫名消失
排查步骤:
lsof +L1查看被删除但仍被占用的文件find / -xdev -type f -size +100M查找大文件- 检查docker/var/lib目录:
docker system df
7.2 修复文件系统错误
sudo umount /dev/sda1 sudo fsck -y /dev/sda17.3 LVM相关命令
vgs # 查看卷组 lvs # 查看逻辑卷 pvs # 查看物理卷 lvdisplay -m # 显示逻辑卷映射关系8. 性能优化建议
使用noatime挂载选项减少元数据写入:
# /etc/fstab示例 UUID=d8939c8e-1234-5678 / ext4 defaults,noatime 0 1针对SSD优化调度器:
echo kyber > /sys/block/nvme0n1/queue/scheduler调整vm.swappiness降低交换倾向:
sysctl vm.swappiness=10
掌握这些磁盘信息查看方法后,你将能从容应对以下典型场景:
- 快速定位哪个目录占用了过多空间
- 预判磁盘故障风险
- 规划存储扩容方案
- 优化系统IO性能
- 排查服务异常与磁盘相关的故障
在实际生产环境中,我建议将这些命令封装成监控脚本,定期收集关键指标并设置告警阈值。对于重要的服务器,可以配置smartd守护进程实时监控磁盘健康状态。