Obtendo o número de série da unidade de disco rígido no terminal - não o WWN [duplicado]

4

WWN = nome mundial

Seagate Constellation ES, modelo ST3500514NS, uma unidade SATA de 3,5 GB e 500 GB

Tem "número de série", 9WJxxxxx que tem oito caracteres. Tem WWN 5000C5002E47xxxx que é um 16 caracteres. Ambos estão impressos na etiqueta na unidade de disco rígido.

Modelo WD WD4001FFSX, um disco SATA de 4 TB

Tem "número de série" WMC5D0Dxxxxx que tem 12 caracteres. Tem WWN 50014EE003Fxxxxx que tem 16 caracteres.

HGST, modelo HUC109060CSS600, uma unidade SAS de 2,5 "e 300 GB

Tem "número de série" KWJTxxx, também oito caracteres. Tem o WWN ... eu não sei; não está impresso na etiqueta e não está ligado ao sistema para descobrir.

Para o inventário, geralmente anotamos e rastreamos o seguinte, que sempre pode ser obtido do rótulo na unidade:

  • Fabricante
  • Número do modelo
  • Número de série
  • Tamanho em GB ou TB e tipo de conexão que é SATA ou SAS
  • Localização onde está em uso ou em armazenamento quando não está em uso

O problema surge obviamente 1, 2, 3 anos depois, quando uma folha de inventário mostra qualquer disco rígido. Você tem certeza de que está em um servidor em execução, mas não quer desligar o servidor para puxar o disco rígido para ler o rótulo.

Como você obtém o número de série da unidade que corresponde ao que está no rótulo?

udevadm info --query=all --name=/dev/sda tem ID_SERIAL , mas esse é o WWN. Nós não queremos outro campo para rastrear os 16 caracteres do WWN como um identificador ... E eu já odeio escrever os longos números de série dos discos WD.

Existe uma maneira no Linux de extrair o número de série da unidade?

Acredito que seja possível porque, anos atrás, a GUI do gerenciador de armazenamento RAID que estávamos usando relatou bem os números de série de oito caracteres dos discos da Seagate que estavam em uso. E esse hardware RAID listou um monte de unidades de disco rígido específicas da Seagate que eram "oficialmente suportadas" e, se a memória servir, realmente não há outra marca / modelo de unidades.

É possível que isso esteja relacionado ao firmware da unidade de disco rígido, o que significa que pode ser feito em determinadas unidades de produção e não em outras?

    
por ron 11.05.2017 / 18:10

4 respostas

14

Supondo que o disco suporte SMART, você deve conseguir recuperar o número de série do disco usando smartctl -i /dev/sdX

    
por 11.05.2017 / 18:24
8

Você pode obter o número de série por meio de:

1) hdparm :

hdparm -I /dev/sda | grep Serial

2) sginfo é uma parte de sg3-utils pacote:

sginfo -a /dev/sda | grep Serial

3) sdparm comando:

sdparm -i /dev/sda | grep 'vendor specific'

4) lshw :

lshw -class disk -class storage | grep serial
    
por 11.05.2017 / 22:00
6

Eu só tenho unidades WD para verificar agora, mas udevadm info --query=all mostra ID_SERIAL / ID_SERIAL_SHORT (algo como WD-WMATV6212345 e ID_WWN ( 0x50014ee051234567 ). Não é o primeiro o que você está procurando?

smartctl -i também mostra ambos, hdparm -i apenas o serial.

    
por 11.05.2017 / 18:43
4

O programa lshw mostra, pelo menos com saída html

sudo lshw -html > /some/place/hw.html

A seção relevante no meu hardware para um dos meus discos -

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
    
por 11.05.2017 / 21:23