Numero di serie del disco rigido dal terminale?


66

Ho diversi hard disk che si collegano al mio server e non sono sicuro di quale sia ciò che considera sdXY. Se riesco a vedere i numeri di serie dei miei hard disk dal terminale, posso facilmente identificarli.

Esiste un modo per vederli dal terminale?

Risposte:


59

Un'altra soluzione che non richiede i privilegi di root:

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

Questa è in realtà la libreria che lsblk, menzionata da don_crissti, sfrutta, ma la mia versione di lsblk non include l'opzione per seriale.


2
La migliore soluzione se il tuo disco rigido è completamente morto. Altri metodi non funzionano.
niieani,

1
grep ID_SCSI_SERIALpotrebbe essere ciò che effettivamente fornisce il numero di serie dell'unità, al contrario del nome mondiale (wwn) riportato sotto ID_SERIAL.
Ron,

@ron Interessante! Hai qualche riferimento che definisce wwn?
Johann,

l'unico riferimento è la mia esperienza di prima mano con i dischi rigidi WD, Seagate, HGST confrontando i valori sul terminale con ciò che è scritto sull'etichetta. I dischi rigidi sono principalmente di livello enterprise / data center rispetto al desktop consumer.
Ron,

1
@ron Ho appena provato di nuovo. La mia versione di udevadm (systemd 229) riporta un campo ID_WWN. Per le unità nel mio sistema, non c'è ID_SCSI_SERIALnemmeno niente di simile (no 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

51

Nel tipo di terminale:

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

EDIT: puoi anche usare lshwosmartctl

  • lshw

    # lshw -class disk

  • smartctl

    # smartctl -i /dev/sda

Se mancano quegli strumenti, basta installare i seguenti pacchetti

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

Grazie per la risposta, l'ho testato. Ma non sta dando lo dev / sdXX. Si prega di provare a risolverlo. a meno che non
vada

se togli la parte 'grep', otterrai le informazioni complete come inhdparm -I /dev/sd?
Loopo

3
Non funziona se il disco rigido è completamente morto e stai cercando il numero di serie dell'unità difettosa. Usa invece il metodo di @ Johann.
niieani,

Ho dovuto installare il hdparmpacchetto (appropriatamente chiamato) su ARM (Raspbian su Raspberry Pi).
Cavo Ethernet

Utilizzare hdparm -I /dev/sd? | grep --before-context=4 'Serial\ Number'per correlare il numero seriale con il dispositivo. Sembra che la domanda originale richieda quel risultato.
s.co.tt,

31

Nome dispositivo 1 e numero seriale corrispondente:

lsblk --nodeps -o name,serial

produzione:

NAME SERIAL
sda  0000000012400917BA30
sdb  0000000012400917BA96

aggiungere -nse non si desidera stampare la riga di intestazione:

lsblk --nodeps -no name,serial

produzione:

sda  0000000012400917BA30
sdb  0000000012400917BA96

Passa devicecome argomento per ottenere solo il numero seriale di un dispositivo specifico:

lsblk --nodeps -no serial /dev/sda

produzione:

0000000012400917BA30

Tenere presente che lsblk elenca le informazioni su tutti i dispositivi a blocchi disponibili (o specificati) . Ora, per coloro che non sanno cosa significhi l'ultimo termine:
in generale, i dispositivi a blocchi sono dispositivi che archiviano o conservano dati. Le unità a dischetti, i dischi rigidi e le unità CD-ROM sono tutti dispositivi a blocchi. Ma questo non è un problema quando si utilizza in lsblkquanto è possibile semplicemente aggiungere più colonne, ad esempio type(tipo di dispositivo) e / o tran(tipo di trasporto del dispositivo) ecc:

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

10
Si noti che ciò sembra richiedere lsblkdalla versione 2.24 o successiva di util-linux: github.com/karelzak/util-linux/commit/…
Johann,

Come recuperare seriale del disco rigido quando utilizzo un Ubuntu VM? I comandi sopra riportati non restituiscono nulla su questa situazione
Benyamin Jafari il

11

Usando hdparm puoi vedere il tuo numero di serie del disco rigido dal terminale.

Apri il tuo terminale e digita come

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

Bene, ma devi essere un superutente per usare l' -Iopzione in hdparm. Nemmeno io lo vorrei e preferirei un modo per leggere il ser # senza i permessi di root. Questo è il motivo per cui ho votato esclusivamente alla soluzione di don_crissti. - syntaxerror 57 secondi fa
syntaxerror

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

Questo ti mostrerà il numero seriale rispetto al nome del disco familiare.


Questo è un approccio intelligente ma non funziona sulla mia scatola virtuale. Sembra che i contenuti della by-iddirectory siano solo collegamenti simbolici, quindi ls -al /dev/disk/by-id/ti mostreranno comunque ciò di cui hai bisogno.
Wildcard il

1
Questo ha funzionato anche per me su un sistema di avvio live debian, mentre tutti gli altri strumenti non sono disponibili da zero, senza configurare Internet e ottenerli.
hoijui,

3

Il modo più semplice che conosco (non richiede root):

inxi -Dplxx

Ciò genera tutti i dischi, i loro periodici e tutte le informazioni extra. -p aggiunge le partizioni. -l aggiunge etichette. -u aggiunge UUID per le partizioni.

Inoltre è molto più facile da ricordare, eh.

Campione:

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

Si noti che questo filtra le unità ottiche. Per vedere i dati ottici:

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

Nota che sul mio sistema Debian, lsblk non mostra nulla per i serial, sia come root che come utente. Ecco perché inxi utilizza un metodo molto più affidabile per ottenere quei dati.

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

lsblk --version
lsblk from util-linux 2.25.2

Come puoi vedere, a lsblk, pensa che anche un'unità ottica e un'unità floppy siano dischi, che in un certo senso sono, anche se non proprio, dal momento che non diventano dischi finché non viene inserito un disco. E non mostra nulla per il seriale, inoltre non mostra nulla per altri valori, come l'etichetta. Sicuramente un bug poiché questi dati sono disponibili per il sistema, ecco dove li riceve inxi, direttamente.


2
L'ultima parte del tuo post è sbagliata, lsblknon pensa che siano dischi, elenca semplicemente tutti i dispositivi a blocchi . Vedi il mio post aggiornato per un chiarimento. Quanto a non mostrare informazioni - questo perché stai usando debian che è noto per il loro lsblkcomportamento. Funziona perfettamente su archlinux, quindi sicuramente non è un bug . Inoltre, inxiè solo uno script bash che utilizza altri comandi per ottenere tali informazioni; non ottiene nulla "direttamente".
don_crissti,

Tecnicamente corretto, ma nel regno del linguaggio normale, i dischi sono un modo decente per comunicare questo concetto. Ovviamente un errore non è un bug, è irrilevante quale sia la causa, quindi il tuo commento che un buggy lsblk non è un bug non ha praticamente senso. Se il bug è stato creato o meno da Debian non cambia il fatto che si tratta di un bug. Direttamente significa senza mediazione, vale a dire, dal file system, che è dove inxi ottiene informazioni seriali. Una risposta dovrebbe riflettere il panorama generale di gnu / linux, quindi dire ad esempio che lsblk funziona tranne che in debian / buntu non ha alcun valore poiché la maggior parte degli utenti vedrà che non funziona.
Lizardx,

Questa parte della risposta non è corretta: lsblk, pensa che anche un'unità ottica e un'unità floppy siano dischi . In effetti, lsblk elenca i dispositivi a blocchi (che includono dischi rigidi, SSD, unità disco floppy, unità disco ottico, volumi logici LVM ecc.) E lsblk non distingue tra dischi e non dischi.
punti

Cordiali saluti su Debian buster, lsblk --nodeps -o name,serialvisualizza i numeri di serie, non riesco a riprodurre il bug.
punti

Isblk sta migliorando, ma ci sono ancora alcuni problemi impercettibili, non lo userò ancora come fonte di dati primaria per gli strumenti che creo, ma lo sto usando ora come fonte secondaria, ma abbiamo già riscontrato bug inspiegabili usandolo, lavorando su uno ora.
Lizardx,

1

Mi piace anche usare ls -l /dev/disk/by-idperché mostrerà il WWN di un disco se disponibile. Il WWN è solitamente stampato sull'etichetta del disco, quindi è facile da identificare.

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'}

Questo mostrerà il wwn-idper il disco. Il awkfiltro può essere necessario modificare a seconda della distribuzione del sistema operativo e la versione. Avevo bisogno di una soluzione con script per leggere wwn-id, che è necessaria per la scherma del disco Pacemaker. Se le partizioni ( /dev/sdX1ad es.) Sono già state create, grepè necessario un altro per filtrare l'output:

ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.