3.2.6 设备信息查看与监控(lsblk、blkid、smartctl)
设备信息查看与监控是磁盘运维的基础能力,可快速识别设备结构、分区、文件系统与健康状态。常用工具包括 lsblk 用于结构化展示块设备关系,blkid 用于获取设备UUID与文件系统类型,smartctl 用于读取磁盘SMART健康指标并进行自检。以下内容包含原理草图、安装、命令解释、排错与练习。
原理草图(设备识别与健康检查链路):
安装与环境准备#
# Debian/Ubuntu
sudo apt-get update
sudo apt-get install -y util-linux smartmontools
# RHEL/CentOS/Alma/Rocky
sudo yum install -y util-linux smartmontools
# 验证工具是否可用
lsblk --version
blkid -V
smartctl -V
lsblk:结构化展示块设备#
常用场景:确认磁盘/分区/挂载点拓扑,排查重复挂载或未格式化分区。
示例与解释:
# 1) 树形展示所有块设备
lsblk
# 预期:显示 NAME、MAJ:MIN、RM、SIZE、RO、TYPE、MOUNTPOINT
# 2) 显示文件系统类型、UUID、挂载点
lsblk -f
# 预期:增加 FSTYPE、UUID、LABEL、MOUNTPOINT
# 3) 自定义字段,便于脚本化
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,UUID,MODEL,SERIAL
# 解释:
# NAME: 设备名 SIZE: 容量 TYPE: disk/part
# FSTYPE: 文件系统类型 MOUNTPOINT: 挂载点
# UUID: 稳定标识 MODEL/SERIAL: 设备型号/序列号
# 4) 仅查看单块磁盘(如 /dev/sdb)
lsblk /dev/sdb
blkid:读取UUID与文件系统类型#
常用场景:编写 /etc/fstab、排查挂载失败、确认分区格式。
示例与解释:
# 1) 查看所有可识别设备
blkid
# 预期:/dev/sda1: UUID="..." TYPE="ext4" PARTUUID="..."
# 2) 查看指定分区
blkid /dev/sdb1
# 3) 只输出UUID(脚本中常用)
blkid -s UUID -o value /dev/sdb1
smartctl:SMART健康状态与自检#
smartctl 属于 smartmontools,用于读取磁盘健康状态、温度、通电时间、坏道趋势等关键指标。
示例与解释:
# 1) 查看基本信息与SMART支持情况
smartctl -i /dev/sda
# 重点关注:SMART support is: Enabled/Available
# 2) 快速健康评估
smartctl -H /dev/sda
# 预期:SMART overall-health self-assessment test result: PASSED
# 3) 查看详细属性
smartctl -A /dev/sda
# 关键字段:
# Reallocated_Sector_Ct: 重映射扇区数
# Current_Pending_Sector: 待定扇区
# Offline_Uncorrectable: 不可校正错误
# Temperature_Celsius: 温度
# 4) 发起短/长自检
smartctl -t short /dev/sda
smartctl -t long /dev/sda
# 自检完成后查看结果
smartctl -a /dev/sda | sed -n '/Self-test log/,$p'
RAID/虚拟化环境说明(根据控制器类型调整):
# 例如 MegaRAID,磁盘序号从 0 开始
smartctl -a -d megaraid,0 /dev/sda
运维示例:挂载失败与UUID核对#
场景:系统重启后 /data 挂载失败,需要核对UUID并修正 fstab。
# 1) 查看当前设备UUID
blkid /dev/sdb1
# 2) 查看 fstab 中的配置
grep /data /etc/fstab
# 3) 修正 fstab(示例)
sudo sed -i 's/UUID=old-uuid/UUID=new-uuid/' /etc/fstab
# 4) 重新挂载并验证
sudo mount -a
df -h | grep /data
监控与告警建议#
- 将 SMART 关键指标(重映射扇区数、待定扇区、温度)纳入监控。
- 自检安排在低峰期,避免业务 I/O 抖动。
- SMART 报错时先备份,再评估更换磁盘,避免损坏扩大。
排错清单(常见问题)#
1) smartctl 显示 “SMART support is: Disabled”
sudo smartctl -s on /dev/sda
2) smartctl 报 “Unknown USB bridge”
# 需要指定 USB Bridge 类型(示例)
smartctl -a -d sat /dev/sdb
3) lsblk 看不到新磁盘
# 触发总线重新扫描(示例)
echo "- - -" | sudo tee /sys/class/scsi_host/host0/scan
lsblk
练习#
1) 使用 lsblk -f 列出所有分区并标注未挂载分区。
2) 用 blkid 为 /etc/fstab 写出一个基于 UUID 的挂载条目。
3) 选择一块磁盘执行 smartctl -t short,并记录自检结果与耗时。
4) 模拟 UUID 变更导致挂载失败,并完成排错与恢复。