Si on ne s'intéresse qu'à bloquer périphériques de stockage, on peut utiliser lsblk
à partir du package util-linux largement disponible :
$ lsblk -o 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
Il se prête bien aux scripts avec de nombreuses autres colonnes disponibles.
Vous pouvez parcourir la sortie de lshw
et extraire des détails sur les appareils dans le disk
ou tape
classe (et peut-être d'autres - storage
class vous donne des détails sur les contrôleurs de stockage, scsi, sata, sas, etc.).
ex.
lshw -class disk -class tape
Le -short
L'option donne un joli résumé compact. par exemple. sur mon serveur/poste de travail/boîte d'expérimentation zfsonlinux (pas de périphérique de bande malheureusement) :
# lshw -class tape -class disk -class storage -short H/W path Device Class Description ========================================================= /0/100/4/0 storage JMB362 SATA Controller /0/100/5/0 scsi10 storage JMB362 SATA Controller /0/100/5/0/0.0.0 /dev/sdc disk 120GB Patriot Wildfire /0/100/b/0 scsi1 storage SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] /0/100/b/0/0.0.0 /dev/sdd disk 1TB WDC WD10EARS-00Y /0/100/b/0/0.1.0 /dev/sde disk 1TB WDC WD10EACS-00Z /0/100/b/0/0.2.0 /dev/sdf disk 1TB WDC WD10EACS-00Z /0/100/b/0/0.3.0 /dev/sdg disk 1TB ST31000528AS /0/100/b/0/0.4.0 /dev/sdh disk 1TB ST31000528AS /0/100/b/0/0.5.0 /dev/sdi disk 1TB ST31000528AS /0/100/b/0/0.6.0 /dev/sdj disk 1TB ST31000528AS /0/100/11 scsi2 storage SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] /0/100/11/0 /dev/sda disk 128GB Patriot Torqx 2 /0/100/11/1 /dev/sdb disk 1TB ST31000528AS /0/1 scsi11 storage /0/1/0.0.0 /dev/sdk disk 1967MB SCSI Disk /0/1/0.0.1 /dev/sdl disk SCSI Disk /0/1/0.0.2 /dev/sdm disk SCSI Disk /0/1/0.0.3 /dev/sdn disk SCSI Disk /0/2 scsi66 storage /0/2/0.0.0 /dev/sdo disk SCSI Disk /0/3 scsi67 storage /0/3/0.0.0 /dev/sdp disk 4057MB SCSI Disk
Les appareils /0/1 sont en fait un lecteur de carte USB (il y a une carte SD de 2 Go branchée sur l'un des emplacements), et l'appareil /0/2 est mon téléphone Android branché uniquement pour le chargement. L'appareil 0/3 est une clé USB de 4 Go.
lshw
peut produire du texte brut, html, xml et json. Il peut également vider les détails du matériel dans un format de base de données sqlite.
Il est empaqueté pour Debian et la plupart des autres distributions. La page d'accueil et la source sont à http://ezix.org/project/wiki/HardwareLiSter
Vous pouvez utiliser lsblk
pour répertorier tous les périphériques de bloc, ainsi que si chaque périphérique est en lecture seule ou non.
Vous pouvez alors utiliser grep
et awk
pour imprimer les noms des périphériques de bloc qui ne sont pas en lecture seule :
lsblk -d -n -oNAME,RO | grep '0$' | awk {'print $1'}