上一篇
如何查看linux硬盘
- Linux
- 2025-08-17
- 5
在Linux中,可使用
df -h
查看各分区容量及使用率,
lsblk
查看物理磁盘/分区结构,`fdisk
基础认知准备
在正式操作前需明确三个关键概念:
物理磁盘:硬件层面的存储介质(如SATA/NVMe固态硬盘);
分区:将物理磁盘划分为逻辑存储单元的过程;
文件系统:管理分区数据的格式(ext4/xfs/btrfs等)。
Linux通过/dev
目录映射设备节点,命名规则为/dev/sdX
(传统机械硬盘)或/dev/nvmeXnY
(NVMe固态硬盘),其中X
表示接口编号,Y
表示同一接口下的设备序号。
核心查看方法详解
实时查看挂载点与使用率——df
命令族
命令 | 功能描述 | 关键参数/选项 | 示例输出解读 |
---|---|---|---|
df -h |
以人类可读格式显示已挂载文件系统的磁盘空间占用情况 | -h : 自动换算单位-T : 显示文件系统类型 |
第一行对应根分区,包含总容量/已用/可用空间 |
df -i |
显示inode使用情况(解决”磁盘未满但无法写入”问题的关键) | -i : 仅显示inode信息 |
关注百分比接近100%的分区 |
df --sync |
先同步缓存再统计(获取更准确的实时数据) | --sync : 强制同步 |
适用于监控动态变化的服务器环境 |
watch -n 5 'df -h' |
每5秒刷新一次磁盘使用情况(适合长时间监控) | watch : 持续监控系统状态 |
终端会进入交互式监控模式 |
典型应用场景:快速判断哪个分区即将耗尽空间,定位日志暴涨等问题。
深度解析磁盘结构——lsblk
与fdisk
组合
工具 | 功能特点 | 执行示例 | 输出重点解析 |
---|---|---|---|
lsblk -f |
树状展示块设备拓扑结构(含主从关系) | lsblk -f |
箭头→表示依赖关系,ROOT为主设备 |
lsblk -m |
附加显示MAPPER信息(用于排查UDEV规则冲突) | lsblk -m |
可见设备别名与内核映射关系 |
sudo fdisk -l |
列出所有磁盘的分区表信息(比lsblk 更底层) |
sudo fdisk -l |
注意识别厂商标识符(如ZFS池设备) |
parted -l |
支持GPT/MBR分区表的高级查看(可识别大于2TB的磁盘) | sudo parted -l |
明确标注”Model”字段区分不同协议类型 |
进阶技巧:结合grep
过滤特定设备
lsblk -o NAME,SIZE,MODEL,SERIAL | grep "nvme" # 仅显示NVMe设备
精准定位设备属性——blkid
与udevadm
工具 | 核心用途 | 典型用法 | 输出价值 |
---|---|---|---|
blkid |
查询设备的UUID/LABEL/文件系统类型等元数据 | sudo blkid /dev/sda1 |
获取启动引导所需的唯一标识符 |
udevadm info -q path -n /dev/sda |
查看设备对应的Udev规则匹配结果 | udevadm info -q path -n /dev/sda |
诊断设备命名异常问题(如未按预期挂载) |
ls -l /dev/disk/by-id/ |
通过符号链接快速跳转到真实设备节点 | ls -l /dev/disk/by-id/ |
持久化设备路径(重启后仍有效) |
案例演示:修改/etc/fstab
时必须使用blkid
获取的UUID而非设备名,防止设备顺序变化导致的启动失败。
专业级磁盘健康检测——smartctl
操作步骤 | 作用说明 | 风险提示 |
---|---|---|
smartctl -a /dev/sda |
执行全盘S.M.A.R.T自检(耗时较长,慎用于生产环境) | ️ 可能导致短暂IO性能下降 |
smartctl -H /dev/sda |
仅查看健康状态摘要(推荐日常巡检) | ️ 安全无副作用 |
smartctl -t short /dev/sda |
执行短时快速测试(平衡速度与准确性) | ⏳ 约5分钟内完成 |
smartctl --json=on -a /dev/sda > report.json |
生成结构化报告供自动化分析 | 便于集成至Zabbix/Prometheus |
阈值解读:重点关注Reallocated Sectors Count
(重映射扇区数)、Seek Error Rate
(寻道错误率)等红色标记项。
可视化辅助工具推荐
工具名称 | 特点优势 | 适用场景 |
---|---|---|
GParted | 图形化分区编辑器(支持调整分区大小、创建/删除分区) | 桌面环境下的直观操作 |
KDE Partition Manager | Plasma桌面环境的原生分区管理工具 | KDE用户首选 |
gnome-disks | GNOME桌面环境的简易分区工具 | 快速查看+基础操作 |
Webmin Filesystems Module | 基于Web界面的远程管理(需安装Webmin) | 服务器集群集中管控 |
常见误区与解决方案
误区1:混淆设备名与分区名
- 现象:执行
mount /dev/sda
报错”special device does not exist” - 原因:
/dev/sda
是整盘设备,实际应指定具体分区如/dev/sda1
- 解决:使用
lsblk
确认目标分区路径,或通过findmnt
反向查找挂载点
误区2:忽略RAID阵列的特殊性
- 特征:
lsblk
显示多个缺失的离线设备 - 根源:软RAID(MD)或硬件RAID卡管理的虚拟设备
- 对策:
- 软件RAID:
cat /proc/mdstat
查看阵列状态 - 硬件RAID:安装厂商提供的管理工具(如MegaRAID SASinst)
- 软件RAID:
相关问答FAQs
Q1: 新插入的移动硬盘未被系统识别怎么办?
A: 按以下顺序排查:
- 物理层:确认USB接口供电充足,尝试更换数据线/端口;
- 内核日志:执行
dmesg | tail -20
查看设备初始化日志; - 手动加载驱动:若为特殊协议(如USB3.0),尝试
modprobe usb_storage
; - 延迟检测:部分设备需等待数秒才能被识别,可执行
lsusb
确认设备已注册; - 持久化配置:若频繁出现此问题,可在
/etc/udev/rules.d/
添加自定义规则。
Q2: 如何安全地扩展现有分区的大小?
A: 操作步骤如下(以扩展/dev/sda3
为例):
- 卸载分区:
umount /dev/sda3
(若正在使用需重启至救援模式); - 删除原有分区:
fdisk /dev/sda
→d
删除3号分区; - 重建分区:
n
新建分区,设置起始扇区与原分区相同,结束扇区设为最大值; - 更新文件系统:
resize2fs /dev/sda3
(ext系列文件系统); - 验证效果:
df -h
确认新容量生效。
️ 重要提醒:操作前务必备份数据!若使用LVM逻辑卷,可直接通过lvextend
扩展更安全。
通过以上方法的组合运用,可实现对Linux磁盘的全方位监控与管理,建议定期执行df -h
和smartctl -H
进行预防性维护,对于关键业务服务器,推荐配置邮件告警机制(如结合munin-node
+Postfix