Power_On_Hours缺失主因是设备类型不匹配或SMART未透传:NVMe需加-d nvme参数,USB盘基本不可信,RAID卡需切换AHCI/IT模式;字段名可能为Power On Hours或藏于ID 9/0xC9等非标位置;数值为0或突降多因固件重置。

smartctl -A /dev/sdX 找不到 Power_On_Hours?先确认设备类型和参数
多数人执行 smartctl -A /dev/sda 后没看到 Power_On_Hours,不是命令写错了,而是设备根本不支持标准 ATA/SATA SMART 指令透传。常见情况包括:
- NVMe 盘必须加
-d nvme参数,否则默认按 ATA 解析,字段名也不同 —— 是Power On Hours(带空格),不是Power_On_Hours - USB 外置盘基本不可信:桥芯片通常不透传 SMART,
smartctl会直接报Read SMART Data failed: scsi error unsupported - RAID 卡直通模式下(如 LSI/Broadcom),SMART 命令可能被卡固件拦截,读到的是缓存值;需进 BIOS 关 RAID 模式,改用 AHCI 或 IT 模式
- 用
lsblk -d -o NAME,ROTA,TRAN看TRAN列:只有sata才大概率可靠;usb、nvme、unknown都要换参数或放弃
Power_On_Hours 字段名不出现?试试 -l devstat 和属性 ID 定位
有些硬盘(尤其白牌、老旧或特定厂商)把通电时间藏在非标位置,比如:
- ID 9 不一定对应
Power_On_Hours:WD 部分型号用ID 0xC9,希捷某些盘用ID 0x09但显示为Power_On_Minutes - 运行
smartctl -A /dev/sda后,逐行扫字段名,找含hour、minute、power、on的条目;若看到Unknown_Attribute,记下第一列数字(ID),再查对应厂商文档 -
smartctl -l devstat /dev/sda可能给出更准的累计通电分钟数,部分盘在此处记录,而非 Attributes 表里
输出里 Power_On_Hours 是 0 或跳变?别急着判“新盘”
数值异常往往说明底层状态被重置过,不是测量失效:
-
Power_On_Hours: 0很可能来自固件刷新、厂商维修、或被hdparm --user-master u --security-set-pass类命令触发初始化 - 二手盘检测时,单看
Power_On_Hours不够 —— 一定要比对smartctl -i /dev/sda中的LU WWN Device Id和硬盘外壳标签是否一致;不一致=换过盘片 - 数值突降(如从 30000 小时跳回 100 小时)基本可判定做过底层重置,历史磨损信息已不可信
RAID 卡、USB 盘、NVMe 盘的典型命令组合
不同设备类型不能套用同一命令,必须按物理接口和协议选参数:
- SATA/ATA 盘(
TRAN=sata):sudo smartctl -A /dev/sda→ 查Power_On_Hours字段 - NVMe 盘(
TRAN=nvme):sudo smartctl -a -d nvme /dev/nvme0n1→ 查Power On Hours(注意空格+大小写) - MegaRAID 卡上的盘:
sudo smartctl -a -d megaraid,0 /dev/sda(0 是 slot ID,需先用megasasctl或storcli查编号) - USB 盘:基本放弃;
smartctl -i /dev/sdb若返回Device Model: USB to ATA/ATAPI bridge,就别浪费时间了
实际跑起来最常卡住的地方,是忘了加 -d nvme 或误把 USB 盘当 SATA 盘测。通电时间本身不难读,难的是判断“这个数字到底靠不靠谱”。











