Questo è altamente dipendente dalla piattaforma. Anche metodi diversi possono trattare i casi limite in modo diverso (dischi "falsi" di vario tipo, volumi RAID, ...).
Nelle moderne installazioni di udev, ci sono collegamenti simbolici ai supporti di archiviazione nelle sottodirectory di /dev/disk
, che ti permettono di cercare un disco o una partizione per numero di serie (/dev/disk/by-id/
), per UUID (/dev/disk/by-uuid
), per etichetta del filesystem (/dev/disk/by-label/
) o tramite connettività hardware (/dev/disk/by-path/
).
Sotto Linux 2.6, ogni disco e dispositivo simile a un disco ha una voce in /sys/block
. Sotto Linux dall'alba dei tempi, i dischi e le partizioni sono elencati in /proc/partitions
. In alternativa, puoi usare lshw:lshw -class disk
.
Linux fornisce anche lsblk
utility che mostra una bella vista ad albero dei volumi di archiviazione (a partire da util-linux 2.19, non presente su dispositivi embedded con BusyBox).
Se hai un fdisk
o disklabel
utility, potrebbe essere in grado di dirti su quali dispositivi è in grado di funzionare.
Troverai nomi di utility per molte varianti unix su Rosetta Stone per Unix, in particolare le righe "list hardware configuration" e "read a disk label".
lsblk
elencherà tutti i dispositivi a blocchi. Si presta bene allo scripting:
$ 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
è presente nel pacchetto util-linux ed è quindi molto più universale delle alternative proposte.
Che ne dici di
lshw -class disk