Como correlato dispositivos / dev / sd ao hardware que eles representam?

34

Uma unidade está começando a falhar e eu só conheço o dispositivo por sua designação de arquivo de dispositivo /dev/sdb . Quais são as maneiras que eu posso usar para correlacionar esse arquivo de dispositivo para um dispositivo de hardware real para saber qual unidade para substituir fisicamente?

Bonus: E se eu não tenho /dev/disk/ e seus sub-diretórios nesta instalação? (Que, infelizmente, eu não)

    
por Wesley 08.06.2012 / 23:02

7 respostas

20

Você pode procurar em /sys/block :

-bash-3.2$ ls -ld /sys/block/sd*/device
lrwxrwxrwx 1 root root 0 Jun  8 21:09 /sys/block/sda/device -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0
lrwxrwxrwx 1 root root 0 Jun  8 21:10 /sys/block/sdb/device -> ../../devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0
lrwxrwxrwx 1 root root 0 Jun  8 21:10 /sys/block/sdc/device -> ../../devices/pci0000:00/0000:00:1f.2/host2/target2:0:0/2:0:0:0
lrwxrwxrwx 1 root root 0 Jun  8 21:10 /sys/block/sdd/device -> ../../devices/pci0000:00/0000:00:1f.2/host3/target3:0:0/3:0:0:0

Ou, se você não tem /sys , pode ver /proc/scsi/scsi :

-bash-3.2$ cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST31000340AS     Rev: SD1A
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST31000340AS     Rev: SD1A
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST31000340AS     Rev: SD1A
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi3 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST31000340AS     Rev: SD1A
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi4 Channel: 00 Id: 00 Lun: 00
  Vendor: PepperC  Model: Virtual Disc 1   Rev: 0.01
  Type:   CD-ROM                           ANSI SCSI revision: 03
    
por 08.06.2012 / 23:13
15
hdparm -i /dev/sdb

Isso deve fornecer o modelo e o número de série da unidade.

    
por 08.06.2012 / 23:13
11

Como o inimitável Gilles mencionou nesta resposta do seu , se o seu kernel usa udev você pode usar o comando udevadm para interrogar um dispositivo:

udevadm info -n /dev/sda -a

(Infelizmente, em alguns casos [duplamente triste é que é verdade neste caso para mim] o udev não é usado e / ou o udevadm não está disponível.)

    
por 08.06.2012 / 23:28
9

Se você puder ver o LED na unidade ou ouvir o ruído do disco, poderá executar

sudo cat /dev/sdb >/dev/null

e veja qual unidade de repente se torna continuamente ativa. Ou, se você está passando por barulho,

sudo find /mount/point >/dev/null

que fará com que as cabeças se movam mais (talvez seja melhor não fazer isso no disco com falha e, em vez disso, use um processo de eliminação com os outros discos).

    
por 08.06.2012 / 23:12
4

Supondo que isso seja o Linux, a coisa mais óbvia é verificar o dmesg para onde o kernel inicializa o dispositivo. Ele registra o modelo da unidade.

    
por 08.06.2012 / 23:11
4

Eu tenho 4 métodos. O primeiro é o mais fácil:

dmesg | egrep "sd[a-z]"

Para os outros, não tenho certeza se eles precisam de / dev / disk, exceto este:

ls -lF /dev/disk/by-uuid

Os outros:

blkid -o list -c /dev/null

E o óbvio:

fdisk -l
    
por 30.06.2012 / 23:59
3

Aqui estão algumas maneiras que eu conheço para encontrar o nome do dispositivo SCSI

  • dmesg | egrep "sd[a-z]"
  • lsblk --scsi (do pacote util-linux > = v2.22)
  • lshw -C disk
  • ls -ld /sys/block/sd*/device
por 27.02.2017 / 11:05