Який жорсткий диск - це який?


38

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

Обмеження

  • Я лінивий. Я не хочу розривати сервер, щоб видалити всі диски, а потім додавати їх по черзі.
  • Перезавантаження прийнятні.
  • Диски незручно скручуються у корпусі. Інформація мітки прихована.
  • Справу можна відкрити. Більшість дисків є SATA, тому теоретично можна легко замінюватись. Відключення кабелів - це чесна гра.

Бонус

Я присуджую відповідь на найкращу / найпростішу відповідь gui або cli та дам нагороду наступній найкращій відповіді іншого типу. Я вважаю за краще відповідь на кліп, але розумію, що багато інших оцінять хороший метод "натискання та натискання".

Відповіді:


26

hdparm -i /dev/sdX дає вам серійний номер, який є найпростішим способом, який я знаю, щоб відокремити жорсткі диски однієї марки та розміру.

Серійний номер, як правило, друкується на етикетці на диску, тому, хоча вам потрібно відкрити корпус, щоб знайти його, розбирати комп'ютер не потрібно.

Приклад:

$ sudo hdparm -i /dev/sdb | grep -i serial
 Model=SAMSUNG HD253GJ, FwRev=1AJ10001, SerialNo=S24JJ90Z505435

Якщо ви хочете отримати більше інформації, ви отримуєте lshw -c storage -c diskнайбільш читабельний результат. Це майже ті ж дані, що і Disk Utility, лише у форматі командного рядка.

Ось примітка із найскладнішої установки, до якої я маю доступ, з чотирма дисковими контролерами, семи жорстких дисків, DVD-ROM та USB-диском.

Вихід було скорочено до розміру, щоб зосередитись на цікавих частинах:

[server ~]$ sudo lshw -c storage -c disk
  *-storage   
  # a 2-port PCI-E SATA controller
       description: SATA controller
       product: 88SE9123 PCIe SATA 6.0 Gb/s controller
       vendor: Marvell Technology Group Ltd.
     *-disk
          description: ATA Disk
          product: WDC WD15EADS-00P
          vendor: Western Digital
  # 'physical id' corresponds to port number, first port is 0
          physical id: 0  
          logical name: /dev/sdg
          serial: WD-WMAVU0849124
          size: 1397GiB (1500GB)
     *-cdrom
          description: DVD reader
          product: BD-ROM BR-5100S
          vendor: Optiarc
          physical id: 1
          logical name: /dev/cdrom1
          logical name: /dev/dvd1
          logical name: /dev/scd0
          serial: [Optiarc BD-ROM BR-5100S 1.02 May20 ,2008
  *-storage
  # mobo controller for eSATA ports. Not used.
       description: SATA controller
       product: JMB362/JMB363 Serial ATA Controller
       vendor: JMicron Technology Corp.
  *-ide
  # mobo controller for IDE. Not used.
       description: IDE interface
       product: JMB362/JMB363 Serial ATA Controller
       vendor: JMicron Technology Corp.
  *-storage
  # the primary SATA controller, six ports
       description: SATA controller
       product: 82801JI (ICH10 Family) SATA AHCI Controller
       vendor: Intel Corporation
  # 'disk:0' means port 0, same as physical id
     *-disk:0
          description: ATA Disk
          product: WDC WD1600BEVS-0
          vendor: Western Digital
          physical id: 0
          logical name: /dev/sda
          serial: WD-WXEY08T58317
          size: 149GiB (160GB)
     *-disk:1
          description: ATA Disk
          product: ST32000542AS
          vendor: Seagate
          physical id: 1
          logical name: /dev/sdb
          serial: 5XW1RTDS
          size: 1863GiB (2TB)
     *-disk:2
          description: ATA Disk
          product: ST32000542AS
          vendor: Seagate
          physical id: 2
          logical name: /dev/sdc
          serial: 5XW23W0W
          size: 1863GiB (2TB)
     [...]
  *-scsi
  # the USB disk, as evidenced by the bus info 
       physical id: 1
       bus info: usb@1:1
       capabilities: emulated scsi-host
     *-disk
          description: SCSI Disk
          product: 10EAVS External
          vendor: WD
          physical id: 0.0.0
          logical name: /dev/sdh
          serial: WD-WCAU46029507
          size: 931GiB (1TB)

Я думаю, що утиліта диска швидше читається; версія командного рядка має перевагу в тому, що вона може бути використана над ssh та скриптами.

І я все ще думаю, що серійний номер - це найнадійніше рішення :)

"Фізичний ідентифікатор" кожного диска відповідає тому, де він підключений до материнської плати. і починається з 0. так що фізичний ідентифікатор 2 означатиме, що накопичувач приєднаний до 3-го порту сата вашої mobo або іншого застосовного пристрою.


Цікаво. Серіал / етикетку приємно мати, але в моєму сценарії диски забиті в тримач, який блокує наклейку від перегляду. Найкраще, що я можу зробити, це простежити кабелі. Я нічого не побачив в hdparm -iодразу корисному, але мені доведеться перечитати сторінку man, щоб побачити, чи не можу я отримати більше інформації.
djeikyb

Так, серіал справді найнадійніший, але це дає корисну карту розпізнавання пристроїв Linux -> фізичні підключення ... через інтерфейс командного рядка. Спасибі!
djeikyb

34

Утиліта диска

Це додаток GUI, яке дасть інформацію про модель, розмір, серійний номер та шлях пристроїв. Він встановлений за замовчуванням на Ubuntu Desktop. Ви можете натиснути кнопку Ubuntu Dash і пошукати "дискову утиліту", щоб знайти її, або запустити її в терміналі palimpsest.

Утиліта диска


4
і вам потрібно використовувати лише одну руку і палець, що я називаю енергозбереження "врятуй планету, використовуй дискову утиліту"
Аллан

4
Я думаю, що це буде відповідь, оскільки "Місце розташування: Порт X адаптера хоста SATA" є вбивчою функцією. Я хотів би також побачити деякі відповіді на кліп. У Октавіана та фауста є цікаві рішення по цих напрямках
djeikyb

18

Відкрийте корпус і послухайте диски з згорнутою копією "Журналу Linux". Потім по черзі запустіть dd на кожному диску, щоб генерувати деякий шум на диску.

Примітка: це не працюватиме на SSD-дисках!


2
Стетоскоп ftw
Джеремі

1
Люблю цю відповідь. Я віддаю перевагу технічному виходу palimpsestта lshw, але це близько третьої частини.
djeikyb

SSD не видають шум. Крім того, рішення не буде працювати, якщо у вас є більше одного диска і є інші процеси, які читаються з двох дисків одночасно.
Сергій Колодяжний

Також це не допоможе, якщо ви працюєте з віддаленим сервером через sshабо RDP
Сергій Колодяжний

2
Яким може бути те "ошукання"?
jjg

10

Ви можете отримати цю інформацію з / sys (або / dev, з цього питання):

anthony@Zia:~$ ls -l /sys/block/ | grep sd.
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sda -> ../devices/pci0000:00/0000:00:1f.2/host2/target2:0:0/2:0:0:0/block/sda
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sdb -> ../devices/pci0000:00/0000:00:1f.2/host3/target3:0:0/3:0:0:0/block/sdb
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sdc -> ../devices/pci0000:00/0000:00:1f.2/host4/target4:0:0/4:0:0:0/block/sdc
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sdd -> ../devices/pci0000:00/0000:00:1f.2/host5/target5:0:0/5:0:0:0/block/sdd

Отже, ви бачите, що мої чотири диски знаходяться на портах (хости / цілі) від 2 до 5.

Ви також можете зробити ls -l /dev/disk/by-pathі побачити його там.


2
+1 для доступу до основної інформації від / sys та / dev. Мені все одно подобається сукупна інформація від прийнятих рішень, але знання, як отримати та прочитати базову інформацію, неоціненне. Це пропущена частина більшої відповіді, яку дали @ jg-faustus і @Allan
djeikyb

Насправді, якщо ви запускаєте strace -e trace=open lsblkі strace -e trace=open lsblk, це саме ті дані, які читаються. Ця відповідь заслуговує на більшу кількість відгуків.
Сергій Колодяжний

8

Рекомендую hwinfo --disk.

Тут буде перерахована вся відповідна інформація для ваших жорстких дисків. Якщо вам потрібна додаткова інформація про ваші розділи, ви можете використовувати hwinfo --partition.

Ви можете поєднати обидва вищезазначені --shortваріанти з можливістю отримати коротше представлення.


Це виглядає найбільш перспективно, особливо лінії SysFS та Device Files, але я не впевнений, як їх перекласти англійською мовою.
djeikyb

5

Hardinfo - це графічний інтерфейс, який дозволить вам зібрати інформацію про вашу систему, яка може включати, але не обмежуючись ними, фізично підключені пристрої зберігання даних та файлові системи, як показано на наступних знімках екрана:

введіть тут опис зображення

введіть тут опис зображення

Веб-сайт Hardinfo: http://hardinfo.berlios.de/HomePage


4
  • cat /proc/partitions показати виявлені розділи / диск ядром, можна визначити за розміром

введіть тут опис зображення

  • smartctl -i /dev/sda

введіть тут опис зображення


3

Найшвидший і найпростіший спосіб

1. Відкрийте гном-термінал

2. Введіть sudo blkid

3. Введіть пароль

4. Він підкаже, який привід - який у простому для читання форматі


2

Якщо ви хочете спосіб, не маючи змоги побачити мітки, що, наскільки я знаю, жоден з інших відповідей не робить. Я б відключив усі накопичувачі (Якщо це можливо, вам, можливо, доведеться завантажуватися з живого компакт-диска, щоб це зробити). Усі диски тепер повинні відкручуватися. Потім ви можете прогресивно монтувати кожен і слухати чи відчувати, який з них вивертається. Таким чином, вам потрібна лише кришка вашого корпусу, але вам не потрібно бачити етикетки, що приємно, якщо всі вони заплутані.

Симплекс


1

Основне питання:

Хочу знати, який жорсткий диск відповідає якому шляху пристрою.

Підходи командного рядка

  1. Основний і більш практичний підхід - через вивчення /dev/файлової системи. Є кілька каталогів, в /dev/disk/яких містяться символьні посилання на файли пристроїв, і ці каталоги організовані на UUID, id, шлях у /sysфайловій системі та мітку (якщо пристрій / розділ має такий). Наприклад, знаючи UUID накопичувача, який я хочу знайти, я можу зробити щось подібне:

    $ find /dev/disk/by-uuid/ -mindepth 1 -printf "%p >>> %l\n"
    /dev/disk/by-uuid/8e344ab1-5eb5-4e20-becd-4147fffd439f >>> ../../sdb6
    /dev/disk/by-uuid/483CDA9D3CDA84FA >>> ../../sdb5
    /dev/disk/by-uuid/32AE5766AE5721A1 >>> ../../sdb4
    /dev/disk/by-uuid/7852-5217 >>> ../../sdb2
    /dev/disk/by-uuid/D668510B6850EC2D >>> ../../sdb1
    /dev/disk/by-uuid/B8E453D4E453940A >>> ../../sdb3
    /dev/disk/by-uuid/86df21bf-d95f-435c-9292-273bdbcba056 >>> ../../sda1
    
  2. Ubuntu за замовчуванням поставляється з UDisksдиспетчером дисків. У ньому є кілька утиліт, якими можна користуватися. Інформація з методу №1 вже проаналізована для зручності користувача. Наприклад, щоб просто знайти, який пристрій відповідає якій моделі жорсткого диска, ми могли б зробити це:

    $ udisksctl  status
    MODEL                     REVISION  SERIAL               DEVICE
    --------------------------------------------------------------------------
    Radeon R7                 1.01      A22MD061520000172    sda     
    TOSHIBA MQ01ABF050        AM0P3M    Z4GRCSXAT            sdb     
    

    Додаткову інформацію можна отримати за допомогою udisksctl info -b /dev/sda1конкретного пристрою або udisksctl dumpдля всіх пристроїв. udisksctl monitorможе використовуватися для підключення / відключення накопичувачів фізично.

Зокрема, якщо ви хочете узгодити UUID з певним приводом, ви можете фільтрувати за udisksctl infoдопомогою grep:

    $ udisksctl info -b /dev/sda1 | grep 'IdUUID:\|Id:'                                                   
    Id:                         by-id-ata-Radeon_R7_A22MD061520000172-part1
    IdUUID:                     86df21bf-d95f-435c-9292-273bdbcba056

Підходи GUI:

Використовуючи інформацію, яка UDisksвиводиться на міжпроцесорну шину зв'язку, відому як dbus, я написав індикатор для Ubuntu з робочим столом Unity (хоча він може бути використаний і для інших). Спочатку він був написаний для показника використання файлової системи (див. Посилання щодо інструкцій із встановлення). Це дозволяє зручно відображати інформацію про всі змонтовані диски та деякі інші функції, такі як натискання на розділ / пристрій та відкриття відповідного каталогу у файловому менеджері.

введіть тут опис зображення


Тут багато хорошої інформації. Але ваша порада dev / sys fs задає питання: "як я можу знати, на якому фізичному диску є розділ із цим uuid". Про що я в першу чергу запитав.
djeikyb

@djeikyb Це насправді одна з речей, яку я вирішував, працюючи над згаданим udisksctlнами індикатором, і це, мабуть, найпростіший підхід - ви можете відфільтрувати його за допомогою grep для пристрою + лінії UUID. Я відредагую це у своєму запитанні. Що стосується спеціальних рішень, то, звичайно, це може бути написано сценарієм perl, python або навіть оболонкою, де ви переходите /dev/disk/by-idта співставляєте його із символьними посиланнями /dev/disk/by-uuid.
Сергій Колодяжний

@djeikyb Отже, ви в основному хочете знати, які роз'єми використовуються на якому приводі, правда? і не знаючи моделі чи жорсткого диска?
Сергій Колодяжний

@djeikyb Я читав це, і вони зосереджуються на серійному номері кожного диска. . .це те, що я також udisksctl statusчастково надав .
Сергій Колодяжний

@djeikyb Цікаво. Утиліта дисків за замовчуванням ,, palimpsetочевидно, була перейменована як " gnome-disks-utility, але більше не має" Місцезнаходження ". Принаймні не в 16.04, що я бігаю
Сергій Колодяжний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.