Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fsdb_ufs(1M-ufs) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fsck(1M)

fsdb(1M)

dir(4)

fs(4)

fsdb(1M-ufs)                                                   fsdb(1M-ufs)

NAME
     fsdb (ufs) - Fehlersuchprogramm für ufs-Dateisysteme

SYNTAX
     fsdb [-F ufs] [genericoptions] special [-]

BESCHREIBUNG
     Mit fsdb kann ein beschädigtes ufs-Dateisystem nach einem Absturz kor-
     rigiert werden. fsdb verfügt über Umwandlungsmöglichkeiten, die Block-
     und I-Node-Nummern in die entsprechenden Plattenadressen konvertieren.
     Außerdem stehen mnemonische Offsets zur Verfügung, mit denen auf
     unterschiedliche Teile eines I-Node zugegriffen werden kann. Dadurch
     wird die Korrektur von Einträgen im Steuerblock oder der Weg durch den
     Dateisystembaum erheblich vereinfacht.

     fsdb enthält mehrere Fehlerprüfroutinen zur Überprüfung von I-Node-
     und Blockadressen. Diese Routinen können bei Bedarf durch Aufruf von
     fsdb mit dem optionalen Argument "-" oder durch Verwendung des Symbols
     O deaktiviert werden. (fsdb liest die Einträge für i-size (I-Größe)
     und f-size (F-Größe) aus dem Superblock des Dateisystems als Grundlage
     für diese Überprüfungen.)

OPTIONEN
     -F ufs              Gibt den Typ des ufs-Dateisystems an.

     genericoptions     Optionen, die von dem generischen fsdb-Kommando
                         unterstützt werden.

     Zahlen werden standardmäßig als Dezimalzahlen angesehen. Oktalzahlen
     muß das Präfix 0 (null) vorangestellt sein. Bei jeder Zuweisungsopera-
     tion wird überprüft, ob dadurch ein Fehler entstanden ist, daß die
     Zahlen möglicherweise abgeschnitten wurden, weil die Größen der Quelle
     und des Ziels nicht zueinander passen.

     fsdb liest blockweise und arbeitet daher bei der Ein-/Ausgabe sowohl
     im Raw-Modus als auch blockorientiert. Mit einer Pufferverwaltungsrou-
     tine werden häufig verwendete Datenblöcke in Puffern belassen. Dadurch
     wird die Anzahl der Systemaufrufe zum Lesen möglichst gering gehalten.
     Alle Zuweisungsoperationen bewirken eine sofortige Aktualisierung des
     entsprechenden Blocks.

     fsdb erkennt folgende Symbole:

     #            absolute Adresse

     #i           Umwandlung von I-Nummer in I-Node-Adresse

     #b           Umwandlung in Blockadresse

     #f           Umwandlung in die Adresse eines Fragments in einem Block





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

fsdb(1M-ufs)                                                   fsdb(1M-ufs)

     #fn          wie oben, außer daß die Länge des Fragments als n angese-
                  hen wird, wobei n einen der Werte 1, 2, ..., MAXFRAG
                  Fragmente darstellt

     c#           Umwandlung der Zylindergruppennummer in den Plattenoffset
                  für die Überblicksinformationen.

     d#           Verzeichnisposition-Offset

     d#i          wie oben, zusätzlich wird fsdb angewiesen, zu dem I-Node
                  i zu springen, der zu dem Verzeichnis gehört

     d#c          wie oben, zusätzlich wird fsdb angewiesen, zu der Zylin-
                  dergruppe c zu springen, die zu dem Verzeichnis gehört

     +, -, *, /   Arithmetik für Adressen

     q            verlassen (quit)

     >, <         sichern bzw. wiederherstellen einer Adresse

     =            numerische Zuweisung

     =+           Zuweisung mit Erhöhung

     =-           Zuweisung mit Erniedrigung

     ="           Zeichenkettenzuweisung

     O            Fehlerprüf-Flipflop

     p            allgemeine Druckeinrichtungen

     f            Einrichtung zum Drucken von Dateien

     B            Byte-Modus

     S            Wort-Modus (short)

     L            Doppelwort-Modus (int)

     I            I-Node-Modus

     R            VeRzeichnis-Modus

     W            wie S

     D            wie L

     !            Sub-Shell aufrufen

     ?            Hilfe-Menü ausgeben


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

fsdb(1M-ufs)                                                   fsdb(1M-ufs)

     N            neues Dateisystem für die Fehlersuche öffnen

     C            aktuelle Angaben für das Dateisystem ausgeben, in dem
                  gerade Fehler gesucht werden

     P            aktuellen Zustand der globalen fsdb-Parameter ausgeben

     F            Zustand der aktuellen Plattenblockpuffer ausgeben

     Die Ausgabeeinrichtungen erstellen formatierte Ausgaben in verschiede-
     nen Formen. Die aktuelle Adresse wird vor der Ausgabe auf eine ent-
     sprechende Wortgrenze ausgerichtet. Diese Adresse bewegt sich mit dem
     Ausgabevorgang weiter und bleibt dann bei der Adresse des letzten aus-
     gegebenen Elements stehen. Sie können die Ausgabe jederzeit beenden,
     indem Sie ein Löschzeichen (Hex-Code: 0x7F) eingeben. Folgt auf das
     Symbol p eine Zahl, so gibt diese an, wieviele Einträge ausgegeben
     werden. Es wird geprüft, ob ein Blockgrenzenüberlauf vorliegt, da
     logisch sequentielle Blöcke im allgemeinen nicht physisch sequentiell
     sind. Wird der Zähler null verwendet, so werden alle Einträge bis zum
     Ende des aktuellen Blockes ausgegeben.

     Folgende Optionen stehen für die Ausgabe zur Verfügung:

     i    Ausgabe als I-Nodes

     d    Ausgabe als Verzeichnisse

     s    Ausgabe als Überblicksstrukturen von Zylindergruppen

     o    Ausgabe als Oktalwörter

     x    Ausgabe als Hexadezimalwörter

     e    Ausgabe als Dezimalwörter

     c    Ausgabe als Zeichen

     b    Ausgabe als Oktalbytes

     Das Symbol f dient zur Ausgabe von Datenblöcken, die zum aktuellen I-
     Node gehören. Folgt danach eine Zahl, wird der entsprechende Block der
     Datei ausgegeben. (Die Numerierung der Blöcke beginnt mit null.) Der
     Buchstabe für die gewünschte Ausgabeoption folgt auf die Blocknummer,
     sofern diese vorhanden ist, oder nach dem Symbol f. Diese Ausgabeein-
     richtung funktioniert sowohl für kleine als auch für große Dateien.
     Sie prüft, ob Gerätedateien vorhanden sind, und stellt sicher, daß die
     zum Auffinden der Daten benutzten Blockzeiger nicht null sind.

     Punkte, Tabulatorzeichen und Leerzeichen können als Funktionsbegrenzer
     angegeben werden, sind aber nicht notwendig. Eine Zeile, die nur ein
     Zeilenendezeichen enthält, erhöht die aktuelle Adresse um die Größe
     des zuletzt ausgegebenen Datentyps. D. h. die Adresse wird auf das


Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

fsdb(1M-ufs)                                                   fsdb(1M-ufs)

     nächste Byte, Wort, Doppelwort, den nächsten Verzeichniseintrag oder
     I-Node gesetzt. Dadurch kann der Benutzer einen ganzen Bereich eines
     Dateisystems durchsuchen. Die Informationen werden in einem für den
     Datentyp geeigneten Format ausgegeben. Bytes, Wörter und Doppelwörter
     werden mit der oktalen Adresse, gefolgt von dem Wert in Oktal- und
     Dezimalschreibweise angezeigt. An die Adresse wird .B, .W oder .D
     angehängt, wenn es sich um Byte-, Wort- (short) bzw. Doppelwort-
     (int)-Werte handelt. Verzeichnisse werden mit einem Verzeichnispositi-
     on-Offset, gefolgt von der dezimalen I-Nummer und der Zeichendarstel-
     lung des Eintragsnamens ausgegeben. I-Nodes werden mit gekennzeichne-
     ten Feldern ausgegeben, in denen die einzelnen Elemente beschrieben
     werden.

     Die folgenden Mnemonics werden für die Prüfung von I-Nodes verwendet
     und beziehen sich auf den aktuellen I-Node:

     md      Modus

     ln      Verweiszähler

     uid     Benutzernummer

     gid     Gruppennummer

     sz      Dateigröße

     bc      Blockzähler

     a #     Datenblocknummern (0-13)

     db #    Nummern der direkten Datenblöcke (0-10)

     ib #    Nummern der indirekten Datenblöcke (11-13)

     at      Zugriffszeit

     mt      Änderungszeit

     ct      Zeitpunkt, an dem der I-Node erzeugt wurde

     maj     Geräteklassennummer

     min     Gerätenummer

SYNTAX
     Das Kommando fsdb benutzt die folgende grundlegende Syntax:

          [item][offset][print/replace]

     Hierbei ist item entweder ein Block, ein Verzeichnis, eine Zylinder-
     gruppe oder ein I-Node; offset ist ein Mnemonic für den Offset eines
     I-Node oder eine beliebige Anzahl von Byte; print/replace gibt


Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

fsdb(1M-ufs)                                                   fsdb(1M-ufs)

     entweder das angegebene Element in der angegebenen Form aus oder es
     ersetzt das angegebene Element mit dem angegebenen Wert. Außerdem
     sollten Sie beachten, daß eine durch Carriage-Return-Zeichen getrennte
     Folge von Kommandos in ihrer Funktionsweise äquivalent ist zu einer
     auf einer Zeile eingegebenen Folge derselben Kommandos.

BEISPIELE
     386i            Gibt die I-Nummer 386 in einem I-Node-Format aus. Die-
                     ser I-Node wird nun zum aktuellen I-Node.

     ln=4            Ändert den Verweiszähler für den aktuellen I-Node auf
                     4.

     ln=+1           Erhöht den Verweiszähler um 1.

     fc              Gibt Block Null der zum aktuellen I-Node gehörenden
                     Datei im ASCII-Format aus.

     2i.fd           Gibt die ersten 32 Verzeichniseinträge für den root-
                     I-Node dieses Dateisystems aus.

     d5i.fc          Ändert den aktuellen I-Node in den I-Node, der zum
                     fünften Verzeichniseintrag gehört (Numerierung ab null
                     und vom vorhergehenden Kommando aus gerechnet). Der
                     erste logische Block der Datei wird dann im ASCII-
                     Format ausgegeben.

     8192B.p0o       Gibt den Superblock dieses Dateisystems in Oktalformat
                     aus.

     2i.a0b.d7=3     Ändert die I-Nummer für die siebte Verzeichnisposition
                     im root-Verzeichnis in 3. Dieses Beispiel zeigt auch,
                     wie mehrere Optionen auf einer Kommandozeile zusammen
                     benutzt werden können.

     d7.nm="name"    Ändert das Namensfeld in der Verzeichnisposition in
                     die angegebene Zeichenkette. Ist das erste Zeichen ein
                     Buchstabe, brauchen bei nm keine Anführungszeichen
                     angegeben werden.

     a2b.p0d         Gibt den dritten Block des aktuellen I-Nodes in Form
                     von Verzeichniseinträgen aus.

HINWEISE
     Nachlässigkeiten bei der Verwendung von fsdb führen zu einem inkonsi-
     stenten Dateisystem und eventuell auch zu Datenverlusten. Darüber hin-
     aus kann ein derartiges Dateisystem unter Umständen nicht mit fsck
     wieder hergestellt werden.

SIEHE AUCH
     fsck(1M), das generische Kommando fsdb(1M), dir(4), fs(4).



Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026