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 变更导致挂载失败,并完成排错与恢复。