WWN =世界通用名称
Seagate Constellation ES,型号 ST3500514NS,500 GB 3.5 英寸 SATA 驱动器
它有“序列号”,9WJxxxxx,八个字符。它的 WWN 5000C5002E47xxxx 是 16 个字符。两者都打印在硬盘驱动器的标签上。
WD 型号 WD4001FFSX,4 TB SATA 驱动器
它具有 12 个字符的“序列号”WMC5D0Dxxxxx。它的 WWN 50014EE003Fxxxxx 为 16 个字符。
HGST,型号 HUC109060CSS600,300 GB 2.5" SAS 驱动器
它有“序列号”KWJTxxx,也是八个字符。它有 WWN...我不知道;它没有打印在标签上,也没有插入系统来查找。
对于库存,我们通常会记录并跟踪以下内容,这些内容始终可以从驱动器上的标签中收集:
- 制造商
- 型号
- 序列号
- 大小(以 GB 或 TB 为单位)以及连接类型(SATA 或 SAS)
- 使用位置或不使用时的存放位置
1、2、3年后,当库存表显示任何硬盘时,问题显然就会出现。您非常确定它位于正在运行的服务器中,但您不想关闭服务器来拉出硬盘驱动器来读取标签。
你如何获得序列号与标签上的内容相对应的驱动器的名称?
udevadm info --query=all --name=/dev/sda
有ID_序列号,但那是 WWN。我们不希望另一个字段来跟踪 WWN 的 16 个字符作为标识符...而且我已经讨厌写下 WD 驱动器的长序列号。
Linux下有没有办法提取序列号驱动器的?
我相信这是可能的,因为几年前我们一直使用的 RAID 存储管理器 GUI 很好地报告了正在使用的希捷硬盘的八个字符序列号。该 RAID 硬件列出了一堆“官方支持”的希捷专用硬盘驱动器,如果没记错的话,实际上没有其他品牌/型号的驱动器。
这是否可能与硬盘驱动器固件相关,这意味着它可以在某些品牌驱动器上完成,而不能在其他驱动器上完成?
答案1
假设磁盘支持 SMART,您应该能够使用以下命令检索磁盘序列号smartctl -i /dev/sdX
答案2
您可以通过以下方式获取序列号:
1)hdparm
:
hdparm -I /dev/sda | grep Serial
2)sginfo
是一部分sg3-utils
包裹:
sginfo -a /dev/sda | grep Serial
3)sdparm
命令:
sdparm -i /dev/sda | grep 'vendor specific'
4)lshw
:
lshw -class disk -class storage | grep serial
答案3
我现在只有 WD 硬盘可供检查,但udevadm info --query=all
同时显示ID_SERIAL
/ ID_SERIAL_SHORT
(类似于WD-WMATV6212345
和ID_WWN
( 0x50014ee051234567
)。第一个不是您要找的吗?
smartctl -i
也显示两者,hdparm -i
仅显示连续剧。
答案4
lshw 程序显示它,至少有 html 输出
sudo lshw -C disk -html > /some/place/hw.html
我的一个磁盘的硬件相关部分 -
id: disk
description: ATA Disk
product: ST32000542AS
vendor: Seagate
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: CC34
serial: 5XW2PB56
size: 1863GiB (2TB)
capabilities: partitioned partitioned:dos
configuration:
ansiversion = 5
logicalsectorsize = 512
sectorsize = 512
signature = d46cf327