Respostas:
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.
grep ID_SCSI_SERIAL
pode ser o que realmente fornece o número de série da unidade, em oposição ao nome mundial (wwn) relatado em ID_SERIAL
.
ID_SCSI_SERIAL
nem 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
No tipo de terminal:
# hdparm -I /dev/sd? | grep 'Serial\ Number'
EDIT: Você também pode usar lshw
ousmartctl
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
hdparm -I /dev/sd?
hdparm
pacote (apropriadamente chamado) no ARM (Raspbian no Raspberry Pi).
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.
Nome do dispositivo 1 e número de série correspondente:
lsblk --nodeps -o name,serial
resultado:
NAME SERIAL
sda 0000000012400917BA30
sdb 0000000012400917BA96
adicione -n
se você não quiser imprimir a linha do cabeçalho:
lsblk --nodeps -no name,serial
resultado:
sda 0000000012400917BA30
sdb 0000000012400917BA96
Passe device
como 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, lsblk
pois 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
lsblk
do util-linux versão 2.24 ou superior: github.com/karelzak/util-linux/commit/…
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"
-I
opçã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
$ ls -al /dev/disk/by-id/*sda*
Isso mostrará o número de série do nome do disco familiar.
by-id
diretório é apenas um link simbólico, então ls -al /dev/disk/by-id/
mostrará o que você precisa de qualquer maneira.
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.
lsblk
nã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 lsblk
comportamento 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".
lsblk --nodeps -o name,serial
exibe os números de série, não consigo reproduzir o bug.
Eu também gosto de usar, ls -l /dev/disk/by-id
porque 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
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | awk '{print $9'}
Isso mostrará o wwn-id
para o disco. O awk
filtro 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/sdX1
por 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'}