¿Número de serie del disco duro desde la terminal?


66

Tengo varios discos duros que se conectan a mi servidor y no estoy seguro de cuál es el que, en opinión de sdXY. Si puedo ver los números de serie de mis discos duros desde la terminal, puedo identificarlos fácilmente.

¿Hay alguna manera de verlos desde la terminal?

Respuestas:


59

Otra solución que no requiere privilegios de root:

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

Esta es en realidad la biblioteca que lsblk, mencionada por don_crissti, aprovecha, pero mi versión de lsblk no incluye la opción de serie.


2
La mejor solución si su disco duro ha muerto por completo. Otros métodos no funcionan.
niieani

1
grep ID_SCSI_SERIALpuede ser lo que realmente da el número de serie de la unidad, a diferencia del nombre mundial (wwn) que se informa en ID_SERIAL.
ron

@ron ¡Interesante! ¿Tienes alguna referencia que defina wwn?
Johann

La única referencia es mi experiencia de primera mano con los discos duros WD, Seagate, HGST que comparan valores en el terminal con lo que está escrito en la etiqueta. Los discos duros son principalmente de grado empresarial / centro de datos versus escritorio de consumidor.
ron

1
@ron Acabo de probar esto de nuevo. Mi versión de udevadm (systemd 229) informa un campo ID_WWN. Para las unidades en mi sistema, tampoco hay ID_SCSI_SERIALni nada análogo (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

En tipo de terminal:

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

EDITAR: también puedes usar lshwosmartctl

  • lshw

    # lshw -class disk

  • smartctl

    # smartctl -i /dev/sda

Si le faltan esas herramientas, simplemente instale los siguientes paquetes

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

Gracias por la respuesta lo he probado. Pero no está dando el dev / sdXX. Intenta arreglarlo. a menos que sea bueno
rɑːdʒɑ

si usted saca la parte 'grep', obtendrá la información completa como enhdparm -I /dev/sd?
Loopo

3
No funciona si su disco duro ha muerto por completo y está buscando el número de serie de la unidad defectuosa. Utilice el método de @ Johann en su lugar.
niieani

Tuve que instalar el hdparmpaquete (acertadamente nombrado) en ARM (Raspbian en Raspberry Pi).
EthernetCable

Use hdparm -I /dev/sd? | grep --before-context=4 'Serial\ Number'para correlacionar el número de serie con el dispositivo. Parece que la pregunta original solicita ese resultado.
s.co.tt

31

Nombre del dispositivo 1 y número de serie correspondiente:

lsblk --nodeps -o name,serial

salida:

NAME SERIAL
sda  0000000012400917BA30
sdb  0000000012400917BA96

agregue -nsi no desea imprimir la línea del encabezado:

lsblk --nodeps -no name,serial

salida:

sda  0000000012400917BA30
sdb  0000000012400917BA96

Pase devicecomo argumento para obtener solo el número de serie de un dispositivo específico:

lsblk --nodeps -no serial /dev/sda

salida:

0000000012400917BA30

Tenga en cuenta las lsblk listas de información sobre todos los dispositivos de bloque disponibles (o los especificados) . Ahora, para aquellos que no saben lo que significa el último término:
en general, los dispositivos de bloque son dispositivos que almacenan o almacenan datos. Las unidades de disquete, los discos duros y las unidades de CD-ROM son todos dispositivos de bloque. Pero eso no es un problema cuando se usa, lsblkya que simplemente puede agregar más columnas, por ejemplo type(tipo de dispositivo) y / o tran(tipo de transporte del dispositivo), etc.

lsblk --nodeps -no name, serial, type, tran
sda  0000000012400917BA30     disk sata
sdb  0000000012400917BA96     disk sata
sr0  4B583242334C453233353320 rom  usb

10
Tenga en cuenta que esto parece requerir lsblkde la versión 2.24 de util-linux o superior: github.com/karelzak/util-linux/commit/…
Johann

¿Cómo recuperar el disco duro en serie cuando uso una máquina virtual ubuntu? Los comandos anteriores no devuelven nada en esta situación
Benyamin Jafari

11

Al usar hdparm puede ver su número de serie del disco duro desde el terminal.

Abra su terminal y escriba como

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

Bueno, pero debes ser superusuario para usar la -Iopción hdparm. Tampoco querría eso y preferiría una forma de leer el número de serie sin permisos de root. Es por eso que he votado solo por la solución de don_crissti. - syntaxerror hace 57 segundos
syntaxerror 19/03/2015

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

Esto le mostrará el número de serie contra el nombre del disco familiar.


Este es un enfoque inteligente pero no funciona en mi caja virtual. Parece que el contenido del by-iddirectorio son solo enlaces simbólicos, por lo que ls -al /dev/disk/by-id/le mostrará lo que necesita de todos modos.
Comodín el

1
Esto también funcionó para mí en un sistema de arranque en vivo de Debian, mientras que todas las otras herramientas no están disponibles desde cero, sin configurar Internet y obtenerlas.
hoijui

3

La forma más fácil que sé (no requiere root):

inxi -Dplxx

Eso genera todos los discos, sus publicaciones seriadas y cualquier información adicional. -p agrega particiones. -l agrega etiquetas. -u agrega UUID para las particiones.

Además, es mucho más fácil de recordar, je.

Muestra:

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

Tenga en cuenta que esto filtra las unidades ópticas. Para ver datos ó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

Tenga en cuenta que en mi sistema Debian, lsblk no muestra nada para las publicaciones seriadas, ya sea como root o como usuario. Es por eso que inxi usa un método mucho más confiable para obtener esos datos.

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

lsblk --version
lsblk from util-linux 2.25.2

Como puede ver, para lsblk, cree que una unidad óptica y una unidad de disquete también son discos, que en cierto sentido lo son, aunque en realidad no lo son, ya que no se convierten en discos hasta que se inserta un disco. Y no muestra nada para el serial, tampoco muestra nada para otros valores, como la etiqueta. Definitivamente un error ya que estos datos están disponibles para el sistema, ahí es donde inxi lo obtiene, directamente.


2
La última parte de tu publicación es incorrecta, lsblkno cree que sean discos, simplemente enumera todos los dispositivos de bloque . Vea mi publicación actualizada para una aclaración. En cuanto a no mostrar información, esto se debe a que está utilizando Debian, que es notorio para su lsblkcomportamiento. Funciona absolutamente bien en archlinux, así que definitivamente no es un error . Además, inxies solo un script bash que usa otros comandos para obtener esa información; no recibe nada "directamente".
don_crissti

Técnicamente correcto, pero en el ámbito del habla normal, los discos son una forma decente de comunicar este concepto. Una falla en el comportamiento es, por supuesto, un error, es irrelevante lo que causa, por lo que su comentario de que un buggy lsblk no es un error básicamente no tiene sentido. Si el error es creado por Debian o no, no altera el hecho de que es un error. Directamente significa sin mediación, es decir, desde el sistema de archivos, que es donde inxi obtiene información en serie. Una respuesta debe reflejar el panorama general de gnu / linux, por lo que decir por ejemplo que lsblk funciona, excepto en debian / buntu, no tiene ningún valor, ya que la mayoría de los usuarios verán que no funciona.
Lizardx

Esta parte de la respuesta es incorrecta: lsblk, cree que una unidad óptica y una unidad de disquete también son discos . De hecho, lsblk enumera los dispositivos de bloque (que incluyen discos duros, SSD, unidades de disquete, unidades de disco óptico, volúmenes lógicos LVM, etc.), y lsblk no distingue entre discos y no discos.
pts

FYI en Debian buster, lsblk --nodeps -o name,serialmuestra los números de serie, no puedo reproducir el error.
pts

lsblk está mejorando, pero todavía hay algunos problemas sutiles, todavía no voy a usarlo como fuente de datos primaria para las herramientas que hago, pero lo estoy usando ahora como fuente secundaria, pero ya hemos encontrado errores inexplicables usándolo, trabajando en uno ahora.
Lizardx

1

También me gusta usar ls -l /dev/disk/by-idporque mostrará el WWN de un disco si está disponible. El WWN generalmente está impreso en la etiqueta del disco, por lo que es 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'}

Esto mostrará el wwn-idpara el disco. Es awkposible que sea necesario ajustar el filtro según la distribución y la versión del sistema operativo. Necesitaba una solución con script para leer el wwn-id, que es necesario para el cercado de disco de Pacemaker. Si /dev/sdX1ya se han creado particiones ( por ejemplo), grepse necesita otra para filtrar la salida:

ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.