Scroll to navigation

DEBUGFS(8) System Manager's Manual DEBUGFS(8)

NOM

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

SYNOPSIS

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

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 périphérique bloc (par exemple, /dev/sdXX) ou un fichier contenant le système de fichiers.

OPTIONS

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.
Désactiver la vérification des sommes de contrôle des métadonnées. Cela peut être seulement utilisé si vous croyez que les données sont correctes en dépit des plaintes d’e2fsprogs.
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.
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 !
Utilisée 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.
Forcer l'utilisation pour le système de fichiers de la taille de bloc donnée (en octet), plutôt que détecter la taille correcte automatiquement. Cette option est rarement nécessaire. Elle est utilisée principalement quand le système de fichiers est gravement endommagé ou altéré.
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. Cette option est rarement nécessaire. Elle est utilisée principalement quand le système de fichiers est gravement endommagé ou altéré.
debugfs lira les commandes dans le fichier fichier_commande et les exécutera. Quand debugfs a fini d'exécuter les commandes, il quitte.
debugfs ouvrira le périphérique en utilisant les entrées/sorties directes (« Direct I/O »), outrepassant le cache de tampon. Notez que certains périphériques Linux, comme à l'heure actuelle « device mapper », ne prennent pas en charge les entrées/sorties directes.
Forcer debugfs à n'exécuter que la requête puis quitter.
Afficher le numéro de version de debugfs et quitter.
Avant d’écraser un bloc de système de fichiers, écrire le contenu du bloc dans un fichier d’annulations. Ce fichier peut être utilisé par e2undo(8) pour restaurer l’ancien contenu du système de fichiers si quelque chose se passe mal. Si une chaîne vide est passée comme argument du fichier d’annulations, le fichier d’annulations sera écrit dans un fichier appelé « debugfs-périphérique.e2undo » dans le répertoire précisé à l’aide de la variable d’environnement E2FSPROGS_UNDO_DIR.

AVERTISSEMENT : le fichier d’annulations ne peut pas être utilisé pour se remettre d'une coupure d'alimentation ou d'un plantage du système.

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 crochets obliques, 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 actuellement ouvert par debugfs. Sinon, le chemin est interprété relativement au répertoire de travail comme maintenu par debugfs. Cela peut être modifié à l'aide de la commande cd de debugfs.

COMMANDES

Voici une liste de commandes acceptées par debugfs :

Afficher les blocs utilisés par l'inœud filespec sur la sortie standard.
Afficher ou définir le numéro de bloc physique correspondant au numéro de bloc logique bloc_logique de l'inœud filespec. Si l’option -a est indiquée, essayer d’allouer un bloc si nécessaire.
Afficher le bloc du système de fichiers indiqué par num_bloc sur la console aux formats hexadécimal et ASCII. Si l'option -f est indiquée, le numéro de bloc est relatif au début du filespec donné. Si l’option -x est indiquée, le bloc est interprété comme un bloc d’attribut étendu et affiché pour montrer la structure des structures d’attribut étendu de données.
Afficher le contenu de l'inœud filespec sur la sortie standard.
Changer le répertoire de travail actuel à filespec.
Changer le répertoire racine et utiliser filespec à la place.
Fermer le système de fichiers actuellement ouvert. Si l'option -a est indiquée, écrire toute modification du superbloc et des descripteurs de groupe de blocs dans tous les superblocs de sauvegarde, et non pas seulement dans le superbloc maître.
Effacer le contenu de l'inœud filespec.
Copier le contenu de la structure d’un inœud dans inœud_source et l’utiliser pour surcharger la structure d’inœud dans inœud_destination.
Chercher fichier dans le répertoire filespec.
Marquer le système de fichiers comme sale (« dirty »), de sorte que les superblocs seront écrits en quittant. De plus, effacer l’indicateur valable de superbloc ou le régler si -clean est indiqué.
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.
Afficher les valeurs de champ MMP (protection contre des montages multiples). Si bloc_mmp est indiqué, alors vérifier et fournir les valeurs MMP du numéro de bloc indiqué. Sinon, utiliser le champ s_mmp_block dans le superbloc pour localiser et utiliser le bloc MMP existant.
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.
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 faite par les fonctions de la bibliothèque des extents ; ils 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 ne pas indiquer de problème ou de corruption du système de fichiers.)
Fournir les blocs inutilisés contenant des octets différents de NULL.
Retrouver la valeur de l’attribut étendu nom_attr dans le fichier filespec et l’écrire soit sur la sortie standard, soit dans fichier_sortie.
Afficher les attributs étendus associés au fichier filespec sur la sortie standard.
Définir la valeur de l’attribut étendu nom_attr dans le fichier filespec à la valeur de chaîne valeur_attr ou la lire à partir de fichier_entrée.
Supprimer l’attribut étendu nom_attr du fichier filespec.
Développer le répertoire filespec.
Allouer et mapper les blocs non initialisés dans filespec, situés entre les blocs logiques bloc_début et bloc fin (inclus). Si bloc_fin n’est pas indiqué, cette fonction mappe jusqu’à ce qu’il n’y ait plus de blocs disque libres ou jusqu’à ce que la taille maximale de fichier soit atteinte. Les mappages existants sont délaissés.
Activer ou désactiver différentes fonctionnalités d'un système de fichiers dans son superbloc. Après avoir activé ou désactivé une fonctionnalité, afficher l'état actuel de l'ensemble des fonctionnalités du système de fichiers.
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.
Trouver les premiers nombre blocs libres, en commençant par objectif et les allouer. Aussi disponible sous le nom ffb.
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 situé. 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). Aussi disponible sous le nom ffi.
Marquer le bloc numéro bloc comme non alloué. Si le paramètre optionnel nombre est présent, alors nombre blocs à partir du bloc numéro bloc seront marqués comme non alloués.
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.
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é.
Afficher les informations de quota pour le type de quota précisé (utilisateur, groupe ou projet) et l’ID.
Afficher une liste des commandes comprises par debugfs.
Décharger le répertoire indexé par hachage filespec, en montrant sa structure d'arbre.
Afficher une liste des inœuds qui utilisent au moins un des blocs fournis sur la ligne de commande.
Afficher le contenu de la structure de données d’inœud aux formats hexadécimal 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 supplémentaire d’inœud qui est utilisé pour stocker en interne les attributs étendus. L’option -x fait que la commande fournit les attributs étendus et interprétés de l’espace supplémentaire d’inœud. Cela est utile pour le débogage des inœuds altérés contenant des attributs étendus.
Afficher l'emplacement de la structure de données de l'inœud filespec (dans la table des inœuds).
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 de bloc.
Fermer le journal ouvert.
Ouvrir le journal en lecture et écriture. Le calcul de la somme de contrôle du journal peut être activée avec l’option -c. Les formats 2 et 3 de somme de contrôle peuvent être sélectionnés avec l’option -v. Un journal externe peut être chargé à partir de journal_ext.
Refaire toutes les transactions du journal ouvert.
Écrire une transaction dans le journal ouvert. La liste de blocs à écrire doit être fournie sous forme de blocs séparés par des virgules. Les blocs eux-mêmes doivent être lisibles depuis fichier. Une liste de blocs à annuler peut être fournie dans une liste annulation avec la virgule comme séparateur. Par défaut, un enregistrement de validation est écrit à la fin. L’indicateur -c écrit une transaction non validée.
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.
Changer le répertoire de travail du processus debugfs pour répertoire sur le système de fichiers natif.
Afficher les informations de quota pour le type de quota précisé (utilisateur, groupe ou projet).
Créer un lien dur nommé fichier_dest vers filespec. Notez que ça n'ajuste pas le compteur de références de l'inœud.
Décharger le contenu du journal d'un système ext3. Par défaut, décharger l'inœud du journal qui est indiqué dans le superbloc. Cependant, on peut le redéfinir à l’aide de l'option -i qui décharge le journal de l'inœud interne indiqué par filespec. Un fichier standard contenant le journal peut être pointé 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 le programme logdump à afficher le contenu de tous les descripteurs de bloc. L'option -b fait que logdump affiche tous les enregistrements de journal concernant le bloc indiqué. L'option -c affichera le contenu des blocs de données sélectionnés par les options -a et -b.
L’option -O fait que logdump affiche les anciennes entrées (avec point de contrôle) du journal. Cela peut être utilisé pour essayer de suivre les problèmes de journal même après que le journal ait été rejoué.
Afficher la liste des fichiers dans le répertoire filespec. L'option -c fait que les sommes de contrôle de bloc de répertoire (si présentes) seront affichées. L’option -d fait que les entrées seront supprimées du répertoire. L'option -l affichera les entrées en mode plus détaillé. L’option -p rendra la sortie plus facilement exploitable par des scripts et, en même temps, rendra plus clair quand il y a des espaces et d’autres caractères non imprimables à la fin des noms de fichier. L’option -r obligera l’affichage du nom de fichier, même s’il est chiffré.
Dresser la liste des inœuds supprimés, éventuellement limitée à ceux supprimés dans les nb_secondes dernières secondes. Aussi disponible sous le nom lsdel.
Cette commande était utile pour la récupération après un effacement accidentel de fichiers sur des systèmes de fichiers ext2. Malheureusement, on ne peut pas s'en servir dans ce but sur des systèmes de fichiers ext3 ou ext4, puisque les blocs de données d'un inœud ne sont plus disponibles une fois que l'inœud a été libéré.
Modifier le contenu de la structure de données de l'inœud filespec. Aussi disponible sous le nom mi
Créer un répertoire.
Créer un fichier de périphérique spécial (tube nommé, périphérique caractère ou bloc). Si un périphérique caractère ou bloc doit être créé, il faut préciser les nombres majeur et mineur de périphérique.
À 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.
Ouvrir un système de fichiers en mode édition. L'option -f force l'ouverture, même s'il y a des fonctionnalités inconnues ou incompatibles qui empêchent normalement le système d'être ouvert. Les options -b, -c, -d, -i, -s, -w et -D fonctionnent comme celles de la ligne de commande de debugfs.
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 une commande de troncature : tous les blocs depuis bloc_début jusqu'à la fin du fichier seront désalloués.
Créer un lien symbolique.
Afficher le répertoire de travail en cours.
Quitter debugfs.
Envoyer récursivement le ou les répertoires et tout leur 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.
Défaire le lien chemin. Si cela entraîne la fin de toute référence pour l'inœud pointé par chemin, désallouer le fichier. Cette commande fonctionne comme l'appel système unlink().
Supprimer le répertoire filespec.
Marquer le bloc numéro bloc comme alloué. Si l'argument optionnel nombre est présent, alors les nombre de blocs à partir du bloc numéro bloc seront marqués comme alloués.
Modifier le descripteur du groupe de blocs indiqué par num_groupe pour que le champ du descripteur de groupe champ prenne la valeur valeur. Aussi disponible sous le nom set_bg.
Régler l’heure courante en secondes depuis l’Époque Unix lors de la définition des champs du système de fichiers.
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é.
Modifier l'inœud pointé par filespec pour que le champ d'inœud champ prenne la valeur valeur. La liste des champs d’inœud qui peuvent être configurés à l’aide de cette commande peut être obtenue par la commande set_inode_field -l. Aussi disponible sous le nom sif.
Modifier les données de protection contre le montage multiple (MMP) pour que le champ MMP champ prenne la valeur valeur. La liste des champs MMP qui peuvent être configurés au moyen de cette commande peut être obtenue par la commande set_mmp_value -l. Aussi disponible sous le nom smmp.
Donner la valeur valeur au champ champ du superbloc. La liste des champs du superbloc qui peuvent être configurés à l’aide de cette commande peut être affichée avec la commande set_super_value -l. Aussi disponible sous le nom ssv.
Afficher les paramètres de debugfs tels que les informations à propos du système de fichiers actuellement ouvert.
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é. Disponible aussi sous le nom stats.
Afficher le contenu de la structure de l'inœud filespec.
Afficher les fonctionnalités gérées par cette version de debugfs.
Regarder si le bloc numéro bloc est marqué comme alloué dans la table de blocs. Si l'argument optionnel nombre est fourni, alors les nombre blocs à partir du bloc numéro bloc seront testés.
Tester si l'inœud filespec est marqué comme alloué dans la table des inœuds.
Annuler la suppression du numéro d'inœud (qui doit être entouré de crochets) de manière à ce que l'inœud et ses blocs soient marqués « en cours d'utilisation » et facultativement 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 nécessite l'augmentation de la taille du répertoire, ce qui pourrait allouer un bloc qui était utilisé par des fichiers qui soient encore à récupérer. Il est donc plus sûr de récupérer tous les inœuds sans préciser un chemin de destination, et ensuite, dans une passe séparée, utiliser l'argument link de debugfs pour lier les inœuds au chemin de destination, ou d'utiliser e2fsck pour vérifier le système de fichiers et lier tous les inœuds récupérés au répertoire lost+found.
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.
Copier le contenu du fichier_source dans le fichier nommé fichier_sortie nouvellement créé dans le système de fichiers.
Écraser le bloc indiqué par num_bloc avec des octets NULL, ou si l'option -p est indiquée, utiliser l'octet précisé par le motif. Si -f est indiqué, alors le numéro de bloc num_bloc est relatif au début du fichier donné par filespec. Les options -o et -l limitent l’intervalle d’octets à effacer au domaine caractérisé par la position et la longueur relatives au début du bloc.
Basculer les bits de portions d'un bloc num_bloc physique. Si l'option -f est indiquée, alors num_bloc est un bloc logique relatif au début de filespec.

VARIABLES D'ENVIRONNEMENT

Le programme debugfs transmet toujours les résultats 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 utilisé peut être explicitement indiqué par la variable d’environnement DEBUGFS_PAGER et, si celle-ci n’est pas définie, par la variable d’environnement 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 avant d’afficher le résultat de la commande et efface l’écran quand l’afficheur quitte. De nombreux utilisateurs préfèrent utiliser less(1) pour la plupart des utilisations, c'est pourquoi la variable DEBUGFS_PAGER existe pour écraser la variable d’environnement PAGER plus généraliste.

AUTEUR

debugfs a été écrit par Theodore Ts'o <tytso@mit.edu>.

VOIR AUSSI

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

TRADUCTION

La traduction française de cette page de manuel a été créée par Gérard Delafond <gerard@delafond.org>, Frédéric Delanoy <delanoy_f@yahoo.com>, Thierry Vignaud <tvignaud@mandriva.com>, Sébastien Blanchet, Emmanuel Araman <Emmanuel@araman.org>, Éric Piel <eric.piel@tremplin-utc.net>, Nicolas François <nicolas.francois@centraliens.net>, Romain Doumenc <rd6137@gmail.com>, David Prévot <david@tilapin.org>, Cédric Boutillier <cedric.boutillier@gmail.com> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

Septembre 2022 E2fsprogs version 1.46.6-rc1