DEBUGFS(8) System Manager's Manual DEBUGFS(8) NOM debugfs - Debogueur pour systemes de fichiers ext2/ext3/ext4 SYNOPSIS debugfs [ -DVwcin ] [ -b taille_bloc ] [ -s superbloc ] [ -f fichier_commande ] [ -R requete ] [ -d peripherique_source ] [ -z fichier_annulations] [ peripherique ] DESCRIPTION Le programme debugfs est un debogueur interactif de systeme de fichiers. Il peut servir a examiner et changer l'etat d'un systeme de fichiers ext2, ext3 ou ext4. peripherique est un peripherique bloc (par exemple, /dev/sdXX) ou un fichier contenant le systeme de fichiers. OPTIONS -w Indiquer que le systeme de fichiers doit etre ouvert en lecture-ecriture. Sans cette option, le systeme de fichiers est ouvert en lecture seule. -n Desactiver la verification des sommes de controle des metadonnees. Cela peut etre seulement utilise si vous croyez que les donnees sont correctes en depit des plaintes d'e2fsprogs. -c Indiquer que le systeme de fichiers doit etre ouvert en mode catastrophe, ce qui fait que les tables d'inoeuds et de groupes ne sont pas lues au depart. Cela peut etre utile pour les systemes de fichiers fortement corrompus, mais de ce fait, le mode catastrophe force l'ouverture en mode lecture seule du systeme de fichiers. -i Indiquer que peripherique represente un fichier image ext2 cree 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 inoeuds et la table des inoeuds, beaucoup de commandes de debugfs ne fonctionneront pas correctement. Attention : aucune verification n'est effectuee et debugfs peut echouer de differentes facons si les commandes comme ls, dump, etc., sont utilisees sans indiquer le peripherique_source en utilisant l'option -d. debugfs est un outil de debogage. Il est fourni brut de fonderie ! -d peripherique_source Utilisee avec l'option -i, cette option permet d'indiquer qu'un peripherique_source doit etre utilise pour la lecture des blocs qui ne se trouvent pas dans le fichier image ext2. Cela inclut les donnees, les repertoires et les blocs indirects. -b taille_bloc Forcer l'utilisation pour le systeme de fichiers de la taille de bloc donnee (en octet), plutot que detecter la taille correcte automatiquement. Cette option est rarement necessaire. Elle est utilisee principalement quand le systeme de fichiers est gravement endommage ou altere. -s superbloc Le superbloc du systeme de fichiers sera lu a partir du bloc dont le numero est donne, au lieu d'utiliser le superbloc primaire (situe 1024 octets apres le debut du systeme de fichiers). Si vous utilisez l'option -s, vous devez egalement fournir la taille des blocs du systeme de fichiers avec l'option -b. Cette option est rarement necessaire. Elle est utilisee principalement quand le systeme de fichiers est gravement endommage ou altere. -f fichier_commande debugfs lira les commandes dans le fichier fichier_commande et les executera. Quand debugfs a fini d'executer les commandes, il quitte. -D debugfs ouvrira le peripherique en utilisant les entrees/sorties directes (<< Direct I/O >>), outrepassant le cache de tampon. Notez que certains peripheriques Linux, comme a l'heure actuelle << device mapper >>, ne prennent pas en charge les entrees/sorties directes. -R requete Forcer debugfs a n'executer que la requete puis quitter. -V Afficher le numero de version de debugfs et quitter. -z fichier_annulations Avant d'ecraser un bloc de systeme de fichiers, ecrire le contenu du bloc dans un fichier d'annulations. Ce fichier peut etre utilise par e2undo(8) pour restaurer l'ancien contenu du systeme de fichiers si quelque chose se passe mal. Si une chaine vide est passee comme argument du fichier d'annulations, le fichier d'annulations sera ecrit dans un fichier appele << debugfs-peripherique.e2undo >> dans le repertoire precise a l'aide de la variable d'environnement E2FSPROGS_UNDO_DIR. AVERTISSEMENT : le fichier d'annulations ne peut pas etre utilise pour se remettre d'une coupure d'alimentation ou d'un plantage du systeme. INDIQUER DES FICHIERS Beaucoup de commandes de debugfs prennent un parametre filespec pour indiquer un inoeud (par opposition a un chemin) dans le systeme de fichiers qui est actuellement ouvert par debugfs. Le parametre filespec peut etre indique de deux facons. La premiere est un numero d'inoeud entre des crochets obliques, par exemple <2>. La seconde est un chemin ; si le chemin commence par une barre oblique (<< / >>), alors il est interprete relativement a la racine du systeme de fichiers qui est actuellement ouvert par debugfs. Sinon, le chemin est interprete relativement au repertoire de travail comme maintenu par debugfs. Cela peut etre modifie a l'aide de la commande cd de debugfs. COMMANDES Voici une liste de commandes acceptees par debugfs : blocks filespec Afficher les blocs utilises par l'inoeud filespec sur la sortie standard. bmap [ -a ] filespec bloc_logique [bloc_physique] Afficher ou definir le numero de bloc physique correspondant au numero de bloc logique bloc_logique de l'inoeud filespec. Si l'option -a est indiquee, essayer d'allouer un bloc si necessaire. block_dump '[ -x ] [-f filespec] num_bloc Afficher le bloc du systeme de fichiers indique par num_bloc sur la console aux formats hexadecimal et ASCII. Si l'option -f est indiquee, le numero de bloc est relatif au debut du filespec donne. Si l'option -x est indiquee, le bloc est interprete comme un bloc d'attribut etendu et affiche pour montrer la structure des structures d'attribut etendu de donnees. cat filespec Afficher le contenu de l'inoeud filespec sur la sortie standard. cd filespec Changer le repertoire de travail actuel a filespec. chroot filespec Changer le repertoire racine et utiliser filespec a la place. close [-a] Fermer le systeme de fichiers actuellement ouvert. Si l'option -a est indiquee, ecrire toute modification du superbloc et des descripteurs de groupe de blocs dans tous les superblocs de sauvegarde, et non pas seulement dans le superbloc maitre. clri filespec Effacer le contenu de l'inoeud filespec. copy_inode inoeud_source inoeud_destination Copier le contenu de la structure d'un inoeud dans inoeud_source et l'utiliser pour surcharger la structure d'inoeud dans inoeud_destination. dirsearch filespec fichier Chercher fichier dans le repertoire filespec. dirty [-clean] Marquer le systeme de fichiers comme sale (<< dirty >>), de sorte que les superblocs seront ecrits en quittant. De plus, effacer l'indicateur valable de superbloc ou le regler si -clean est indique. dump [-p] filespec fichier_sortie Fournir le contenu de l'inoeud filespec dans le fichier de sortie fichier_sortie. Avec l'option -p, le proprietaire, le groupe et les informations de permission de fichier_sortie correspondront a ceux de filespec. dump_mmp [bloc_mmp] Afficher les valeurs de champ MMP (protection contre des montages multiples). Si bloc_mmp est indique, alors verifier et fournir les valeurs MMP du numero de bloc indique. Sinon, utiliser le champ s_mmp_block dans le superbloc pour localiser et utiliser le bloc MMP existant. dx_hash [-h hash_alg] [-s hash_graine] fichier Calculer le hachage du repertoire du fichier. Le nom de l'algorithme de hachage precise par -h peut prendre l'une des valeurs legacy, half_md4 ou tea. La graine de hachage precisee avec l'option -s doit etre au format UUID. dump_extents [-n] [-l] filespec Afficher l'arbre d'extents de l'inoeud filespec. Avec l'option -n, dump_extents n'affichera que les noeuds 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 noeud interne est une estimation faite par les fonctions de la bibliotheque des extents ; ils ne sont pas stockes dans les structures de donnees du systeme de fichiers. Ainsi, les valeurs affichees peuvent ne pas etre precises et ne pas indiquer de probleme ou de corruption du systeme de fichiers.) dump_unused Fournir les blocs inutilises contenant des octets differents de NULL. ea_get [-f fichier_sortie]|[-xVC] [-r] filespec nom_attr Retrouver la valeur de l'attribut etendu nom_attr dans le fichier filespec et l'ecrire soit sur la sortie standard, soit dans fichier_sortie. ea_list filespec Afficher les attributs etendus associes au fichier filespec sur la sortie standard. ea_set [-f fichier_entree] [-r] filespec nom_attr valeur_attr Definir la valeur de l'attribut etendu nom_attr dans le fichier filespec a la valeur de chaine valeur_attr ou la lire a partir de fichier_entree. ea_rm filespec nom_attr... Supprimer l'attribut etendu nom_attr du fichier filespec. expand_dir filespec Developper le repertoire filespec. fallocate filespec bloc_debut [bloc_fin] Allouer et mapper les blocs non initialises dans filespec, situes entre les blocs logiques bloc_debut et bloc fin (inclus). Si bloc_fin n'est pas indique, cette fonction mappe jusqu'a ce qu'il n'y ait plus de blocs disque libres ou jusqu'a ce que la taille maximale de fichier soit atteinte. Les mappages existants sont delaisses. feature [fonctionnalite_sf] [-fonctionnalite_sf] ... Activer ou desactiver differentes fonctionnalites d'un systeme de fichiers dans son superbloc. Apres avoir active ou desactive une fonctionnalite, afficher l'etat actuel de l'ensemble des fonctionnalites du systeme de fichiers. filefrag [-d] [-v] [-r] filespec Afficher le nombre d'extents contigus dans filespec. Si filespec est un repertoire et que l'option -d n'est pas indiquee, filefrag affichera le nombre d'extents contigus pour chaque fichier du repertoire. Avec l'option -v, filefrag affichera sous forme de tableau la liste des extents contigus du fichier. Avec l'option -r, filefrag sera execute recursivement sur les elements du repertoire. find_free_block [nombre [objectif]] Trouver les premiers nombre blocs libres, en commencant par objectif et les allouer. Aussi disponible sous le nom ffb. find_free_inode [rep [mode]] Trouver un inoeud libre et l'allouer. S'il est present, rep indique le numero d'inoeud du repertoire dans lequel l'inoeud doit etre situe. Le deuxieme parametre optionnel mode indique les permissions du nouvel inoeud. (Si le bit indiquant un repertoire est positionne dans le mode, la routine d'allocation fonctionnera differemment). Aussi disponible sous le nom ffi. freeb bloc [nombre] Marquer le bloc numero bloc comme non alloue. Si le parametre optionnel nombre est present, alors nombre blocs a partir du bloc numero bloc seront marques comme non alloues. e2freefrag [-c morceau_ko] Faire un rapport de la fragmentation de l'espace libre sur le systeme 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 systeme de fichiers. La taille des morceaux morceau_ko, en kilooctets, doit etre une puissance de deux et doit etre superieure a la taille des blocs du systeme de fichiers. freei filespec [num] Liberer l'inoeud indique par filespec. Si num est indique, liberer aussi les num-1 inoeuds qui suivent celui qui a ete precise. get_quota quota_type ID Afficher les informations de quota pour le type de quota precise (utilisateur, groupe ou projet) et l'ID. help Afficher une liste des commandes comprises par debugfs. htree_dump filespec Decharger le repertoire indexe par hachage filespec, en montrant sa structure d'arbre. icheck bloc ... Afficher une liste des inoeuds qui utilisent au moins un des blocs fournis sur la ligne de commande. inode_dump [-b]|[-e]|[-x] filespec Afficher le contenu de la structure de donnees d'inoeud aux formats hexadecimal et ASCII. L'option -b fait que la commande fournit seulement le contenu du tableau i_blocks. L'option -e fait que la commande fournit seulement le contenu de l'espace supplementaire d'inoeud qui est utilise pour stocker en interne les attributs etendus. L'option -x fait que la commande fournit les attributs etendus et interpretes de l'espace supplementaire d'inoeud. Cela est utile pour le debogage des inoeuds alteres contenant des attributs etendus. imap filespec Afficher l'emplacement de la structure de donnees de l'inoeud filespec (dans la table des inoeuds). init_filesys peripherique taille_bloc Creer un systeme de fichiers ext2 sur le peripherique avec une taille de bloc de taille_bloc. Notez que cela n'initialise pas completement toutes les structures de donnees ; pour cela, utilisez mke2fs(8). Il ne s'agit que d'un appel a la bibliotheque bas niveau qui definit le superbloc et les descripteurs de bloc. journal_close Fermer le journal ouvert. journal_open [-c] [-v ver] [-f journal_ext] Ouvrir le journal en lecture et ecriture. Le calcul de la somme de controle du journal peut etre activee avec l'option -c. Les formats 2 et 3 de somme de controle peuvent etre selectionnes avec l'option -v. Un journal externe peut etre charge a partir de journal_ext. journal_run Refaire toutes les transactions du journal ouvert. journal_write [-b blocs] [-r annulation] [-c] fichier Ecrire une transaction dans le journal ouvert. La liste de blocs a ecrire doit etre fournie sous forme de blocs separes par des virgules. Les blocs eux-memes doivent etre lisibles depuis fichier. Une liste de blocs a annuler peut etre fournie dans une liste annulation avec la virgule comme separateur. Par defaut, un enregistrement de validation est ecrit a la fin. L'indicateur -c ecrit une transaction non validee. kill_file filespec Desallouer l'inoeud filespec et ses blocs. Notez que cela ne supprime aucune entree de repertoire (s'il y en a) dans cet inoeud. Voir la commande rm(1) si vous souhaitez supprimer un fichier. lcd repertoire Changer le repertoire de travail du processus debugfs pour repertoire sur le systeme de fichiers natif. list_quota type_quota Afficher les informations de quota pour le type de quota precise (utilisateur, groupe ou projet). ln filespec fichier_dest Creer un lien dur nomme fichier_dest vers filespec. Notez que ca n'ajuste pas le compteur de references de l'inoeud. logdump [-acsOS] [-b bloc] [-n num_trans ] [-i filespec] [-f fichier_journal] [fichier_sortie] Decharger le contenu du journal d'un systeme ext3. Par defaut, decharger l'inoeud du journal qui est indique dans le superbloc. Cependant, on peut le redefinir a l'aide de l'option -i qui decharge le journal de l'inoeud interne indique par filespec. Un fichier standard contenant le journal peut etre pointe par l'option -f. Enfin, l'option -s utilise l'information de sauvegarde sur le superbloc pour localiser le journal. L'option -S fait que logdump affiche le contenu du superbloc de journal. L'option -a force logdump a afficher le contenu de tous les descripteurs de bloc. L'option -b fait que logdump affiche tous les enregistrements de journal concernant le bloc indique. L'option -c affichera le contenu des blocs de donnees selectionnes par les options -a et -b. L'option -O fait que logdump affiche les anciennes entrees (avec point de controle) du journal. Cela peut etre utilise pour essayer de suivre les problemes de journal meme apres que le journal ait ete rejoue. L'option -n fait que logdump continue a coller un bloc de journal depourvu de nombre magique. Il s'arretera plutot seulement quand le journal complet est affiche ou apres des transactions num_trans. ls [-l] [-c] [-d] [-p] [-r] filespec Afficher la liste des fichiers dans le repertoire filespec. L'option -c fait que les sommes de controle de bloc de repertoire (si presentes) seront affichees. L'option -d fait que les entrees seront supprimees du repertoire. L'option -l affichera les entrees en mode plus detaille. L'option -p rendra la sortie plus facilement exploitable par des scripts et, en meme temps, rendra plus clair quand il y a des espaces et d'autres caracteres non imprimables a la fin des noms de fichier. L'option -r obligera l'affichage du nom de fichier, meme s'il est chiffre. list_deleted_inodes [nb_secondes] Dresser la liste des inoeuds supprimes, eventuellement limitee a ceux supprimes dans les nb_secondes dernieres secondes. Aussi disponible sous le nom lsdel. Cette commande etait utile pour la recuperation apres un effacement accidentel de fichiers sur des systemes de fichiers ext2. Malheureusement, on ne peut pas s'en servir dans ce but sur des systemes de fichiers ext3 ou ext4, puisque les blocs de donnees d'un inoeud ne sont plus disponibles une fois que l'inoeud a ete libere. modify_inode filespec Modifier le contenu de la structure de donnees de l'inoeud filespec. Aussi disponible sous le nom mi mkdir filespec Creer un repertoire. mknod filespec [p|[[c|b] majeur mineur]] Creer un fichier de peripherique special (tube nomme, peripherique caractere ou bloc). Si un peripherique caractere ou bloc doit etre cree, il faut preciser les nombres majeur et mineur de peripherique. ncheck [-c] num_inoeud ... A partir d'une liste de numeros d'inoeuds, afficher une liste de chemins vers ces inoeuds. L'option -c activera la verification des renseignements de type de fichier dans l'entree du repertoire pour s'assurer qu'il correspond au type d'inoeud. open [-w] [-e] [-f] [-i] [-c] [-D] [-b taille_bloc] [-d fichier_image] [-s superbloc] [-z fichier_annulations] peripherique Ouvrir un systeme de fichiers en mode edition. L'option -f force l'ouverture, meme s'il y a des fonctionnalites inconnues ou incompatibles qui empechent normalement le systeme d'etre ouvert. Les options -b, -c, -d, -i, -s, -w et -D fonctionnent comme celles de la ligne de commande de debugfs. punch filespec bloc_debut [bloc_fin] Effacer les blocs de l'inoeud dans l'intervalle entre bloc_debut et bloc_fin. Si bloc_fin est omis, la commande fonctionnera comme une commande de troncature : tous les blocs depuis bloc_debut jusqu'a la fin du fichier seront desalloues. symlink filespec cible Creer un lien symbolique. pwd Afficher le repertoire de travail en cours. quit Quitter debugfs. rdump repertoire [...] destination Envoyer recursivement le ou les repertoires et tout leur contenu (y compris les fichiers normaux, les liens symboliques et les autres repertoires) dans la destination nommee qui devrait etre un repertoire existant sur le systeme de fichiers natif. rm chemin Defaire le lien chemin. Si cela entraine la fin de toute reference pour l'inoeud pointe par chemin, desallouer le fichier. Cette commande fonctionne comme l'appel systeme unlink(). rmdir filespec Supprimer le repertoire filespec. setb bloc [nombre] Marquer le bloc numero bloc comme alloue. Si l'argument optionnel nombre est present, alors les nombre de blocs a partir du bloc numero bloc seront marques comme alloues. set_block_group num_groupe champ valeur Modifier le descripteur du groupe de blocs indique par num_groupe pour que le champ du descripteur de groupe champ prenne la valeur valeur. Aussi disponible sous le nom set_bg. set_current_time time Regler l'heure courante en secondes depuis l'Epoque Unix lors de la definition des champs du systeme de fichiers. seti filespec [num] Marquer l'inoeud filespec comme utilise dans la table des inoeuds. Si num est indique, marquer de la meme facon les num-1 inoeuds qui suivent celui qui a ete precise. set_inode_field filespec champ valeur Modifier l'inoeud pointe par filespec pour que le champ d'inoeud champ prenne la valeur valeur. La liste des champs d'inoeud qui peuvent etre configures a l'aide de cette commande peut etre obtenue par la commande set_inode_field -l. Aussi disponible sous le nom sif. set_mmp_value champ valeur Modifier les donnees de protection contre le montage multiple (MMP) pour que le champ MMP champ prenne la valeur valeur. La liste des champs MMP qui peuvent etre configures au moyen de cette commande peut etre obtenue par la commande set_mmp_value -l. Aussi disponible sous le nom smmp. set_super_value champ valeur Donner la valeur valeur au champ champ du superbloc. La liste des champs du superbloc qui peuvent etre configures a l'aide de cette commande peut etre affichee avec la commande set_super_value -l. Aussi disponible sous le nom ssv. show_debugfs_params Afficher les parametres de debugfs tels que les informations a propos du systeme de fichiers actuellement ouvert. show_super_stats [-h] Lister le contenu du superbloc et les descripteurs du groupe de blocs. Si l'argument -h est passe, seul le contenu du superbloc sera affiche. Disponible aussi sous le nom stats. stat filespec Afficher le contenu de la structure de l'inoeud filespec. supported_features Afficher les fonctionnalites gerees par cette version de debugfs. testb bloc [nombre] Regarder si le bloc numero bloc est marque comme alloue dans la table de blocs. Si l'argument optionnel nombre est fourni, alors les nombre blocs a partir du bloc numero bloc seront testes. testi filespec Tester si l'inoeud filespec est marque comme alloue dans la table des inoeuds. undel [chemin] Annuler la suppression du numero d'inoeud (qui doit etre entoure de crochets) de maniere a ce que l'inoeud et ses blocs soient marques << en cours d'utilisation >> et facultativement lier l'inoeud recupere au chemin indique. On devrait toujours lancer la commande e2fsck apres avoir utilise undel pour recuperer des fichiers. Remarque : si vous recuperez un grand nombre de fichiers supprimes, il est possible que lier l'inoeud a un repertoire necessite l'augmentation de la taille du repertoire, ce qui pourrait allouer un bloc qui etait utilise par des fichiers qui soient encore a recuperer. Il est donc plus sur de recuperer tous les inoeuds sans preciser un chemin de destination, et ensuite, dans une passe separee, utiliser l'argument link de debugfs pour lier les inoeuds au chemin de destination, ou d'utiliser e2fsck pour verifier le systeme de fichiers et lier tous les inoeuds recuperes au repertoire lost+found. unlink chemin Supprimer le lien indique chemin pour un inoeud. Notez que cela n'ajuste pas le compteur de references de l'inoeud. write fichier_source fichier_sortie Copier le contenu du fichier_source dans le fichier nomme fichier_sortie nouvellement cree dans le systeme de fichiers. zap_block [-f filespec] [-o position] [-l longueur] [-p motif] num_bloc Ecraser le bloc indique par num_bloc avec des octets NULL, ou si l'option -p est indiquee, utiliser l'octet precise par le motif. Si -f est indique, alors le numero de bloc num_bloc est relatif au debut du fichier donne par filespec. Les options -o et -l limitent l'intervalle d'octets a effacer au domaine caracterise par la position et la longueur relatives au debut du bloc. zap_block [-f filespec] [-b bit] num_bloc Basculer les bits de portions d'un bloc num_bloc physique. Si l'option -f est indiquee, alors num_bloc est un bloc logique relatif au debut de filespec. VARIABLES D'ENVIRONNEMENT DEBUGFS_PAGER, PAGER Le programme debugfs transmet toujours les resultats de certaines commandes dans un afficheur en mode terminal (pager). Ces commandes incluent show_super_stats (stats), list_directory (ls), show_inode_info (stat), list_deleted_inodes (lsdel) et htree_dump. L'afficheur utilise peut etre explicitement indique par la variable d'environnement DEBUGFS_PAGER et, si celle-ci n'est pas definie, par la variable d'environnement PAGER. Remarque : comme un afficheur de texte est toujours utilise, l'afficheur de texte less(1) n'est pas particulierement adapte, car il efface l'ecran avant d'afficher le resultat de la commande et efface l'ecran quand l'afficheur quitte. De nombreux utilisateurs preferent utiliser less(1) pour la plupart des utilisations, c'est pourquoi la variable DEBUGFS_PAGER existe pour ecraser la variable d'environnement PAGER plus generaliste. AUTEUR debugfs a ete ecrit par Theodore Ts'o . VOIR AUSSI dumpe2fs(8), tune2fs(8), e2fsck(8), mke2fs(8), ext4(5) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Gerard Delafond , Frederic Delanoy , Thierry Vignaud , Sebastien Blanchet, Emmanuel Araman , Eric Piel , Nicolas Francois , Romain Doumenc , David Prevot , Cedric Boutillier et Jean-Paul Guillonneau Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . E2fsprogs version 1.47.0 Fevrier 2023 DEBUGFS(8)