更稳妥的做法,是直接用sudo smartctl -i去读取硬盘固件信息:其中的Serial Number和Model字段,通常就是出厂时写入、相对最真实的值。相比之下,lsblk、udevadm这类命令经常要么返回空值,要么给出伪造字符串;至于hdparm -I,只适合作为SATA盘的备选方案,而且对应字段名写的是SerialNo。

Linux怎么查看具体的磁盘型号和序列号

直接用 smartctl -i 查最准

它不走内核缓存,也不受 udev 规则影响,而是直接下发 ATA/NVMe 命令去读取固件信息。这样拿到的 Serial Number 和 Model,才是硬盘出厂时写入的真实值。反过来看,像 lsblk -o model,serialudevadm info 这类命令,在 SATA 内置盘、VMware 虚拟盘以及部分 NVMe 设备上,常常要么返回空值,要么给出伪造的字符串。

必须加 sudo,普通用户无权访问底层设备指令:

hdparm -I 是 SMART 不可用时的 fallback

smartctl 报错、SMART 被 BIOS 锁死、或系统没装 smartmontools 时,hdparm -I 可作为备选——它走 IDENTIFY 指令路径,不依赖 SMART 层,对部分老旧盘或 JMicron 桥接芯片反而更稳定。

但注意限制:

别信 udevadm/sys/block/*/device/serial 的输出

这两个来源读的是内核初始化时缓存的数据,不是实时从设备读的。常见失效场景包括:

确认目标设备名再动手

误操作可能影响生产环境,务必先用 lsblkls /sys/block/ 确认设备名:

真实环境里,同一块盘用不同命令查出三套“序列号”很常见——关键不是哪个“看起来像”,而是哪个值能被硬件厂商售后系统识别。这时候只有 smartctl -i 输出的 Serial Number 行才真正可信。

本文转载于:https://www.php.cn/faq/2977470.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。