Risposte:
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.
grep ID_SCSI_SERIAL
potrebbe essere ciò che effettivamente fornisce il numero di serie dell'unità, al contrario del nome mondiale (wwn) riportato sotto ID_SERIAL
.
ID_SCSI_SERIAL
nemmeno 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
Nel tipo di terminale:
# hdparm -I /dev/sd? | grep 'Serial\ Number'
EDIT: puoi anche usare lshw
osmartctl
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
hdparm -I /dev/sd?
hdparm
pacchetto (appropriatamente chiamato) su ARM (Raspbian su Raspberry Pi).
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.
Nome dispositivo 1 e numero seriale corrispondente:
lsblk --nodeps -o name,serial
produzione:
NAME SERIAL
sda 0000000012400917BA30
sdb 0000000012400917BA96
aggiungere -n
se non si desidera stampare la riga di intestazione:
lsblk --nodeps -no name,serial
produzione:
sda 0000000012400917BA30
sdb 0000000012400917BA96
Passa device
come 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 lsblk
quanto è 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
lsblk
dalla versione 2.24 o successiva di util-linux: github.com/karelzak/util-linux/commit/…
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"
-I
opzione 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
$ ls -al /dev/disk/by-id/*sda*
Questo ti mostrerà il numero seriale rispetto al nome del disco familiare.
by-id
directory siano solo collegamenti simbolici, quindi ls -al /dev/disk/by-id/
ti mostreranno comunque ciò di cui hai bisogno.
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.
lsblk
non 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 lsblk
comportamento. 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".
lsblk --nodeps -o name,serial
visualizza i numeri di serie, non riesco a riprodurre il bug.
Mi piace anche usare ls -l /dev/disk/by-id
perché 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
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | awk '{print $9'}
Questo mostrerà il wwn-id
per il disco. Il awk
filtro 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/sdX1
ad 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'}