drivemap(1) montrer les périphériques bloc dans un arbre de dépendances

SYNOPSIS

drivemap [-i|--info [-w|--width N]] [-d|--drive] [FILE]
drivemap [-i|--info [-w|--width N]] [-p|--mountpoint] [-f|--backing-file] [-n|--dm-name] [-m|--mark] [FICHIER]

drivemap -h|--help
drivemap [--debug] [-x|--set-x] [OPTIONS] [FICHIER]

DESCRIPTION

drivemap est un script shell utilisant les informations de proc, sysfs et udev pour afficher les périphériques bloc dans un arbre de dépendances. Il est basé sur les fonctions shell de bilibop-common et supporte device-mapper (dont dm-crypt et LVM) et les périphériques boucle (loop) avec quelques limitations. Les périphériques RAID et les systèmes de fichiers mhddfs ne sont pas supportés. Voir plus bas la section AMÉLIORATIONS ET LIMITATIONS.

OPTIONS

Quand aucun argument FICHIER n'est fourni, la commande est appliquée à tous les disques. Si un fichier FICHIER est donné comme argument et existe, alors la commande s'applique au disque contenant ce fichier. FICHIER peut être un fichier régulier, un répertoire ou un fichier spécial en mode bloc.

--debug

Affiche des informations de débogage sur la sortie standard des erreurs. Quand cette option est invoquée, chaque fonction appelée affiche son nom. Voir aussi '--set-x'.

-d, --drive

Montre uniquement les disques plutôt que leurs arbres.

-f, --backing-file

Essaye de remplacer chaque périphérique boucle dans l'arbre par son fichier associé. Cela peut échouer dans certains cas: par exemple sur les systèmes DebianLive, un périphérique boucle est associé à filesystem.squashfs depuis l'environnement du disque initial chargé en mémoire (initramdisk); le chemin absolu du fichier n'est pas mis à jour dans /sys quand le système de fichiers squashfs devient lui-même la nouvelle racine du système. Ainsi le nom de fichier stocké dans backing_file est obsolète, et ne sera donc pas affiché.

-h, --help

Affiche la liste des options sur la sortie standard et quitte.

-i, --info

Affiche des informations supplémentaires sur les périphériques. Pour les disques ou lecteurs de disques, cela inclut l'identifiant (ID, tel que donné dans /dev/disk/by-id), et la taille (en format lisible par des humains). Pour les autres périphériques bloc (partitions et périphériques virtuels) cela inclut le type du système de fichiers et la taille.

-m, --mark

Si un FICHIER est donné en argument, ajoute une marque (un astérisque entre parenthèses: (*)) au nom du périphérique contenant ce FICHIER. Autrement, ajoute une marque au nom du périphérique contenant le répertoire de travail courant.

-n, --dm-name

Remplace les noeuds device-mapper (/dev/dm-*) par leurs noms (/dev/mapper/*), qui sont attribués statiquement et généralement plus faciles à reconnaître.

-p, --mountpoint

Affiche les points de montage des périphériques montés, et montre les périphériques d'échange (swap) en cours d'utilisation.

-w N, --width=N

Formate la sortie sur N colonnes. Peut être utilisé avec '--info' et/ou '--mountpoint'. Si N n'est pas un nombre entier, ou s'il est plus grand que le nombre de colonnes de l'écran, alors la sortie utilisera la pleine largeur de l'écran. Si cette option n'est pas utilisée, le comportement par défaut est d'afficher le résultat sur 70 colonnes.

-x, --set-x

Affiche des informations de débogage sur la sortie standard des erreurs. Quand cette option est invoquée, le script shell est paramètré avec l'option -x, pour plus de détails de débogage. Voir aussi '--debug'.

AMÉLIORATIONS ET LIMITATIONS

drivemap fait partie du projet bilibop(7). Cette commande a été initialement écrite pour être appliquée au périphérique externe hébergeant le système en cours d'éxécution. Par son design, elle ne supporte pas les périphériques RAID et ne les supportera jamais. Un autre problème de design est que les Groupes de Volumes lvm(8) ne devraient contenir qu'un seul Volume Physique. Nous assumons qu'il n'y a pas de sens à utiliser plusieurs Volumes Physiques sur un même disque pour un même Groupe de Volumes. En adoptant une vue de l'esprit parent/enfant, nous disons que chaque périphérique peut avoir au plus un parent mais de zéro à plusieurs enfants. Depuis que le script a été étendu pour être appliqué à tous les disques connectés à l'ordinateur, cela sonne comme un bogue.

Contairement à la commande lsblk(1), drivemap intègre les périphériques boucle (loop) dans l'arbre des dépendances. En fait, la question qui peut être posée est la suivante:
" Qu'est-ce qui se passera pour le contenu d'autres périphériques physiques ou virtuels si je lance une commande dd(1), shred(1) ou wipe(1) sur celui-ci ou celui-là ? "
Et alors il apparaît que les informations contenues dans les fichiers slaves et holders dans sysfs ne sont pas suffisantes pour organiser les périphériques bloc en arbre, ou devraient être étendues. Pour la même raison, les partitions logiques sont montrées comme des sous-périphériques des partitions primaires étendues.

Seuls les périphériques bloc dont le contenu est hébergé par un disque physique sont affichés: cela signifie que si un périphérique boucle est associé à un fichier se trouvant sur un système de fichiers temporaire (tmpfs, c'est à dire la RAM), ce périphérique ne sera pas montré. Ce n'est PAS un bogue: comme annoncé par son nom, drivemap construit et affiche une 'carte des disques' (map of drives).

EXEMPLES

Lister les lecteurs de disques physiques actuellement reconnus par le noyau:
drivemap -d

Trouver le disque hébergeant le système en cours d'éxécution, et afficher son identifiant et sa taille:

drivemap -id /

Montrer où est mon répertoire de travail courant sur un disque avec un schéma de partitionnement complexe (LVM + LUKS + LVM):

drivemap -min .

BOGUES

Voir plus haut la section AMÉLIORATIONS ET LIMITATIONS.

FICHIERS

/sys/class/block/*/holders
/sys/class/block/*/slaves
/sys/class/block/loop?*/loop/backing_file

AUTEUR

Cette page de manuel a été traduite de l'anglais par Alexandre Martin <[email protected]> dans le cadre du projet bilibop.