J'ai besoin de savoir quels disques durs sont disponibles, y compris ceux qui ne sont pas montés et éventuellement non formatés. Je ne les trouve pas dans dmesg
ou /var/log/messages
(trop pour faire défiler). J'espère qu'il existe un moyen d'utiliser /dev
ou /proc
pour trouver ces informations, mais je ne sais pas comment. J'utilise Linux.
Cela dépend fortement de la plate-forme. Différentes méthodes peuvent également traiter différemment les cas Edge ("faux" disques de divers types, volumes RAID,…).
Sur les installations udev modernes, il existe des liens symboliques vers les supports de stockage dans les sous-répertoires de /dev/disk
, qui vous permet de rechercher un disque ou une partition par numéro de série (/dev/disk/by-id/
), par UUID (/dev/disk/by-uuid
), par étiquette de système de fichiers (/dev/disk/by-label/
) ou par la connectivité matérielle (/dev/disk/by-path/
).
Sous Linux 2.6, chaque disque et périphérique de type disque a une entrée dans /sys/block
. Sous Linux depuis la nuit des temps, les disques et les partitions sont répertoriés dans /proc/partitions
. Alternativement, vous pouvez utiliser lshw : lshw -class disk
.
Linux fournit également l'utilitaire lsblk
qui affiche une belle arborescence des volumes de stockage (depuis util-linux 2.19, non présent sur les appareils embarqués avec BusyBox).
Si vous disposez d'un utilitaire fdisk
ou disklabel
, il pourra peut-être vous dire sur quels appareils il peut fonctionner.
Vous trouverez des noms d'utilitaires pour de nombreuses variantes d'Unix sur les lignes Rosetta Stone for Unix , en particulier les listes de configuration matérielle et de lecture d'une étiquette de disque.
lsblk
listera tous les périphériques bloqués. Il se prête bien aux scripts:
$ 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
est présent dans le paquet util-linux et est donc bien plus universel que les alternatives proposées.
Que diriez-vous
lshw -class disk
hwinfo
aide:
> 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
@Giles dit que cela dépend fortement de la plate-forme. Voici un exemple.
J'utilise un système CentOS 5.5. Ce système dispose de 4 disques et d'un contrôleur RAID 3ware.
Dans mon cas, lshw -class disk
, cat /proc/scsi/scsi
et parted --list
montre le contrôleur RAID (3ware 9650SE-4LP). Cela ne montre pas les disques réels:
ne montre que le contrôleur RAID 3ware qui fournit le volume/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
Afin de voir les disques qui se trouvent en dessous, j'ai dû installer l'utilitaire tw_cli de 3ware et demander au contrôleur lui-même.
# 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
Étant donné que " Puis-je voir quel disque dur j'ai installé? " et " Comment puis-je déterminer la marque et le modèle de mes périphériques de stockage? " sont marqués comme des doublons de cette question , Je suis surpris que personne n'ait mentionné hdparm
et smartctl
. En jetant un œil à quelques machines, il semble que l'une ou l'autre (quand ce n'est pas les deux) se trouve souvent déjà installée dans les distributions linux standard (même anciennes).
# 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
Comme d'habitude, consultez la page de manuel pour plus d'options.
J'utilise Fedora 14 et lshw
n'est pas disponible ici (du moins pas par défaut). Cependant, dans mon cas, j'ai utilisé fdisk -l
commande (en tant qu'utilisateur root) pour obtenir la sortie suivante:
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
I trouvé dans une autre réponse SE , inxi
outil très pratique:
inxi -Dxx
Drives: HDD Total Size: 810.2GB (42.9% used)
ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6
ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926
ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE
ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX
sfdisk -l
vous donnera des informations détaillées sur les disques matériels/physiques même s'ils ne sont pas montés.
le programme est pré-installé sur toutes les variantes Linux que j'ai utilisées, mais vous devez être root pour l'utiliser.
La plupart des commandes répertoriées vous aideront à rechercher des disques qui ont déjà été reconnus par le système au démarrage. Avec les lecteurs modernes, vous pouvez vous retrouver à chercher quelque chose que vous avez inséré alors que la machine était en marche (je l'ai fait). J'aime les conseils de http://fredericiana.com/2010/06/15/hot-plugging-a-sata-drive-under-linux/ :
Essayez ceci pour analyser à nouveau les hôtes SCSI (chaque port SATA apparaît comme un bus SCSI):
echo "0 0 0">/sys/class/scsi_Host/host/scan
... Ensuite, vous pouvez utiliser vos utilitaires Linux comme fdisk pour vous montrer des informations sur les disques trouvés.
Cela a fonctionné pour moi:
fdisk -l 2>/dev/null | grep "Disk \/" | grep -v "\/dev\/md" | awk '{print $2}' | sed -e 's/://g'
Sudo gparted
affichera tout cela dans une interface graphique.
(Vous n'avez pas précisé que vous deviez le faire dans un terminal, je me demande donc pourquoi cette solution manquait.)