Ceci dépend fortement de la plate-forme. De plus, différentes méthodes peuvent traiter différemment les cas extrêmes (disques "faux" 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 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 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 partitions sont listés en /proc/partitions
. Alternativement, vous pouvez utiliser lshw :lshw -class disk
.
Linux fournit également le lsblk
utilitaire 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 avez un fdisk
ou disklabel
utilitaire, il pourra peut-être vous dire sur quels appareils il est capable de fonctionner.
Vous trouverez des noms d'utilitaires pour de nombreuses variantes d'Unix sur Rosetta Stone pour Unix, en particulier les lignes "lister la configuration matérielle" et "lire une étiquette de disque".
lsblk
listera tous les périphériques de bloc. 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 package util-linux et est donc bien plus universel que les alternatives proposées.
Que diriez-vous
lshw -class disk