当前位置:首页 > Linux > 正文

如何查看linux硬盘

在Linux中,可使用 df -h查看各分区容量及使用率, lsblk查看物理磁盘/分区结构,`fdisk

基础认知准备

在正式操作前需明确三个关键概念:
物理磁盘:硬件层面的存储介质(如SATA/NVMe固态硬盘);
分区:将物理磁盘划分为逻辑存储单元的过程;
文件系统:管理分区数据的格式(ext4/xfs/btrfs等)。
Linux通过/dev目录映射设备节点,命名规则为/dev/sdX(传统机械硬盘)或/dev/nvmeXnY(NVMe固态硬盘),其中X表示接口编号,Y表示同一接口下的设备序号。

如何查看linux硬盘  第1张


核心查看方法详解

实时查看挂载点与使用率——df命令族

命令 功能描述 关键参数/选项 示例输出解读
df -h 以人类可读格式显示已挂载文件系统的磁盘空间占用情况 -h: 自动换算单位
-T: 显示文件系统类型
第一行对应根分区,包含总容量/已用/可用空间
df -i 显示inode使用情况(解决”磁盘未满但无法写入”问题的关键) -i: 仅显示inode信息 关注百分比接近100%的分区
df --sync 先同步缓存再统计(获取更准确的实时数据) --sync: 强制同步 适用于监控动态变化的服务器环境
watch -n 5 'df -h' 每5秒刷新一次磁盘使用情况(适合长时间监控) watch: 持续监控系统状态 终端会进入交互式监控模式

典型应用场景:快速判断哪个分区即将耗尽空间,定位日志暴涨等问题。

深度解析磁盘结构——lsblkfdisk组合

工具 功能特点 执行示例 输出重点解析
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设备

精准定位设备属性——blkidudevadm

工具 核心用途 典型用法 输出价值
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)

相关问答FAQs

Q1: 新插入的移动硬盘未被系统识别怎么办?

A: 按以下顺序排查:

  1. 物理层:确认USB接口供电充足,尝试更换数据线/端口;
  2. 内核日志:执行dmesg | tail -20查看设备初始化日志;
  3. 手动加载驱动:若为特殊协议(如USB3.0),尝试modprobe usb_storage
  4. 延迟检测:部分设备需等待数秒才能被识别,可执行lsusb确认设备已注册;
  5. 持久化配置:若频繁出现此问题,可在/etc/udev/rules.d/添加自定义规则。

Q2: 如何安全地扩展现有分区的大小?

A: 操作步骤如下(以扩展/dev/sda3为例):

  1. 卸载分区umount /dev/sda3(若正在使用需重启至救援模式);
  2. 删除原有分区fdisk /dev/sdad删除3号分区;
  3. 重建分区n新建分区,设置起始扇区与原分区相同,结束扇区设为最大值;
  4. 更新文件系统resize2fs /dev/sda3(ext系列文件系统);
  5. 验证效果df -h确认新容量生效。
    重要提醒:操作前务必备份数据!若使用LVM逻辑卷,可直接通过lvextend扩展更安全。

通过以上方法的组合运用,可实现对Linux磁盘的全方位监控与管理,建议定期执行df -hsmartctl -H进行预防性维护,对于关键业务服务器,推荐配置邮件告警机制(如结合munin-node+Postfix

0