debugfs

Debugger de système de fichier ext2/3/4

   debugfs est un debugger interactif de système de fichier. Il peut être utilisé pour examiner et changer l'état d'un système de fichier ext2/3/4.

OPTIONS

-w Spécifie que le système de fichier devrait être ouvert en mode lecture écriture.
-n  Désactive la vérification de checksum de métadonnées.
-c Spécifie que le système de fichier devrait être ouvert en mode catastrophique, dans lequel les bitmaps d'inode et de groupe ne sont pas lus initialement. Force l'ouverture en lecture-seule.
-i Spécifie que le périphérpique représente un fichier image ext2 créé par e2image. Vu qu'un fichier image ext2 ne contient que le superblock, descripteur de groupe de blocks, bitmaps d'allocation d'inode et de block, et la table d'inode, de nombreuses commandes ne fonctionneront pas correctement.
-d data_source_device avec -i, spécifie que data_source_device devrait être utilisé en lisant les blocks non trouvés dans le fichier image ext2.
-b blocksize Spécifie la taille de block en octet pour le système de fichier.
-s superblock Force la lecture du superblock au numéro de block spécifié au lieu d'utiliser le primaire localisé à un offset de 1024 octets.
-f cmd_file Lit les commande depuis ce fichier et les exécute, puis se termine.
-D Ouvre le périphérique en Direct I/O et bypasse le cache.
-R request Exécute la commande spécifiée, puis quitte
-z undo_file Avant d'écraser un block, l'écris dans le fichier undo spécifié.

Spécifier des fichiers

   De nombreuses commandes prennent un argument filespec pour spécifier un inode dans le système de fichier. Cet argument peut être de 2 formes, un numéro d'inode entre '‹›', ou un chemin de fichier.

Commandes

blocks filespace Affiche les blocks utilisés par l'inode filespec
bmap [ -a ] filespec logical_block [physical_block] Afiche ou définis le numéro de bock physique correspondant an numéro do block logique logical_block dans l'inode filespec. Si -a est spécifié, tente d'allouer un block si nécessaire.
cat filespec Dump le contenu de l'inode filespec sur stdout
cd filespec Change le répertoire de travail courant
chroot filespec Change le répertoire root
close [-a] Ferme de système de fichier ouvert. Si -a est spécifié, écris les changement dans le superblock et les descripteurs de groupe de block dans toutes les sauvegardes du superblock, pas seulement le principal.
clri filespec Efface le contenu de l'inode filespec
copy_inode source_inode destination_inode Copie le contenu de la structure inode dans source_inode et l'utilise pour écraser la structure inode dans destination_inode
dirsearch filespec filename Recherche dans le répertoire filespec le filename
dirty Marque le système de fichier dirty, pour que le superblock soit écris en quittant
dump_mmp [mmp_block] Affiche les valeurs de protection mmp. Si mmp_block est spécifié, vérifie et dump les valeurs MMP pour le numéro de block donné, sinon utilise le champ s_mmp_block dans le superblock pour localiser et utiliser le block MMP existant.
dx_hash [-h hash_alg] [-s hash_seed] filename Calcule le hash de répentoire de filename. L'algorithme de hashage spécifié avec -h peut être legacy, half_md4 ou tea.
dump_extents [-n] [-l] filespec Dump l'extent tree de l'inode filespec. -n affiche seulement les nœuds interieurs dans l'extent tree.
ea_get [-f outfile] filespec attr_name Récupère la valeur de l'attribut étendu attr_name dans le fichier filespec et l'écris soit sur stdout ou outfile.
ea_list filespec Liste les attributs étendus associés avec le fichier filespec sur stdout
ea_set [-f infile] filespec attr_name attr_value Définis la valeur de l'attribut étendu attr_name dans le fichier filespec à la valeur attr_value ou le lit depuis stdin
ea_rm filespec attr_names... Supprime l'attribut étendu attr_name du fichier filespec
expand_dir filespec Étend le répertoire filespec
fallocate filespec start_block [end_block] Alloue et map les blocks non initialisés dans filespec entre le block logique start_block et end_block. Si end_block n'est pas spécifié, cette fonction map tous les blocks disques libres ou la taille de fichier maximum. Les mappages existant sont laissés seuls.
feature [fs_feature] [-fs_feature] ... Définis ou efface divers fonctionnalités dans le superblock, puis affiche l'état courant des fonctionnalités.
filefrag [-dvr] filespec Affiche le nombre d'extents contigus dans filespec. Si filespec est un répertoire et -d n'est pas spécifié, filefrag affiche le nombre d'extent contigus pour chaque fichier dans le répertoire. -v affiche un listing avec tabulations, -r effectue un listing récursif.
find_free_block [count [goal]] Trouver les count premier blocks libre, en commençant à goal et l'alloue. = ffb
find_free_inode [dir [mode]] Trouver un inode libre et l'allouer. Si présent, dir spécifie le numéro d'inode du répertoire auquel il est alloué. mode spécifie les permissions du nouvel inode. == ffi
freeb block [count] Marque le numéro de block comme non alloué. Si count est présent, count blocks commençant au numéro de block seront marqués non alloués
freefrag [-c chunk_kb] Affiche la fragmentation d'espace lible dans le système de fichier. avec -c, la commande filefrag affiche le nombre de chunks libre de taille chunk_kb trouvés dans le système de fichier.
freei filespec [num] Libère l'inode filespec. Si num est spécifié, efface également l'inode num-1 après l'inode spécifié
htree_dump filespec Dump le répertoire hash-indexed filespec, affichant sa structure d'arborescence
icheck block ... Affiche un listing des inodes qui utilisent un ou plusieurs blocks spécifiés sur la ligne de commande.
inode_dump filespec Affiche le contenu de la structure de données d'inode en hexa et ASCII
imap filespec Affiche l'emplacement de la structure de données d'inode (dans la table d'inode) de l'inode filespec
init_filesys device blocksize Créé un système de fichier ext2 dans le périphérique avec la taille blocksize. Noter que cela n'initialise pas toutes les structures de données.
journal_close Ferme un journal ouvert
journal_open [-c] [-v ver] [-j ext_jnl] Ouvre le journal pour lecture et écriture. -c active le checksum journal; -v spécifie le format de checksum (2 ou 3).
journal_run Rejoue toutes les transactions dans le journal ouvert
journal_write [-b blocks] [-r revoke] [-c] file Écris une transaction dans le journal ouvert. La liste des blocks à écrire devrait être fournis dans blocks; les blocks eux-même devraient être lisible depuis file. Une liste de blocks à révoquer peut être fournie dans revoke. Par défaut, un commit est écris à la fin; -c écrit une transaction uncommited.
kill_file filespec Désalloue l'inode filespec et ses blocks. Noter que cela ne supprime pas d'entrées répertoire dans cet inode.
lcd directory Change le répertoire de travail courant
ln filespec dest_file créer un lien nomé dest_file qui est un lien dure vers filespec. Noter que cela n'ajuste pas le compteur de référence d'inode
logdump [-acsO] [-b block] [-i filespec] [-f journal_file] [output_file] Dump le contenu du journal ext3. Par défaut, dump l'inode journal comme spécifié dans le superblock. -i dump le journal depuis l'inode interne donné par filespec. -f spécifie un fichier régulier contenant les données journal. -s utilise les informations de sauvegarde dans le superblock pour localiser le journal. -a affiche le contenu te tous les blocks descripteur, -b affiche tous les enregistrement journaux référés dans le block spécifié, -c affiche le contenu de toutes les données des blocks de données sélectionnés pas -a et -b. -O affiche les anciennes entrées du journal.
ls [-l] [-c] [-d] [-p] [-r] filespec Affiche un listing des fichiers dans le répertoire filespec. le flag -c force les checksum de block répertoire à être affichés. -d liste les entrées supprimées. -l est plus verbeux. -p liste les fichier dans un format plus simple pour les scripts. -r force l'affichage du nom de fichier même s'il est chiffré.
list_deleted_inodes [limit] Liste les inodes supprimés, optionnellement limité à ceux supprimés il y a limite secondes. = lsdel
modify_inode filespec Modifie le contenu de la structure d'inode filespec. = mi
mkdir filespec Créer un répertoire
mknod filespec [p|[[c|b] major minor]] Créer un fichier spécial.
ncheck [-c] inode_num ... Prend la liste demandée de numéro d'inode, et affiche un listing de chemin vers ces inodes. -c vérifie le type de fichier dans l'entrée répertoire pour s'assurer qu'il match le type d'inode.
open [-weficD] [-b blocksize] [-s superblock] [-z undo_file] device Ouvre un système de fichier pour l'édition. -f force l'ouverture même s'il a des fonctionnalité incompatibles, -e ouvre le fs en mode exclusif, les autres options ont les même signification que les options de debugfs.
punch filespec start_blk [end_blk] Supprime les blocks dans l'inode entre start_blk et end_blk. Si end_blk est omis, cette commande fonctionne comme une commande tronquer, c'est à diste que tous les blocks depuis start_blk jusqu'à la fin du fichier seront désalloués
symlink filespec target Créer un lien symbolique
pwd Afficher le répertoire de travail courant
quit Quitter debugfs
rdump directory[...] destination Dump récursivement le ou les répertoires, et tous leur contenu dans la destination spécifiée
rm pathname unlink pathname
rmdir Supprime le répertoire filespec
setb block [count] Marque le numéro de block spécifié comme alloué. si count est spécifié, count blocks sont marqués alloués
set_block_group bgnum field value Modifie le descripteur de groupe de block bgnum pour que le champ field du descripteur de groupe de block ait la valeur value.
seti filespec [num] Marque l'inode utilisé dans le bitmap d'inode. Si num est spécifié, met num-1 inodes après l'inode spécifié.
set_inode_field filespec field value Modifie l'inode spécifié par filespec pour que le champ field ait la valeur value. La liste de champs d'inode valide peut être obtenu avec set_inode_field -l. = sif
set_mmp_value field value Modifie les données MMP. La liste des champs modifiables peut être obtenu avec set_mmp_value -l. = smmp
set_super_value field value Définis un champ du superblock. set_super_value -l pour lister les champs modifiables. = ssv
show_super_stats [-h] Liste le contenu du superblock et des descripteurs de groupe de block. -h n'affiche que le contenu du superblock. = stats
stat filespec Affiche le contenu de la structure d'inode de l'inode filespec
testb block [count] Test si le numéro de block est marqué comme alloué dans le bitmap de block.
testi filespec Test si l'inode est marqué comme alloué dans le bitmap d'inode
undel ‹inode_number› [pathname] Récupère le numéro d'inode spécifié.
unlink pathname Supprime le lien spécifié. N'ajuste pas le compteur de référence d'inode
write source_file out_file Copie le contenu du fichier source_file dans un nouveau fichier créé
zap_block [-f filespec] [-o offset] [-l length] [-p pattern] block_num Écrase le block spécifié par block_num avec des 0. -p utilise l'octet spécifié, -f block_num est relatif au début du fichier. -o et -l limitent la plage d'octets à écraser.
zap_block [-f filespec] [-b bit] block_num change les portions du block_num physique. -f, block_num est un block logique relatif au début de filespec

Variables d'environnement

DEBUGFS_PAGER debugfs pipe toujours la sortie de certaines commande dans un pager.
PAGER Pager à utiliser