$()
не работает со старой Оболочкой Bourne. Но это были годы десятилетия, с тех пор как я работал со старой Оболочкой Bourne.
Это очень зависимо от платформы. Также различные методы могут рассматривать пограничные случаи по-другому (“поддельные” диски различных видов, объемов 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 на Розеттском камне для Unix, в особенности “аппаратная конфигурация списка” и “считала дисковую маркировку” строки.
@Giles говорит, что это очень зависимо от платформы. Вот один такой пример.
Я выполняю систему CentOS 5.5. Эта система имеет 4 диска и 3ware RAID-контроллер.
В моем случае, lshw -class disk
, cat /proc/scsi/scsi
и parted --list
показывает RAID-контроллер (3ware 9650SE-4LP). Это не показывает фактические дисковые емкости:
только показывает 3ware RAID-контроллер, который обеспечивает/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
lshw
) не установленный на сервере, и я подозреваю, что ответ будет, мы не устанавливаем его.
– xenoterracide
06.12.2010, 10:23
Я выполняю мягкую фетровую шляпу 14 и lshw
не доступно здесь (по крайней мере, не по умолчанию). Однако в моем случае, я использовал fdisk -l
команда (как пользователь root) для получения следующего вывода:
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006a697
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 16777215 7875584 8e Linux LVM
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/dm-0: 6509 MB, 6509559808 bytes
255 heads, 63 sectors/track, 791 cylinders, total 12713984 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/dm-0 doesn't contain a valid partition table
Disk /dev/dm-1: 1543 MB, 1543503872 bytes
255 heads, 63 sectors/track, 187 cylinders, total 3014656 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/dm-1 doesn't contain a valid partition table
fdisk -l /dev/sd?
или fdisk -l /dev/hd?
для предотвращения вводят dm устройства.
– laebshade
12.02.2012, 01:23
hwinfo
помогает:
> hwinfo --disk
21: IDE 00.0: 10600 Disk
[Created at block.245]
Unique ID: 3OOL.8MZXfAWnuH8
Parent ID: w7Y8.1T_0outZkp6
SysFS ID: /class/block/sda
SysFS BusID: 0:0:0:0
SysFS Device Link: /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0
Hardware Class: disk
Model: "Hitachi HTS54322"
Vendor: "Hitachi"
Device: "HTS54322"
Revision: "ESBO"
Driver: "ahci", "sd"
Driver Modules: "ahci"
Device File: /dev/sda
Device Files: /dev/sda, /dev/disk/by-id/ata-Hitachi_HTS543225A7A384_E2021342GEPG4J, /dev/disk/by-id/scsi-SATA_Hitachi_HTS5432_E2021342GEPG4J, /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0, /dev/disk/by-id/wwn-0x5000cca614c6395e
Device Number: block 8:0-8:15
BIOS id: 0x80
Geometry (BIOS EDD): CHS 484521/16/63
Size (BIOS EDD): 488397168 sectors
Geometry (BIOS Legacy): CHS 1023/255/63
Drive status: no medium
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #17 (SATA controller)
> hwinfo --block --short
disk:
/dev/sda Hitachi HTS54322
partition:
/dev/sda1 Partition
/dev/sda2 Partition
/dev/sda3 Partition
/dev/sda4 Partition
/dev/sda5 Partition
Это работало на меня:
fdisk -l 2>/dev/null | grep "Disk \/" | grep -v "\/dev\/md" | awk '{print $2}' | sed -e 's/://g'
Многие перечисленные команды помогут Вам искать диски, которые были уже распознаны системой при начальной загрузке. С современными дисками можно искать что-то, что Вы вставили, в то время как машина была в порядке (я сделал). Мне нравится совет из http://fredericiana.com/2010/06/15/hot-plugging-a-sata-drive-under-linux/:
Попробуйте это для повторного сканирования хостов SCSI (каждый порт SATA появляется как шина SCSI):
отзовитесь эхом "0 0 0">/sys/class/scsi_host/host/scan
... Затем можно использовать утилиты Linux как fdisk, чтобы показать Вам информацию о дисках, которые были найдены.
Начиная с обоих "Я могу видеть то, что жесткий диск я установил?" и, "Как я определяю делание и модель моих устройств хранения?" отмечены как дубликаты этого вопроса, я удивлен, что никто не упомянул hdparm
и smartctl
. Взглянуть на несколько машин, кажется, что любой из них (когда это не оба) часто уже найден установленным в стандарте (даже старый) дистрибутивы Linux.
# smartctl -i /dev/sda
smartctl 6.1 2013-03-16 r3800 [i686-linux-3.9.9-301.fc19.i686.PAE] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Toshiba 2.5" HDD MK..56GSY
Device Model: TOSHIBA MK1656GSY
Serial Number: 60PKT43CT
LU WWN Device Id: 5 000039 2919874b6
Firmware Version: LH013D
User Capacity: 160 041 885 696 bytes [160 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 2.6, 3.0 Gb/s
Local Time is: Mon Jul 22 11:13:37 2013 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
# hdparm -i /dev/sda
/dev/sda:
Model=TOSHIBA MK1656GSY, FwRev=LH013D, SerialNo=60PKT43CT
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: sdma0 sdma1 sdma2 mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: unknown setting WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-3,4,5,6,7
* signifies the current active mode
Как обычно, проверьте страницу справочника на большее количество опций.
smartctl
путь даже работает над Cygwin, +1! Просто цикл по возможным именам устройств и видит если smartctl
возвраты, что УМНАЯ поддержка дисков. "Неприменимый"
– Adrian Frühwirth
12.09.2013, 15:35
lsblk
перечислит все блочные устройства. Это предоставляет себя хорошо сценариям:
$ lsblk -io KNAME,TYPE,SIZE,MODEL
KNAME TYPE SIZE MODEL
sda disk 149.1G TOSHIBA MK1637GS
sda1 part 23.3G
sda2 part 28G
sda3 part 93.6G
sda4 part 4.3G
sr0 rom 1024M CD/DVDW TS-L632M
lsblk
присутствует в пакете util-linux и к настоящему времени более универсален, чем предложенные альтернативы.
lsblk -d
, -d
средства никакое сообщение зависимости перечислены.
– coanor
01.04.2015, 11:09
lsblk -ido KNAME,TYPE,SIZE,MODEL
(часть util-linux
который является частью base
на Arch), немедленно дает информацию, запрошенную, и без потребности быть корнем. Обратите внимание, что это обеспечивает Модель устройства, не Образцовое Семейство. smarctl -i /dev/<device>
рекомендуемый Skippy сделал это, например: "Образцовое Семейство: Барракуда Seagate 7 200,12 дюйма (отсутствующий в lsblk - идо: "диск 465,8G ST3500418AS").
– tuk0z
03.09.2015, 16:47
предоставит вам подробную информацию об аппаратных/физических дисках, даже если они не смонтированы.
программа предустановлена на все варианты Linux, которые я использовал, но для использования её нужно быть root.[1132016].