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

-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.
-n
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.
-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é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.
-b taille_bloc
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é.
-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. Cette option est rarement nécessaire. Elle est utilisée principalement quand le système de fichiers est gravement endommagé ou altéré.
-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 quitte.
-D
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.
-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.
-z fichier_annulations
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 :
blocks filespec
Afficher les blocs utilisés par l'inœud filespec sur la sortie standard.
bmap [ -a ] filespec bloc_logique [bloc_physique]
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.
block_dump '[ -x ] [-f filespec] num_bloc
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.
cat filespec
Afficher le contenu de l'inœud filespec sur la sortie standard.
cd filespec
Changer le répertoire de travail actuel à filespec.
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 groupe de blocs dans tous les superblocs de sauvegarde, et non pas seulement dans le superbloc maître.
clri filespec
Effacer le contenu de l'inœud filespec.
copy_inode inœud_source inœud_destination
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.
dirsearch filespec fichier
Chercher fichier dans le répertoire filespec.
dirty [-clean]
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é.
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 [bloc_mmp]
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.
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
Dump the extent tree of the inode filespec. The -n flag will cause dump_extents to only display the interior nodes in the extent tree. The -l flag will cause dump_extents to only display the leaf nodes in the extent tree.
(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.)
dump_unused
Fournir les blocs inutilisés contenant des octets différents de NULL.
ea_get [-f fichier_sortie]|[-xVC] [ -r] filespec nom_attr
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.
ea_list filespec
Afficher les attributs étendus associés au fichier filespec sur la sortie standard.
ea_set [-f fichier_entrée] [-r] filespec nom_attr valeur_attr
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.
ea_rm filespec nom_attr...
Supprimer l’attribut étendu nom_attr du fichier filespec.
expand_dir filespec
Développer le répertoire filespec.
fallocate filespec bloc_début [bloc_fin]
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.
feature [fonctionnalité_sf] [-fonctionnalité_sf] ...
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.
filefrag [-d] [-v] [-r] 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 [nombre [objectif]]
Trouver les premiers nombre blocs libres, en commençant par objectif et les allouer. Aussi disponible sous le nom ffb.
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 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.
freeb bloc [nombre]
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.
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é.
get_quota quota_type ID
Afficher les informations de quota pour le type de quota précisé (utilisateur, groupe ou projet) et l’ID.
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.
inode_dump [-b]|[-e]|[-x] filespec
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.
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 de bloc.
journal_close
Fermer le journal ouvert.
journal_open [-c] [-v ver] [-f journal_ext]
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.
journal_run
Refaire toutes les transactions du journal ouvert.
journal_write [-b blocs] [-r annulation] [-c] fichier
É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.
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 répertoire sur le système de fichiers natif.
list_quota type_quota
Afficher les informations de quota pour le type de quota précisé (utilisateur, groupe ou projet).
ln filespec fichier_dest
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.
logdump [-acsOS] [-b block] [-n num_trans ] [-i filespec] [-f journal_file] [output_file]
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.
The -a option causes the logdump to print the contents of all of the descriptor blocks. The -b option causes logdump to print all journal records that refer to the specified block. The -c option will print out the contents of all of the data blocks selected by the -a and -b options.
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é.
The -n option causes logdump to continue past a journal block which is missing a magic number. Instead, it will stop only when the entire log is printed or after num_trans transactions.
ls [-l] [-c] [-d] [-p] [-r] filespec
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é.
list_deleted_inodes [nb_secondes]
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é.
modify_inode filespec
Modifier le contenu de la structure de données de l'inœud filespec. Aussi disponible sous le nom mi
mkdir filespec
Créer un répertoire.
mknod filespec [p|[[c|b] majeur mineur]]
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.
ncheck [-c] num_inœud ...
À 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] [-d fichier_image] [ -s superbloc] [-z fichier_annulations] 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 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.
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 une commande de troncature : 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 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.
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ésallouer le fichier. Cette commande fonctionne comme l'appel système unlink().
rmdir filespec
Supprimer le répertoire filespec.
setb bloc [nombre]
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.
set_block_group num_groupe champ valeur
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.
set_current_time time
Régler l’heure courante en secondes depuis l’Époque Unix lors de la définition des champs du système de fichiers.
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 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.
set_mmp_value champ valeur
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.
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 à l’aide de cette commande peut être affichée avec la commande set_super_value -l. Aussi disponible sous le nom ssv.
show_debugfs_params
Afficher les paramètres de debugfs tels que les informations à propos du système 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 passé, seul le contenu du superbloc sera affiché. Disponible aussi sous le nom stats.
stat filespec
Afficher le contenu de la structure de l'inœud filespec.
supported_features
Afficher les fonctionnalités gérées par cette version de debugfs.
testb bloc [nombre]
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.
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 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.
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
Copier le contenu du fichier_source dans le fichier nommé fichier_sortie nouvellement créé dans le système de fichiers.
zap_block [-f filespec] [-o position] [ -l longueur] [-p motif] num_bloc
É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.
zap_block [-f filespec] [-b bit] num_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

DEBUGFS_PAGER, PAGER
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 <[email protected]>.

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 <[email protected]>, Frédéric Delanoy <[email protected]>, Thierry Vignaud <[email protected]>, Sébastien Blanchet, Emmanuel Araman <[email protected]>, Éric Piel <[email protected]>, Nicolas François <[email protected]>, Romain Doumenc <[email protected]>, David Prévot <[email protected]>, Cédric Boutillier <[email protected]> et Jean-Paul Guillonneau <[email protected]>
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 à [email protected]

Recommended readings

Pages related to debugfs you should read also: