1. NOM

debugfs - Débogueur pour systèmes de fichiers ext2/ext3/ext4

2. SYNOPSIS

debugfs [ -DVwci ] [ -b taille_bloc ] [ -s superbloc ] [ -f fichier_commande ] [ -R requête ] [ -d périphérique_source ] [ périphérique ]

3. DESCRIPTION

Le programme debugfs est un débogueur interactif de système de fichiers. Il peut servir à examiner et changer l'état d'un système de fichiers ext2, ext3 ou ext4.
périphérique est un fichier spécial correspondant au périphérique contenant le système de fichiers (par exemple /dev/hdXX).

4. OPTIONS

  • -w
        Indiquer que le système de fichiers doit être ouvert en lecture-écriture. Sans cette option, le système de fichiers est ouvert en lecture seule.
  • -c
        Indiquer que le système de fichiers doit être ouvert en mode catastrophe, ce qui fait que les tables d'inœuds et de groupes ne sont pas lues au départ. Cela peut être utile pour les systèmes de fichiers fortement corrompus, mais de ce fait, le mode catastrophe force l'ouverture en mode lecture seule du système de fichiers.
  • -i
        Indiquer que périphérique représente un fichier image ext2 créé par le programme e2image. Puisque le fichier image ext2 ne contient que le superbloc, le descripteur des groupes de blocs, les tables d'allocation des blocs et inœuds et la table des inœuds, beaucoup de commandes de debugfs ne fonctionneront pas correctement. Attention : aucune vérification n'est effectuée et debugfs peut échouer de différentes façons si les commandes comme ls, dump, etc. sont utilisées sans indiquer le périphérique_source en utilisant l'option -d. debugfs est un outil de débogage. Il est fourni brut de fonderie !
  • -d périphérique_source
        Utilisé avec l'option -i, cette option permet d'indiquer qu'un périphérique_source doit être utilisé pour la lecture des blocs qui ne se trouvent pas dans le fichier image ext2. Cela inclut les données, les répertoires et les blocs indirects.
  • -b taille_bloc
        Forcer l'utilisation pour le système de fichiers de la taille de bloc donnée, plutôt que de la détecter comme c'est fait normalement.
  • -s superbloc
        Le superbloc du système de fichiers sera lu à partir du bloc dont le numéro est donné, au lieu d'utiliser le superbloc primaire (situé 1024 octets après le début du système de fichiers). Si vous utilisez l'option -s, vous devez également fournir la taille des blocs du système de fichiers avec l'option -b.
  • -f fichier_commande
        debugfs lira les commandes dans le fichier fichier_commande et les exécutera. Quand debugfs a fini d'exécuter les commandes, il se termine.
  • -D
        debugfs ouvrira le périphérique en utilisant les entrées/sorties directes (« Direct I/O »), outrepassant le cache de fichiers. Notez que certains périphériques Linux, comme à l'heure actuelle device mapper, ne prennent pas en charge les entrées/sorties directes.
  • -R requête
        Forcer debugfs à n'exécuter que la requête puis quitter.
  • -V
        Afficher le numéro de version de debugfs et quitter.

5. INDIQUER DES FICHIERS

Beaucoup de commandes de debugfs prennent un paramètre filespec pour indiquer un inœud (par opposition à un chemin) dans le système de fichiers qui est actuellement ouvert par debugfs. Le paramètre filespec peut être indiqué de deux façons. La première est un numéro d'inœud entre des signes inférieur et supérieur, par exemple <2>. La seconde est un chemin ; si le chemin commence par une barre oblique (« / »), alors il est interprété relativement à la racine du système de fichiers qui est ouvert par debugfs. Sinon, le chemin est interprété relativement au répertoire de travail maintenu par debugfs, qui peut être modifié à l'aide de la commande cd de debugfs.

6. COMMANDES

Voici une liste de commandes acceptées par debugfs :

  • blocks filespec
        Afficher les blocs utilisés par l'inœud filespec sur la sortie standard.
  • bmap filespec bloc_logique
        Afficher le numéro de bloc physique correspondant au numéro de bloc logique bloc_logique de l'inœud filespec.
  • block_dump [-f fichier_sortie] num_bloc
        Afficher le contenu d'un block, éventuellement dans le fichier fichier_sortie.
  • cat filespec
        Afficher le contenu de l'inœud filespec sur la sortie standard.
  • cd filespec
        Utiliser filespec comme répertoire de travail.
  • chroot filespec
        Changer le répertoire racine et utiliser filespec à la place.
  • close [-a]
        Fermer le système de fichiers actuellement ouvert. Si l'option -a est indiquée, écrire toute modification du superbloc et des descripteurs de groupes de blocs dans tous les superbloc de sauvegarde, et non pas seulement dans le superbloc maître.
  • clri fichier
        Effacer le contenu de l'inœud fichier.
  • dirsearch filespec fichier
        Chercher fichier dans le répertoire filespec.
  • dump [-p] filespec fichier_sortie
        Fournir le contenu de l'inœud filespec dans le fichier de sortie fichier_sortie. Avec l'option -p, le propriétaire, le groupe et les informations de permission de fichier_sortie correspondront à ceux de filespec.
  • dump_mmp
        Afficher les valeurs des champs de protection contre le montage multiple (mmp).
  • dx_hash [-h hash_alg] [-s hash_graine] fichier
        Calculer le hachage du répertoire du fichier. Le nom de l'algorithme de hachage précisé par -h peut prendre l'une des valeurs « legacy », « half_md4 » ou « tea ». La graine de hachage précisée avec l'option -s doit être au format UUID.
  • dump_extents [-n] [-l] filespec
        Afficher l'arbre d'extents de l'inœud filespec. Avec l'option -n, dump_extents n'affichera que les nœuds internes dans l'arbre d'extents. Avec l'option -l, dump_extents n'affichera que les feuilles de l'arbre d'extents.

(Veuillez noter que la longueur et l'intervalle des blocs du dernier extent d'un nœud interne est une estimation des fonctions de la bibliothèque des extents et ne sont pas stockés dans les structures de données du système de fichiers. Ainsi, les valeurs affichées peuvent ne pas être précises et n'indiquent pas de problème ou de corruption du système de fichiers.)

  • expand_dir filespec
        Développer le répertoire filespec.
  • feature [caractéristique_sf] [-caractéristique_sf] ...
        Activer ou désactiver différentes caractéristiques d'un système de fichiers dans son superbloc. Après avoir activé ou désactivé une caractéristique, afficher l'état actuel de l'ensemble des caractéristiques du système de fichiers.
  • filefrag [-dvr] filespec
        Afficher le nombre d'extents contigus dans filespec. Si filespec est un répertoire et que l'option -d n'est pas indiquée, filefrag affichera le nombre d'extents contigus pour chaque fichier du répertoire. Avec l'option -v, filefrag affichera sous forme de tableau la liste des extents contigus du fichier. Avec l'option -r, filefrag sera exécuté récursivement sur les éléments du répertoire.
  • find_free_block [compte [objectif]]
        Trouver le premier morceau d'espace libre de compte blocs, en commençant par objectif et l'allouer.
  • find_free_inode [rep [mode]]
        Trouver un inœud libre et l'allouer. S'il est présent, rep indique le numéro d'inœud du répertoire dans lequel l'inœud doit être placé. Le deuxième paramètre optionnel mode indique les permissions du nouvel inœud. (Si le bit indiquant un répertoire est positionné dans le mode, la routine d'allocation fonctionnera différemment).
  • freeb bloc [compte]
        Marquer le bloc numéro bloc comme non alloué. Si le paramètre optionnel compte est présent, alors compte blocs, à partir du bloc numéro bloc seront marqués comme non alloués.
  • e2freefrag [-c morceau_ko]
        Faire un rapport de la fragmentation de l'espace libre sur le système de fichiers actuellement ouvert. Si une taille de morceau est fournie avec l'option -c, alors filefrag affichera le nombre de morceaux de taille morceau_ko disponibles dans le système de fichiers. La taille des morceaux morceau_ko, en kilooctets, doit être une puissance de deux et doit être supérieure à la taille des blocs du système de fichiers.
  • freei filespec [num]
        Libérer l'inœud indiqué par filespec. Si num est indiqué, libérer aussi les num-1 inœuds qui suivent celui qui a été précisé.
  • help
        Afficher une liste des commandes comprises par debugfs.
  • htree_dump filespec
        Décharger le répertoire indexé par hachage filespec, en montrant sa structure d'arbre.
  • icheck bloc ...
        Afficher une liste des inœuds qui utilisent au moins un des blocs fournis sur la ligne de commande.
  • imap filespec
        Afficher l'emplacement de la structure de données de l'inœud filespec (dans la table des inœuds).
  • init_filesys périphérique taille_bloc
        Créer un système de fichiers ext2 sur le périphérique avec une taille de bloc de taille_bloc. Notez que cela n'initialise pas complètement toutes les structures de données ; pour cela, utilisez mke2fs(8). Il ne s'agit que d'un appel à la bibliothèque bas niveau qui définit le superbloc et les descripteurs blocs.
  • kill_file filespec
        Désallouer l'inœud filespec et ses blocs. Notez que cela ne supprime aucune entrée de répertoire (s'il y en a) dans cet inœud. Voir la commande rm(1) si vous souhaitez supprimer un fichier.
  • lcd répertoire
        Changer le répertoire de travail du processus debugfs pour directory sur le système de fichiers natif.
  • ln filespec fichier_dest
        Créer un lien nommé fichier_dest vers filespec. Notez que ça n'ajuste pas le compteur de référence de l'inœud.
  • logdump [-acs] [-b bloc] [-i filespec] [-f fichier_journal] [fichier_sortie]
        Supprimer le contenu du journal d'un système ext3. Par défaut, l'inœud du journal est indiqué dans le superbloc. Cependant, on peut le redéfinir via l'option -i qui accepte un pointeur d'inœud pour préciser le journal à utiliser. Un fichier contenant le journal peut être pointé par l'option -f. Enfin, l'option -s utilise l'information sauvegardée sur le superbloc pour localiser le journal.

L'option -a force le programme logdump à afficher le contenu de tous les descripteurs de bloc. L'option -b fait apparaître toutes les entrées du journal qui référencent le bloc indiqué. L'option -c affichera le contenu des blocs de données sélectionnés par l'option -a et -b.

  • ls [-l] [-d] [-p] filespec
        Afficher la liste des fichiers dans le répertoire filespec. L'option -l listera les entrées en mode bavard. L'option -d affichera les fichiers supprimés, -p rendra la sortie plus facilement exploitable par des scripts, et en même temps prendra en charge les espaces et autres caractères non imprimables en fin de noms de fichiers.
  • modify_inode filespec
        Modifier le contenu de la structure de données de l'inœud filespec.
  • mkdir filespec
        Créer un répertoire.
  • mknod filespec [p|[[c|b] majeur mineur]]
        Créer un fichier de périphérique spécial (tuyau nommé, caractère ou périphérique de bloc). Si un caractère ou un périphérique de bloc doit être créé, il faut préciser les nombres majeur et mineur.
  • ncheck [-c] num_inode ...
        À partir d'une liste de numéros d'inœuds, afficher une liste de chemins vers ces inœuds. L'option -c activera la vérification des renseignements de type de fichier dans l'entrée du répertoire pour s'assurer qu'il correspond au type d'inœud.
  • open [-w] [-e] [-f] [-i] [-c] [-D] [-b taille_bloc] [-s superbloc] périphérique
        Ouvrir un système de fichiers en mode édition. L'option -f force l'ouverture, même s'il y a des caractéristiques inconnues ou incompatibles qui empêchent normalement le système d'être ouvert en mode exclusif. Les options -b, -c, -i, -s, -w et -D fonctionnent comme celles de debugfs.
  • punch filespec bloc_début [bloc_fin]
        Effacer les blocs de l'inœud dans l'intervalle entre bloc_début et bloc_fin. Si bloc_fin est omis, la commande fonctionnera comme la commande truncate : tous les blocs depuis bloc_début jusqu'à la fin du fichier seront désalloués.
  • symlink filespec cible
        Créer un lien symbolique.
  • pwd
        Afficher le répertoire de travail en cours.
  • quit
        Quitter debugfs.
  • rdump répertoire destination
        Envoyer récursivement le répertoire et tout son contenu (y compris les fichiers normaux, les liens symboliques et les autres répertoires) dans la destination nommée, qui devrait être un répertoire existant sur le système de fichiers natif.
  • rm chemin
        Défaire le lien chemin. Si cela entraîne la fin de toute référence pour l'inœud pointé par chemin, désalloue le fichier. Cette command fonctionne comme l'appel système unlink().
  • rmdir filespec
        Supprimer le répertoire filespec.
  • setb bloc [compte]
        Marquer le bloc numéro bloc comme alloué. Si l'argument optionnel compte est présent, alors les compte blocs à partir du bloc numéro bloc seront marqués comme alloués.
  • set_block_group num_groupe champ valeur
        Modifier le descripteur du bloc de groupe indiqué par num_groupe pour que le champ du descripteur de groupe champ prenne la valeur valeur.
  • seti filespec [num]
        Marquer l'inœud filespec comme utilisé dans la table des inœuds. Si num est indiqué, marquer de la même façon les num-1 inœuds qui suivent celui qui a été précisé.
  • set_inode_field filespec champ valeur
        Modifier l'inœud pointé par filespec pour que l'inœud champ prenne la valeur valeur. La liste des champs inœuds qui peuvent être configurés via cette commande peut être obtenue par la commande : set_inode_field -l.
  • set_mmp_value champ valeur
        Modifier les données de protection contre le montage multiple (mmp) pour que le champ champ prenne la valeur valeur. La liste des champs mmp qui peuvent être configurés via cette commande peut être obtenue par la commande : set_mmp_value -l.
  • set_super_value champ valeur
        Donner la valeur valeur au champ champ du superbloc. La liste des champs du superbloc qui peuvent être configurés via cette commande peut être affichée avec la commande : set_super_value -l.
  • show_super_stats [-h]
        Lister le contenu du superbloc et les descripteurs du groupe de blocs. Si l'argument -h est passé, seul le contenu du superbloc sera affiché.
  • stat filespec
        Afficher le contenu de la structure de l'inœud filespec.
  • testb bloc [compte]
        Regarder si le bloc numéro bloc est marqué comme alloué dans le bloc bitmap. Si l'argument optionnel compte est fourni, alors les compte blocs à partir du bloc numéro bloc seront testés.
  • testi filespec
        Tester si l'inœud filespec est marqué comme alloué dans la table des inœuds.
  • undel numéro_inœud [chemin]
        Annuler la suppression du numéro d'inœud (qui doit être entouré de crochets) de manière à ce que l'inœud et son bloc soient marqués « en cours d'utilisation », et peut aussi lier l'inœud récupéré au chemin indiqué. On devrait toujours lancer la commande e2fsck après avoir utilisé undel pour récupérer des fichiers.

Remarque : si vous récupérez un grand nombre de fichiers supprimés, il est possible que lier l'inœud à un répertoire entraîne l'augmentation de taille dudit répertoire, qui peut occuper des inœuds encore à récupérer. Il est donc plus sûr de récupérer les inœuds sans préciser un répertoire de destination, et ensuite, dans un répertoire précis, utiliser l'argument link de debugfs pour lier les inœuds au répertoire de destination, ou d'utiliser e2fsck pour vérifier le système de fichiers et de lier tous les inœuds récupérés au répertoire lost+found.

  • unlink chemin
        Supprimer le lien indiqué chemin pour un inœud. Notez que cela n'ajuste pas le compteur de références de l'inœud.
  • write fichier_source fichier_sortie
        Créer un fichier fichier_sortie dans le système de fichiers et copier le contenu de fichier_source dans le fichier destination.
  • zap_block [-f fichier] [-o position] [-l longueur] [-p motif] num_bloc
        Mettre à zéro ou remplir avec un motif de bits des portions d'un bloc à l'intérieur d'un fichier ou du système de fichiers.
  • zap_block [-f fichier] [-b bit] num_bloc
        Inverser les bits de portions d'un bloc d'un fichier ou du système de fichiers.

7. VARIABLES D'ENVIRONNEMENT

  • DEBUGFS_PAGER, PAGER
        Le programme debugfs affiche toujours les résultats des commandes show_super_stats, list_directory, show_inode_info, list_deleted_inodes et htree_dump dans un afficheur de texte. On peut indiquer explicitement lequel sera utilisé via la variable DEBUGFS_PAGER, et, si celle-ci est vide, par la variable PAGER.

Remarque : comme un afficheur de texte est toujours utilisé, l'afficheur de texte less(1) n'est pas particulièrement adapté, car il efface l'écran quand on le quitte. De nombreux utilisateurs préfèrent utiliser less(1) pour la plupart des cas, c'est pourquoi la variable DEBUGFS_PAGER existe en plus de PAGER.

8. AUTEUR

debugfs a été écrit par Theodore Ts'o <>.

9. VOIR AUSSI

dumpe2fs(8), tune2fs(8), e2fsck(8), mke2fs(8)

10. TRADUCTION

La traduction de cette page de manuel est maintenue par les membres de la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.