fix: NVMe 温度检测改用字符设备校验

- /dev/nvme0(控制器,major 243)是字符设备,/dev/nvme0n1(命名空间)才是块设备(major 259)
- 上一版 -b 块设备校验会跳过所有真实 NVMe 控制器,导致温度监控对 NVMe 失效,属回归缺陷
- 改为 -c 字符设备校验;glob 无匹配时的字面模式串既非字符也非块设备,跳过行为不变
This commit is contained in:
Maple
2026-08-19 19:27:39 +08:00
parent 64433dce95
commit 081b242a07

View File

@@ -327,8 +327,9 @@ EOF
log_info "检测系统中的 NVME 硬盘"
nvi=0
for nvme in /dev/nvme[0-9]; do
# glob 无匹配时 bash 会返回字面模式字符串,需校验真实块设备后跳过(参考下方 SATA 检测)
[ -b "$nvme" ] || continue
# 控制器节点为字符设备(如 /dev/nvme0major 243命名空间才是块设备/dev/nvme0n1不匹配本模式
# 字符设备校验同时兼容 glob 无匹配场景(字面模式字符串非字符设备,自然跳过)
[ -c "$nvme" ] || continue
chmod +s /usr/sbin/smartctl 2>/dev/null
cat >> $tmpf << EOF