Syntax
debugfs [ -b Blockgröße ] [ -s Superblock ] [ -f Kommandodatei ] [ -R Nachfrage ] [ -V ] [ -w ] [ -c ] [ -i ] [ Gerätedatei ]
Beschreibung
Das debugfs Programm ist ein Dateisystemdebugger. Es kann benutzt werden, um den Zustand eines ext2 Dateisystems zu untersuchen und zu ändern.
Gerätedatei ist die Gerätedatei, die das zu bearbeitende Dateisystem enthält (z.B. /dev/hdXX).
Optionen
- -w
- Das Dateisystem wird im ReadWrite Modus geöffnet. Ohne diese Option wird ein Dateisystem immer nur ReadOnly geöffnet.
- -c
- Das Dateisystem wird im Katastrophen Modus geöffnet. In diesem Fall werden die Inode- und Gruppeninformationen nicht initial geladen. Das kann für Dateisysteme mit katastrophalen Fehlern nützlich sein, zwingt aber daher auch zum Öffnen im ReadOnly Modus.
- -i
- Legt fest, daß Gerätedatei statt einer echten Gerätedatei, eine Imagedatei ist, die mit e2image(8) erstellt wurde. Weil die ext2 Image Dateien nur den Superblock, Block Gruppen Beschreibung, Block- und Inode Allocation Bitmaps und die Inode-Tabelle enthalten werden viele debugfs Kommandos nicht richtig funktionieren. Warnung: Es gibt hier keine Sicherheitsüberprüfung und debugfs kann auf interessante Weise scheitern, wenn Kommandos wie ls, dump, etc. ausprobiert werden. debugfs ist ein Debugging Werkzeug. Es hat rauhe Kanten.
- -b Blockgröße
- Zwingt die Anwendung der übergebenen Blockgröße für das Dateisystem, statt die richtige Blockgröße selbst zu ermitteln.
- -s Superblock
- Der angegebene Block wird als Superblock angenommen. Wenn diese Option verwendet wird, so muß auch die -b Option verwendet werden.
- -f Kommandodatei
- debugfs liesst seine Kommandos aus der angegebenen Datei und führt sie aus. Nach dem letzten Kommando wird das Programm beendet.
- -R Nachfrage
- debugfs führt nur das einzelne Kommando Nachfrage aus und beendet sich dann.
- -V
- Ausgabe der Versionsnummer und Exit.
Kommandos
debugfs ist ein interaktiver Debugger. Er versteht folgende Kommandos:
- cat Dateispezifizierung
- Gibt den Inhalt der Inode Dateispezifizierung auf die Standard Ausgabe aus.
- cd Dateispezifizierung
- Wechselt das Arbeitsverzeichnis nach Dateispezifizierung.
- chroot Dateispezifizierung
- Erklärt das durch Dateispezifizierung benannte Verzeichnis zum Wurzelverzeichnis.
- close
- Schließt das aktuell geöffnete Dateisystem.
- clri Dateispezifizierung
- Löscht den Inhalt der Inode Dateispezifizierung.
- dump [-p] Dateispezifizierung Ausgabedatei
- Gibt den Inhalt der Inode Dateispezifizierung in die Datei Ausgabedatei aus. Wenn die -p Option gesetzt ist, wird die Ausgabedatei die Eigentümer-, Gruppen- und Zugriffsinformation der Orginaldatei erhalten.
- expand_dir Dateispezifizierung
- Erweitert das durch Dateispezifizierung bezeichnete Verzeichnis.
- feature [Dateisystemfeature] [-Dateisystemfeature] ...
- Setzt oder löscht (-) verschiedene Dateisystemfeatures im Superblock. Nach der Aktion wird der Status der Dateisystemfeatures ausgegeben.
- find_free_block [Zielpunkt]
- Findet den ersten freien Block, ausgehend von Zielpunkt und weist ihn zu.
- find_free_inode [Dir [Modus]]
- Findet eine freie Inode und weist sie zu. Wenn angegeben, spezifiziert Dir die Inode Nummer des Verzeichnisses, in dem die neue Inode lokalisiert sein soll. Das zweite optionale Argument Modus bezeichnet die Zugriffsrechte der neuen Inode. (Wenn das Verzeichnisbit in diesem Modus gesetzt ist wird die Zuweisungsroutine anders arbeiten).
- freeb Block
- Markiert die Blocknummer Block als nicht zugewiesen.
- freei Dateispezifizierung
- Markiert die durch Dateispezifizierung bezeichnete Inode als frei.
- help
- Gibt eine Liste der Kommandos aus, die von debugfs verstanden werden.
- icheck Block ...
- Gibt ein Listing der Inodes aus, welche den oder die auf der Kommandozeile angegebenen Blöcke nutzen.
- initialize Gerätedatei Blockgröße
- Legt auf dem durch Gerätedatei angegebenen Gerät ein ext2 Dateisystem an. Beachten Sie, daß dieser Befehl nicht alle Datenstrukturen voll initialisiert. Benutzen Sie das mke2fs(8) Programm um das zu erledigen. Dieses Kommando ist nur ein Aufruf der Low-Level Library, das den Superblock und die Blockbeschreibungen setzt.
- kill_file Dateispezifizierung
- Dealloziiere die Inode Dateispezifizierung und ihre Blöcke. Beachten Sie, daß das keine Verzeichniseinträge dieser Inode löscht. Siehe auch das rm Kommando.
- ln Dateispezifizierung Zieldatei
- Erzeugt einen Link mit Namen Zieldatei, der auf die durch Dateispezifizierung bezeichnete Inode zeigt. Dieser Befehl stellt nicht den Wert der Links in der Inode ein.
- ls [-l] Dateispezifizierung
- Gibt eine Liste der Dateien im Verzeichnis Dateispezifizierung aus.
- modify_inode Dateispezifizierung
- Modifiziert den Inhalt der Inode-Struktur der durch Dateispezifizierung bezeichneten Inode.
- mkdir Dateispezifizierung
- Legt ein Verzeichnis an.
- mknod Dateispezifizierung [p | [[c|b] major minor]]
- Erstellt eine Named-Pipe (p) oder eine zeichen- (c) oder blockorientierte (b) Gerätedatei. Wenn Gerätedateien erstellt werden, müssen major und minor Nummern angegeben werden.
- ncheck Inodenummer ...
- Nimmt die übergebene Liste der Inodenummern und gibt eine Liste der dazu passenden Dateinamen aus.
- open [-wfic] [-b Blockgröße] [-s Superblock] Gerätedatei
- Öffnet ein Dateisystem zum Editieren. Die -w Option öffnet es zum Schreiben. Die -f Option zwingt das Dateisystem geöffnet zu werden, auch wenn es unbekannte oder inkompatible Dateisystemfeatures gibt, die das Öffnen normalerweise verhindern würden. Die -c, -b, -i und -s Optionen haben die selben Bedeutungen als wären sie debugfs selbst mitgegeben worden.
- pwd
- Gibt das aktuelle Arbeitsverzeichnis aus.
- quit
- Beendet debugfs
- rm Pfadname
- Löscht (unlink) die durch Pfadname angegebene Datei. Wenn die Inode, auf die der Dateiname zeigt keine weiteren Namen hat wird die Datei ganz gelöscht.
- rmdir Dateispezifizierung
- Lösche das durch Dateispezifizierung bezeichnete Verzeichnis. Diese Funktion ist im Augenblick noch nicht implementiert.
- setb Block
- Markiert den angegebenen Block als zugewiesen.
- seti Dateispezifizierung
- Markiert die Inode Dateispezifizierung im Inode-Bitmap als gebraucht.
- show_super_stats [-h]
- Listet den Inhalt des Superblocks und der Block Gruppenbeschreibung auf. Wenn die -h Option gesetzt wird, wird nur der Inhalt des Superblocks ausgegeben.
- stat Dateispezifizierung
- Zeigt den Inhalt der Inodestruktur der durch Dateispezifizierung bezeichneten Inode.
- testb Block
- Überprüft ob der angegebene Block im Block-Bitmap als zugewiesen markiert ist.
- testi Dateispezifizierung
- Überprüft, ob die durch Dateispezifizierung bezeichnete Inode im Inode-Bitmap als zugewiesen markiert ist.
- unlink Pfadname
- Löscht den durch Pfadname bezeichneten Link. Die Angabe der Anzahl der Links in der Inode wird nicht angepasst.
- write Quelldatei Zieldatei
- Erzeugt eine Datei Zieldatei und kopiert den Inhalt von Quelldatei dort hinein.
- lcd Verzeichnis
- Wechselt das aktuelle Arbeitsverzeichnis des debugfs-Prozesses auf dem echten Dateisystem.
- rdump Verzeichnis Ziel
- Gibt den Inhalt (inklusive regulären Dateien, Symlinks und anderer Verzeichnisse) des Verzeichnisses Verzeichnis rekursiv in das angegebene Ziel aus. Ziel sollte ein bestehendes Verzeichnis des echten Dateisystems sein.
Dateien spezifizieren
Viele Kommandos von debugfs nehmen eine Dateispezifizierung als Argument um eine Inode (im Gegensatz zu einem Pfadnamen) auf dem bearbeiteten Dateisystem zu bezeichnen. Dieses Argument kann in zwei Formen angegeben werden. Die erste Form ist eine Inode-Nummer in spitzen Klammern z.B. <2>. Die zweite Form ist ein Pfadname. Wenn dem Pfadnamen ein Slash (/) vorangestellt wird, dann wird der Pfadname als relativ zum Wurzelverzeichnis des durch debugfs bearbeiteten Dateisystems interpretiert. Wenn nicht, so wird der Pfadname als relativ zum aktuellen Arbeitsverzeichnis interpretiert, das durch debugfs angegeben wurde. Dieses aktuelle Arbeitsverzeichnis kannn durch den debugfs Befehl cd gewechselt werden.
Autor
debugfs wurde von Theodore Ts’o <tytso@mit.edu> geschrieben.