Como encontrar o número do modelo da unidade de disco Linux?

8

Eu tenho uma caixa Linux com cinco unidades de disco, uma das quais quero substituir. A unidade ofensiva é /dev/sdc, mas isso não me diz como distinguir o hardware. A unidade é SATA e a atribuição de unidades a dispositivos às vezes muda após uma inicialização.

Eu gostaria de poder usar os nomes dos modelos impressos no disco. Sei que esses nomes são legíveis por máquina porque são os nomes que o BIOS usa.

Existe uma maneira, usando o Linux, de descobrir o número do modelo /dev/sdcou mesmo o número do modelo de todas as unidades no sistema?

Norman Ramsey
fonte

Respostas:

12

Experimente o hdparmprograma:

# hdparm -i /dev/sdc
/dev/sda:

 Model=INTEL SSDSA2CW080G3, FwRev=4PC10362, SerialNo=CVPR112003RA080BGN
...

A -iopção de hdparmpode ser usada para recuperar informações de identificação.

Lekensteyn
fonte
7

Não tenho certeza se está em todas as distros, mas tente pesquisar em / dev / disk / by-id:

$ ls -l /dev/disk/by-id/
razem 0
lrwxrwxrwx 1 root root  9 08-08 14:45 ata-HL-DT-STDVD-RAM_GH22NS30 -> ../../sr0
lrwxrwxrwx 1 root root  9 08-08 14:45 ata-ST31000528AS_9VP8RZQM -> ../../sda
lrwxrwxrwx 1 root root 10 08-08 14:45 ata-ST31000528AS_9VP8RZQM-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 08-08 14:45 ata-ST31000528AS_9VP8RZQM-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 08-11 05:27 ata-ST31000528AS_9VP8RZQM-part6 -> ../../sda6
lrwxrwxrwx 1 root root 10 08-08 14:45 ata-ST31000528AS_9VP8RZQM-part7 -> ../../sda7
lrwxrwxrwx 1 root root  9 08-08 14:45 ata-ST3500630A_9QG9YH73 -> ../../sdb
lrwxrwxrwx 1 root root 10 08-08 14:45 ata-ST3500630A_9QG9YH73-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 08-11 02:56 ata-ST3500630A_9QG9YH73-part2 -> ../../sdb2
lrwxrwxrwx 1 root root 10 08-08 12:45 ata-ST3500630A_9QG9YH73-part3 -> ../../sdb3
lrwxrwxrwx 1 root root 10 08-08 12:45 ata-ST3500630A_9QG9YH73-part5 -> ../../sdb5
lrwxrwxrwx 1 root root  9 08-08 14:45 wwn-0x5000c5002737ee0c -> ../../sda
lrwxrwxrwx 1 root root 10 08-08 14:45 wwn-0x5000c5002737ee0c-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 08-08 14:45 wwn-0x5000c5002737ee0c-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 08-11 05:27 wwn-0x5000c5002737ee0c-part6 -> ../../sda6
lrwxrwxrwx 1 root root 10 08-08 14:45 wwn-0x5000c5002737ee0c-part7 -> ../../sda7

Você também pode tentar grepping dmesg pelo nome do dispositivo:

# dmesg | grep -C3 sda
[2.387103] ata6.00: 1953525168 setores, multi 0: LBA48 NCQ (profundidade 31/32)
[2.388346] ata6.00: configurado para UDMA / 133
[2.388418] scsi 5: 0: 0: 0: ATA de acesso direto ST31000528AS CC38 PQ: 0 ANSI: 5
[2.388611] sd 5: 0: 0: 0: [sda] 1953525168 blocos lógicos de 512 bytes: (1,00 TB / 931 GiB)
[2.388653] sd 5: 0: 0: 0: [sda] A proteção de gravação está desativada
[2.388656] sd 5: 0: 0: 0: [sda] Modo Sense: 00 3a 00 00
[2.388664] sd 5: 0: 0: 0: anexo scsi genérico sg1 tipo 0
[2.388669] sd 5: 0: 0: 0: [sda] Cache de gravação: ativado, cache de leitura: ativado, não suporta DPO ou FUA
[2.448514] sda: sda1 
[2.448985] sd 5: 0: 0: 0: [sda] Disco SCSI conectado
[2.449040] scsi 8: 0: 0: 0: Acesso Direto ATA ST3500630A 3.AA PQ: 0 ANSI: 5
[2.449189] sd 8: 0: 0: 0: [sdb] 976771055 Blocos lógicos de 512 bytes: (500 GB / 465 GiB)
[2.449225] sd 8: 0: 0: 0: [sdb] A proteção contra gravação está desativada
-

Nesse caso, é ST31000528AS.

user697683
fonte
Surpreendente! Não são necessários utilitários externos. Uma verdadeira solução.
darnir
6

tente executar:

$ sudo lshw

Ele fornecerá uma saída longa em relação ao seu hardware, a que diz respeito a você será semelhante a esta:

 *-scsi:0
          physical id: 0
          logical name: scsi0
          capabilities: emulated
        *-disk
             description: ATA Disk
             product: WDC WD3200BEVT-7
             vendor: Western Digital
             physical id: 0.0.0
             bus info: scsi@0:0.0.0
             logical name: /dev/sda
             version: 01.0
             serial: WD-WX81A30C3330
             size: 298GiB (320GB)
             capabilities: partitioned partitioned:dos
             configuration: ansiversion=5 sectorsize=512 signature=9f7685a8
           *-volume:0
                description: Linux filesystem partition
                vendor: Linux
                physical id: 1
                bus info: scsi@0:0.0.0,1
                logical name: /dev/sda1
                logical name: /boot
                version: 1.0
                serial: aa84c5a8-6408-4952-b577-578f2a67af86
                size: 141MiB
                capacity: 141MiB
                capabilities: primary extended_attributes ext2 initialized
                configuration: filesystem=ext2 label=boot lastmountpoint=/boot modified=2012-08-11 17:03:06 mount.fstype=ext2 mount.options=rw,relatime mounted=2012-08-11 12:25:38 state=mounted

Observe que ele menciona a identificação do seu dispositivo de bloco como logical namee também o número de série como product. Você pode usar isso para distinguir fisicamente suas unidades

darnir
fonte
Parece útil, mas lshwnão está realmente instalado no meu sistema.
Norman Ramsey
OK. Uso o lshw para obter todas as informações necessárias sobre o hardware de qualquer sistema. Muito conveniente.
darnir
Este método funcionou bem em um caso em que hdparme dmesgnão forneceu as informações. (WD My Passport disco no Debian Jessie.)
Diomidis Spinellis
Eu prefiro a -htmlopção de lshw- ou seja, lshw -html, redirecioná-lo para um arquivo, e de que maneira você pode olhar para ele em um navegador (com funções de pesquisa, etc.)
ivanivan
3

Se você lsblkinstalou no seu sistema, você pode usar este comando:

lsblk -o MODEL,SERIAL,SIZE,STATE --nodeps

Isso retornará uma exibição colunar como a mostrada abaixo com o número do modelo, número de série do fabricante, tamanho do disco e estado. Ele pode ser script para permitir o acesso a máquinas remotas também. Você deve ser root para usá-lo, no entanto.

MODEL            SERIAL         SIZE STATE
FUJITSU MHZ2320B K618T913BPHU 298.1G running
External         W3PEEC6T     465.8G running
DVDRW  DR-TD08HB               1024M running
Homem cinzento
fonte
Você não precisa de privilégios de root para isso. Eu acho que é crucial adicionar a opção "NAME", assim:, lsblk -o NAME,MODEL,SERIAL,SIZE,STATE --nodepspara que você saiba se esse FUJITSU é sdaou sdb. Estamos perguntando "qual unidade é o que", não "quais unidades eu tenho".
styrofoam fly