Número de série do disco rígido do terminal?


66

Eu tenho vários discos rígidos que são conectados ao meu servidor e não tenho certeza de qual é o que, na visão do sdXY. Se eu puder ver os números de série dos meus discos rígidos no terminal, posso identificá-los facilmente.

Existe alguma maneira de vê-los no terminal?

Respostas:


58

Outra solução que não requer privilégios de root:

udevadm info --query=all --name=/dev/sda | grep ID_SERIAL

Esta é realmente a biblioteca que lsblk, mencionada por don_crissti, aproveita, mas minha versão do lsblk não inclui a opção serial.


2
Melhor solução se o seu disco rígido morreu completamente. Outros métodos não funcionam.
— Niieani 30/03/16

11
grep ID_SCSI_SERIALpode ser o que realmente fornece o número de série da unidade, em oposição ao nome mundial (wwn) relatado em ID_SERIAL.
— ron

@ron Interessante! Você tem alguma referência que define o wwn?
— Johann

A única referência é minha experiência em primeira mão com discos rígidos WD, Seagate e HGST, comparando valores no terminal com o que está escrito na etiqueta. Os discos rígidos são principalmente de nível empresarial / data center versus desktop de consumidor.
— ron

11
@ron Acabei de testar isso novamente. Minha versão do udevadm (systemd 229) relata um campo ID_WWN. Para as unidades no meu sistema, também não há ID_SCSI_SERIALnem coisa semelhante (não ID_ATA_SERIAL): E: ID_SERIAL=TOSHIBA-TR150_23SC51E8J2BI ... E: ID_SERIAL_SHORT=23SC51E8J2BI ... E: ID_WWN=0x5e83a97200463ff3 ... E: ID_WWN_WITH_EXTENSION=0x5e83a97200463ff3
— Johann

50

No tipo de terminal:

# hdparm -I /dev/sd? | grep 'Serial\ Number'

EDIT: Você também pode usar lshwousmartctl

  • lshw

    # lshw -class disk

  • smartctl

    # smartctl -i /dev/sda

Se estiver faltando essas ferramentas, basta instalar os seguintes pacotes

# apt-get install hdparm
# apt-get install smartmontools
# apt-get install lshw

Obrigado pela resposta que eu testei. Mas não está dando o dev / sdXX. Por favor, tente consertá-lo. a não ser que seja bom #
— 31714

se você tirar a parte 'grep', você vai obter a informação completa como emhdparm -I /dev/sd?
— Loopo

3
Não funciona se o seu disco rígido morreu completamente e você está procurando o número de série da unidade com defeito. Use o método de @ Johann.
— Niieani 30/03/16

Eu tive que instalar o hdparmpacote (apropriadamente chamado) no ARM (Raspbian no Raspberry Pi).
— EthernetCable

Use hdparm -I /dev/sd? | grep --before-context=4 'Serial\ Number'para correlacionar o número de série com o dispositivo. Parece que a pergunta original solicita esse resultado.
— s.co.tt

31

Nome do dispositivo 1 e número de série correspondente:

lsblk --nodeps -o name,serial

resultado:

NAME SERIAL
sda  0000000012400917BA30
sdb  0000000012400917BA96

adicione -nse você não quiser imprimir a linha do cabeçalho:

lsblk --nodeps -no name,serial

resultado:

sda  0000000012400917BA30
sdb  0000000012400917BA96

Passe devicecomo argumento para obter apenas o número de série de um dispositivo específico:

lsblk --nodeps -no serial /dev/sda

resultado:

0000000012400917BA30

Lembre-se de lsblk listar informações sobre todos os dispositivos de bloco disponíveis (ou os especificados) . Agora, para aqueles que não sabem o que esse último termo significa:
Em geral, dispositivos de bloco são dispositivos que armazenam ou mantêm dados. Unidades de disquete, unidades de disco rígido e unidades de CD-ROM são todos dispositivos de bloco. Mas isso não é um problema ao usar, lsblkpois você pode simplesmente adicionar mais colunas, por exemplo type(tipo de dispositivo) e / ou tran(tipo de transporte de dispositivo) etc:

lsblk --nodeps -sem nome, serial, tipo, tran
sda  0000000012400917BA30     disk sata
sdb  0000000012400917BA96     disk sata
sr0  4B583242334C453233353320 rom  usb

10
Observe que isso parece exigir lsblkdo util-linux versão 2.24 ou superior: github.com/karelzak/util-linux/commit/…
— Johann

Como recuperar serial do disco rígido quando uso uma VM ubuntu? Os comandos acima não retornam nada a esta situação
— Benyamin Jafari

11

Ao usar, hdparm você pode ver o número de série do Harddisk no terminal.

Abra seu terminal e digite como

 hdparm -I /dev/sd?|grep -E "Number|/dev"

Bem, mas você precisa ser superusuário para usar a -Iopção hdparm. Eu também não gostaria disso e prefiro uma maneira de ler o número do servidor sem permissões de root. É por isso que votei apenas na solução de don_crissti. - syntaxerror 57 secs atrás
— syntaxerror

9
$ ls -al /dev/disk/by-id/*sda*

Isso mostrará o número de série do nome do disco familiar.


Essa é uma abordagem inteligente, mas não funciona na minha caixa virtual. Parece que o conteúdo do by-iddiretório é apenas um link simbólico, então ls -al /dev/disk/by-id/mostrará o que você precisa de qualquer maneira.
— Curinga

11
Isso também funcionou para mim em um sistema de inicialização ao vivo da debian, enquanto todas as outras ferramentas não estão disponíveis do zero, sem configurar a Internet e obtê-las.
— hoijui

3

Maneira mais fácil que eu conheço (não requer raiz):

inxi -Dplxx

Isso gera todos os discos, seus folhetins e qualquer informação extra. -p adiciona partições. -l adiciona rótulos. -u adiciona UUID para as partições.

Além disso, é muito mais fácil lembrar, heh.

Amostra:

inxi -Dxx
Drives:    HDD Total Size: 810.2GB (42.9% used)
           ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6
           ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926
           ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE
           ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX

Observe que isso filtra as unidades ópticas. Para ver dados ópticos:

inxi -Dxxd 
Drives:    HDD Total Size: 810.2GB (42.9% used)
           ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6
           ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926
           ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE
           ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX
           Optical-1: /dev/sr0 model: LITE-ON DVDRW SOHW-1693S
           rev: KS09 dev-links: dvd,dvdrw
           Features: speed: 48x multisession: yes
           audio: yes dvd: yes rw: cd-r,cd-rw,dvd-r state: running
           Optical-2: /dev/sr1 model: LITE-ON LTR-52327S rev: QS0C dev-links: cdrom,cdrw
           Features: speed: 52x multisession: yes
           audio: yes dvd: no rw: cd-r,cd-rw state: running

Note que no meu sistema Debian, o lsblk não mostra nada para seriais, seja como root ou usuário. É por isso que a inxi usa um método muito mais confiável para obter esses dados.

lsblk --nodeps -o name,serial
NAME SERIAL
fd0  
sda  
sdb  
sdc  
sdd  
sr0  
sr1  

lsblk --version
lsblk from util-linux 2.25.2

Como você pode ver, para o lsblk, ele pensa que uma unidade óptica e uma unidade de disquete também são discos, o que, em certo sentido, são, embora não sejam realmente, uma vez que não se tornam discos até que um disco seja inserido. E não mostra nada para serial, também não mostra nada para outros valores, como label. Definitivamente um bug, já que esses dados estão disponíveis para o sistema, é onde a inxi os obtém, diretamente.


2
A última parte da sua postagem está errada, lsblknão acredita que sejam discos, ela simplesmente lista todos os dispositivos de bloco . Veja minha postagem atualizada para um esclarecimento. Quanto a não mostrar informações - é porque você está usando o debian, que é notório pelo lsblkcomportamento deles . Funciona absolutamente bem no archlinux, então definitivamente não é um bug . Além disso, inxié apenas um script bash que usa outros comandos para obter essas informações; não recebe nada "diretamente".
— 31515 Don

Tecnicamente correto, mas no domínio da fala normal, os discos são uma maneira decente de comunicar esse conceito. É claro que uma falha de comportamento é um bug, é irrelevante o que causa, portanto, seu comentário de que um bsbk lsblk não é um bug basicamente não faz sentido. Se o bug foi criado ou não pelo debian não altera o fato de que é um bug. Diretamente significa sem mediação, ou seja, a partir do sistema de arquivos, onde o inxi obtém informações seriais. Uma resposta deve refletir o cenário geral do gnu / linux, dizendo que, por exemplo, o lsblk funciona, exceto no debian / buntu, não tem valor, já que a maioria dos usuários verá que ele não funciona.
— Lizardx

Esta parte da resposta está incorreta: lsblk, considera que uma unidade óptica e uma unidade de disquete também são discos . De fato, o lsblk lista os dispositivos de bloco (que incluem discos rígidos, SSDs, unidades de disquete, unidades de disco óptico, volumes lógicos LVM etc.) e o lsblk não faz distinção entre discos e não discos.
— pts

FYI no Debian buster, lsblk --nodeps -o name,serialexibe os números de série, não consigo reproduzir o bug.
— pts

O lsblk está melhorando, mas ainda existem alguns problemas sutis, ainda não vou usá-lo como fonte de dados primária para as ferramentas que faço, mas agora o uso como fonte secundária, mas já encontramos bugs inexplicáveis usá-lo, trabalhando em um agora.
— Lizardx

1

Eu também gosto de usar, ls -l /dev/disk/by-idporque mostrará o WWN de um disco, se disponível. O WWN geralmente é impresso na etiqueta do disco, por isso é fácil de identificar.

root@server (16:27:58):~# ls -l /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root  9 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N -> ../../sda
lrwxrwxrwx 1 root root 10 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N-part2 -> ../../sda2
...
lrwxrwxrwx 1 root root  9 Dec 20 01:51 wwn-0x50014ee25ffd0a5c -> ../../sdc
lrwxrwxrwx 1 root root  9 Dec 20 01:51 wwn-0x50014ee2b554c0b4 -> ../../sdb
lrwxrwxrwx 1 root root  9 Dec 20 01:51 wwn-0x5002538d427700f0 -> ../../sda

1
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | awk '{print $9'}

Isso mostrará o wwn-idpara o disco. O awkfiltro pode precisar ser ajustado, dependendo da distribuição e versão do SO. Eu precisava de uma solução com script para ler o arquivo wwn-id, o que é necessário para cercar o disco Pacemaker. Se as partições ( /dev/sdX1por exemplo) já foram criadas, outra grepé necessária para filtrar a saída:

ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.