如何查询linux的硬盘
- Linux
- 2025-08-10
- 7
在Linux系统中查询硬盘信息是日常运维和故障排查的核心技能之一,以下从基础命令解析、进阶操作指南、可视化工具推荐、磁盘健康监测四个维度展开详细说明,并附完整操作示例与对比表格。
核心命令详解
df命令家族
| 参数 | 作用 | 典型输出示例 |
|---|---|---|
| df -h | 人类可读格式显示磁盘使用率 | /dev/nvme0n1p3: 50G 25G 25G 50% / |
| df -T | 显示文件系统类型 | ext4, xfs, btrfs等 |
| df -i | 显示inode使用情况 | 预防因inode耗尽导致的写入失败 |
| df --output=avail | 仅显示可用空间 | 快速定位剩余空间不足的设备 |
执行逻辑:df通过读取/proc/mounts文件获取已挂载的文件系统信息,结合/etc/mtab补充动态挂载点,注意该命令无法检测未挂载的磁盘分区。
lsblk命令体系
| 参数 | 功能特点 | 优势场景 |
|---|---|---|
| lsblk | 树状结构展示物理设备层级关系 | 快速识别RAID阵列组成 |
| lsblk -f | 同步显示文件系统类型及挂载点 | 建立设备名与挂载点的映射关系 |
| lsblk --paths | 显示设备路径拓扑结构 | 诊断SCSI控制器故障 |
| lsblk -d | 仅显示块设备(排除环回设备) | 过滤掉虚拟磁盘干扰 |
典型输出解读:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 476.9G 0 disk ├─nvme0n1p1 259:1 0 1G 0 part [SWAP] ├─nvme0n1p2 259:2 0 58G 0 part / └─nvme0n1p3 259:3 0 417G 0 part /home
通过缩进符号清晰展示NVMe固态硬盘的分区结构,其中MAJ:MIN表示主次设备号,这是唯一标识设备的编号。

fdisk深度应用
| 子命令 | 功能描述 | 风险提示 |
|---|---|---|
| fdisk -l | 列出所有磁盘分区表 | 不会修改任何数据 |
| fdisk /dev/sda | 进入交互式分区管理 | ️误操作会导致数据丢失 |
| p | 打印当前分区表 | 用于验证修改后的分区结构 |
| n | 创建新分区 | 需谨慎选择起始扇区和大小 |
| d | 删除分区 | 删除前务必确认分区重要性 |
| t | 修改分区类型ID | 配合魔改引导程序时使用 |
安全警示:fdisk直接操作磁盘底层结构,建议操作前使用sfdisk --dump /dev/sda > partition_backup.txt进行备份。
blkid专业查询
该命令专门用于获取分区的唯一标识符:
sudo blkid /dev/nvme0n1p3 # 输出示例: UUID="abcdef12-3456-7890-abcd-ef1234567890" PARTLABEL="datastore" FSTYPE="ext4"
关键字段说明:

- UUID:Linux内核识别分区的核心依据
- PARTLABEL:用户自定义的分区标签
- FSTYPE:文件系统类型
- PTTYPE:分区表类型(gpt/msdos)
进阶操作指南
跨平台设备识别
当遇到特殊设备时,可通过以下组合定位:
# 查找特定厂商设备 lsblk -o name,vendor,model | grep -i "intel" # 显示PCI地址对应的设备 lspci -nn | grep -i storage
多路径设备管理
对于具备冗余路径的存储设备:
multipath -ll # 列出所有多路径设备 multipath -v3 /dev/mapper/mpatha # 查看详细配置
SMART健康检测
安装smartmontools后执行:
smartctl -a /dev/sda # 完整健康报告 smartctl -H /dev/sda # 简化版健康状态
重点关注Reallocated Sectors Count等临界指标。

可视化工具推荐
| 工具名称 | 特点 | 适用场景 |
|---|---|---|
| GParted | 图形化分区编辑器 | Windows/Linux双平台 |
| KDE Partition Manager | Qt框架实现 | KDE桌面环境集成 |
| gnome-disks | GNOME桌面默认工具 | 新手友好的分区管理 |
| Webmin | 基于Web的管理面板 | 远程服务器管理 |
常见问题解决方案
Q1: 为什么df和lsblk显示的总容量不同?
原因分析:df统计的是已挂载的文件系统,而lsblk显示物理设备的总容量,差异主要来自:
- 未分配的空闲空间(如新建硬盘尚未分区)
- 未挂载的分区(如备用分区)
- LVM逻辑卷占用的空间不计入物理设备统计
解决步骤:
- 使用lsblk -f查看完整设备树
- 检查/etc/fstab确认是否遗漏挂载点
- 使用parted /dev/sda print查看详细分区表
Q2: 如何安全扩展现有分区?
标准流程:
- 卸载目标分区:umount /dev/sda3
- 删除原有分区:fdisk /dev/sda → d → 3
- 重新创建分区:n → p → 3 → +size(指定新大小)
- 文件系统扩容:resize2fs /dev/sda3(ext系列)或xfs_growfs /dev/sda3(XFS)
重要提醒:操作前必须备份数据!对于LVM卷可直接使用lvextend命令在线扩展。
综合查询方案
| 需求场景 | 推荐命令组合 | 输出效果 |
|---|---|---|
| 快速查看挂载点 | df -hT | 带类型的人类可读格式 |
| 分析磁盘性能瓶颈 | iostat -dx 1 5 + vmstat 1 | CPU/IO等待时间统计 |
| 诊断启动盘异常 | fdisk -l + blkid + cat /etc/fstab | 三重验证启动配置 |
| 规划新服务器存储布局 | lsblk -d + smartctl -a /dev/sda | 物理设备清单+健康状态 |
企业级实践建议
- 监控策略:将df和smartctl纳入Zabbix/Prometheus监控模板,设置阈值告警
- 日志审计:定期检查/var/log/syslog中与磁盘相关的错误记录
- 快照机制:对关键业务分区实施LVM快照,防止误操作导致数据丢失
- RAID配置:生产环境建议采用硬件RAID卡+软件RAID双重保护
相关问答FAQs
Q1: 为什么新添加的硬盘没有出现在df列表中?
A: 因为新硬盘需要完成三个步骤才能使用:①分区(使用fdisk或parted);②创建文件系统(mkfs.ext4);③手动挂载或添加到/etc/fstab,执行顺序应为:fdisk /dev/sdb → mkfs.ext4 /dev/sdb1 → mount /dev/sdb1 /mnt/newdisk。
Q2: 如何永久保留分区更改?
A: 仅运行fdisk修改分区表是不够的,必须更新引导加载程序,对于GRUB引导器,执行以下步骤:①grub-install /dev/sda;②生成新配置文件update-grub;③重启系统验证,特别注意UEFI系统还需要处理