Petites trouvailles du jour : outil pour shell pour gérer les périphériques « disque »

Pour l’écriture de scripts pour la détection et le montage partition sur lecteur de disque cdrom, ou de clé usb, « lsblk » peut-vous aider.
La solution classique d’utiliser dmesg ou les changements dans /dev imposent des contraintes non négligeables et l’écriture de quelques pirouettes.

lsblk liste les devices, la taille des disques, point de montage, etc… exemple ci-dessou :
sli@sli-Vostro-420-Series:~/developpement/test/util-linux-2.25-rc2$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 298,1G 0 disk
├─sda1 8:1 0 78,4M 0 part
├─sda2 8:2 0 49G 0 part
├─sda3 8:3 0 1K 0 part
├─sda5 8:5 0 146,5G 0 part /media/AFFAIRES
├─sda6 8:6 0 957M 0 part [SWAP]
├─sda7 8:7 0 45,7G 0 part /home
└─sda8 8:8 0 55,9G 0 part /
sr0 11:0 1 323,6M 0 rom /media/sysrcd-2.2.1
sr1 11:1 1 1024M 0 rom
sdf 8:80 0 232,9G 0 disk
├─sdf1 8:81 0 20G 0 part [SWAP]
├─sdf2 8:82 0 1K 0 part
├─sdf5 8:85 0 19,6G 0 part /media/IOMEGA
├─sdf6 8:86 0 97,7G 0 part /media/IOMEGA_NTFS
└─sdf7 8:87 0 95,6G 0 part /media/HORIBA

Le format de sortie est paramétrable pour être facilement digéré par votre script.
En ajoutant la colonne d’affichage FSTYPE, on peut trouver le cd-rom si l’is9660 a été utilisé. Mais personnellement j’ai préféré utilisé le numéro de node

Par contre lsblk ne saura pas vous dire si le disque est hébergé dans une clé usb, donc j’ai utilisé en complément l’aborescence dans /dev/disk comme indiqué ici. A noter que les chemins sont des liens symboliques vers les devices et que l’outil « realpath » vous donnera le chemin absolu en lui passant ces liens en argument.

lsblk provient d’un paquetage util-linux, communément inclut dans les distributions avec très peu de dépendances donc il est facile de l’embarquer sur une plateforme mobile.
J’ai constaté que la génération Yocto ne prévoyait pas l’installation de ce binaire, mais l’ajout est assez aisé.

Enfin voici une méthode intéressante pour l’écriture d’une fonction dans un shell, afin d’en améliorer la lisibilité : on passe en argument le nom des variables à utiliser pour retourner les resultats des traitements.

À propos de Selso

Salut ! Je m'appelle Selso. Je vis à Saint-Etienne depuis 2005. Je suis ingénieur en informatique embarquée en poste chez CIO Systèmes Embarqués.
Cette entrée a été publiée dans Développement, Informatique. Vous pouvez la mettre en favoris avec ce permalien.

Laisser un commentaire