lsblk
或 sudo fdisk -l
查看物理硬盘;df -h
查看挂载点及使用情况,blkid
查在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系统还需要处理
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/100632.html