Як я співвідносив / dev / sd пристрої з обладнанням, яке вони представляють?


35

Диск починає виходити з ладу, і я знаю пристрій лише за його /dev/sdbпозначенням файлу пристрою. Які способи я можу використати для співвідношення цього файлу пристрою з фактичним апаратним пристроєм, щоб знати, який привід фізично замінити?

Бонус: Що робити, якщо у мене /dev/disk/на цій установці немає підкаталогів? (Що, на жаль, я не знаю)


Немає RAID-контролера?
ewwhite

@ewwhite Не для цілей цього питання, ні. =)
Веслі

btw. якщо у вас немає /dev/disk/каталогу, ви, мабуть, не маєте udev.
Ульріх Дангел

@UlrichDangel Дуже спостережливий, тому що ... у мене немає udev. = (
Веслі

Відповіді:


21

Ви можете подивитися /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

Або якщо у вас немає /sys, ви можете подивитися /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

Дивовижно, у мене є /sys/(як і /proc/) багато чудової інформації. Ще вживають його.
Веслі

Крім того, погляньте на / dev / disk / by-path (якщо припустимо, що ваш udev підтримує це). Звичайно, ОП не так, так ...
derobert

14
hdparm -i /dev/sdb

Це має дати модель та серійний номер накопичувача.


Я вважаю, що це спрацює у більшості ситуацій. Однак чомусь контролер на цьому сервері є ескізним. Виконання цієї команди заробляє мене на цьому:HDIO_GET_IDENTITY failed: Invalid argument
Веслі

1
smartctl -iтакож варто спробувати. Працює на дисках SCSI, тоді як hdparm часто не буде.
дероберт

Не працює з USB-матрицями
Mads Skjern

12

Як винятковий Жиль згадується в цій відповіді його , якщо ваше ядро використовує udevви можете використовувати udevadmкоманду , щоб опитувати пристрій:

udevadm info -n /dev/sda -a

(На жаль, в деяких випадках [вдвічі сумно, що для мене це правда в цьому випадку] udev не використовується і / або udevadm недоступний.)


8

Якщо ви бачите світлодіод на приводі або слухаєте шум диска, можете запустити

sudo cat /dev/sdb >/dev/null

і дивіться, який привід раптом стає безперервно активним. Або, якщо ви їдете шумом,

sudo find /mount/point >/dev/null

що змусить голови більше рухатися (можливо, краще не робити цього на несправному диску, а натомість використовувати процес усунення з іншими дисками).


2
Я розглядав, як змусити вогні блимати блимаючи , тому це відповідь на мою цікавість. =)
Веслі

1
Деякі накопичувачі мають додатковий світлодіод для цього, але вони, як правило, зустрічаються лише в корпоративних накопичувачах (читати химерно дорого при порівняно низькій ємності). Не знаєте, як працювати з тими світлодіодами, але ddфокус, як правило, працює досить добре.
джиппі

@WesleyDavid Навіть якщо немає світлодіодів, прослуховування шуму може бути останнім зверненням. Тут не потрібно використовуватись dd( ні в більшості випадків ), catабо будь-яка інша програма, яка читає з файлу, не буде.
Жил "ТАК - перестань бути злим"

4

Якщо припустити, що це Linux, найбільш очевидною справою є перевірка dmesg, де ядро ​​вперше ініціалізує пристрій. Він записує модель приводу.


Перевірте unix.stackexchange.com/questions/39886/… для отримання більш детальної інформації.
джиппі

Так, це Linux. Зокрема Debian 4. Я перевірив dmesg, але не побачив жодної згадки про модель приводу, як це не дивно. Можливо, я це неправильно читаю.
Веслі

4

У мене є 4 методи. Перший - найпростіший:

dmesg | egrep "sd[a-z]"

Для інших я не впевнений, чи потрібні вони / dev / disk, окрім цього:

ls -lF /dev/disk/by-uuid

Інші:

blkid -o list -c /dev/null

І очевидне:

fdisk -l

3

Ось декілька способів мені знати ім’я пристрою SCSI

  • dmesg | egrep "sd[a-z]"
  • lsblk --scsi (з пакета util-linux> = v2.22)
  • lshw -C disk
  • ls -ld /sys/block/sd*/device
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.