Jak skorelować urządzenia / dev / sd ze sprzętem, który reprezentują?


35

Dysk zaczyna się zawodzić i znam urządzenie tylko na podstawie jego /dev/sdbnazwy pliku urządzenia. W jaki sposób mogę skorelować ten plik urządzenia z rzeczywistym urządzeniem sprzętowym, aby wiedzieć, który dysk należy fizycznie wymienić?

Premia: Co jeśli nie mam /dev/disk/i podkatalogów tej instalacji? (Które niestety nie mam)


Brak kontrolera RAID?
ewwhite

@ewwhite Nie do celów tego pytania, nie. =)
Wesley,

btw. jeśli nie masz /dev/disk/katalogu, prawdopodobnie nie masz udev.
Ulrich Dangel

@UlrichDangel Bardzo spostrzegawczy, ponieważ ... Nie mam udev. = (
Wesley,

Odpowiedzi:


21

Możesz zajrzeć do /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

Lub jeśli nie masz /sys, możesz spojrzeć na /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

Wspaniale, mam tam /sys/(i /proc/) mnóstwo świetnych informacji. Nadal go pochłaniam.
Wesley

Spójrz także na / dev / disk / by-path (zakładając, że twój udev to obsługuje). Oczywiście OP nie, więc ...
derobert

14
hdparm -i /dev/sdb

To powinno dać ci model i numer seryjny napędu.


Myślę, że to zadziałałoby w większości sytuacji. Jednak z jakiegoś powodu kontroler na tym serwerze jest pobieżny. Wykonanie tego polecenia daje mi to:HDIO_GET_IDENTITY failed: Invalid argument
Wesley

1
smartctl -iwarto też spróbować. Działa na dyskach SCSI, podczas gdy hdparm często nie.
derobert

Nie działa z urządzeniami USB
Mads Skjern

12

Jak niepowtarzalny Gilles wspomniany w tej odpowiedzi , jeśli twoje jądro używa udev, możesz użyć udevadmpolecenia, aby przesłuchać urządzenie:

udevadm info -n /dev/sda -a

(Niestety, w niektórych przypadkach [podwójnie smutne jest to, że w tym przypadku jest to prawdą] udev nie jest używany i / lub udevadm nie jest dostępny.)


8

Jeśli widzisz diodę LED na dysku lub słyszysz szum dysku, możesz uruchomić

sudo cat /dev/sdb >/dev/null

i zobacz, który napęd nagle staje się stale aktywny. Lub jeśli idziesz przez hałas,

sudo find /mount/point >/dev/null

co sprawi, że głowy zaczną się bardziej poruszać (lepiej nie robić tego na uszkodzonym dysku i zamiast tego zastosować proces eliminacji z innymi dyskami).


2
Zastanawiałem się, jak sprawić, by światła zaczęły mrugać , mrugać , więc jest to odpowiedź na moją ciekawość. =)
Wesley,

1
Niektóre dyski mają do tego dodatkową diodę LED, ale zwykle można je znaleźć tylko w dyskach klasy korporacyjnej (odczyt dziwnie drogi przy stosunkowo małej pojemności). Nie wiem, jak działają te diody LED, ale ddsztuczka zwykle działa wystarczająco dobrze.
jippie

@WesleyDavid Nawet jeśli nie ma diod LED, słuchanie hałasu może być ostatnim wyjściem. Nie ma potrzeby używania ddtutaj ( ani w większości przypadków ), catani żadnego innego programu, który czyta z pliku.
Gilles „SO - przestań być zły”,

4

Zakładając, że jest to Linux, najbardziej oczywistą rzeczą jest sprawdzenie w dmesg, gdzie jądro najpierw inicjuje urządzenie. Rejestruje model dysku.


Sprawdź unix.stackexchange.com/questions/39886/... po więcej szczegółów.
jippie

Tak, to Linux. W szczególności Debian 4. Sprawdziłem dmesg, ale dziwnie nie widziałem żadnej wzmianki o modelu napędu. Być może źle to interpretuję.
Wesley

4

Mam 4 metody. Pierwszy jest najłatwiejszy:

dmesg | egrep "sd[a-z]"

Dla innych nie jestem pewien, czy potrzebują / dev / disk, z wyjątkiem tego:

ls -lF /dev/disk/by-uuid

Inni:

blkid -o list -c /dev/null

I oczywiste:

fdisk -l

3

Oto kilka sposobów na znalezienie nazwy urządzenia SCSI

  • dmesg | egrep "sd[a-z]"
  • lsblk --scsi (z pakietu util-linux> = v2.22)
  • lshw -C disk
  • ls -ld /sys/block/sd*/device
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.