Мені потрібно знати, які жорсткі диски доступні, включаючи ті, які не змонтовані і, можливо, не відформатовані. Я не можу знайти їх у dmesg
або /var/log/messages
(занадто багато для прокрутки). Я сподіваюся, що є спосіб використовувати /dev
або /proc
, щоб дізнатися цю інформацію, але я не знаю як. Я використовую Linux.
Це сильно залежить від платформи. Також різні методи можуть по-різному обробляти крайні випадки ("підроблені" диски різного роду, томи RAID, ...).
У сучасних установках udev в підкаталогах /dev/disk
є символічні посилання на носії інформації, які дозволяють шукати диск або розділ за серійним номером (/dev/disk/by-id/
), за UUID (/dev/disk/by-uuid
), за міткою файлової системи (/dev/disk/by-label/
) або за апаратним підключенням (/dev/disk/by-path/
).
Починаючи з Linux 2.6, кожен диск та дисковий пристрій має запис у /sys/block
. У Linux з самого початку, диски і розділи перераховані в /proc/partitions
. В якості альтернативи можна використовувати lshw: lshw -class disk
.
Linux також надає утиліту lsblk
, яка відображає гарне деревоподібне представлення томів сховища (починаючи з util-linux 2.19, відсутня на вбудованих пристроях з BusyBox).
Якщо у вас є утиліта fdisk
або disklabel
, вона може повідомити вам, на яких пристроях вона може працювати.
Назви утиліт для багатьох варіантів Unix можна знайти на Rosetta Stone для Unix, зокрема, у рядках "list hardware configuration" та "read a disk label".
Джайлз каже, що це дуже залежить від платформи. Ось один з таких прикладів.
Я використовую систему CentOS 5.5. Ця система має 4 диски і 3ware RAID контролера.
У моєму випадку lshw -class disk
, cat /proc/scsi/scsi
і parted --list
показують RAID контролер (3ware 9650SE-4LP). Це не показує фактичних дисків:
показує лише RAID-контролер 3ware, який забезпечує том /dev/sda:
# lshw -class disk
*-disk
description: SCSI Disk
product: 9650SE-4LP DISK
vendor: AMCC
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: AMCC Model: 9650SE-4LP DISK Rev: 4.06
Type: Direct-Access ANSI SCSI revision: 05
# parted --list
Model: AMCC 9650SE-4LP DISK (scsi)
Disk /dev/sda: 2000GB
Для того, щоб побачити диски, які лежать під ним, довелося встановити утиліту tw_cli від 3ware, і запитати сам контролер.
# tw_cli info c0
...
VPort Status Unit Size Type Phy Encl-Slot Model
------------------------------------------------------------------------------
p0 OK u0 931.51 GB SATA 0 - WDC WD1002FBYS-02A6
p1 OK u0 931.51 GB SATA 1 - WDC WD1002FBYS-02A6