Einen beschädigten Dateitypanzeiger im Superblock des Dateisystems korrigieren

Falls der Superblock eines Dateisystems beschädigt ist, kann nicht auf das Dateisystem zugegriffen werden. Ein beschädigter Dateitypanzeiger (Magic Number) im Superblock des Dateisystems kann korrigiert werden.

Die meisten Fehler im Superblock können nicht behoben werden. Die folgende Prozedur beschreibt, wie Sie einen Superblock in einem JFS-Dateisystem reparieren, wenn das Problem durch einen beschädigten Dateitypanzeiger verursacht wird. Falls der primäre Superblock eines JFS2-Dateisystems beschädigt ist, können Sie mit dem Befehl fsck den sekundären Superblock automatisch kopieren und den primären Superblock reparieren.

Im folgenden Szenario wird davon ausgegangen, dass /home/myfs ein Dateisystem vom Typ JFS auf dem physischen Datenträger /dev/lv02 ist.

Diese Verwendungshinweise wurden unter verschiedenen AIX-Versionen getestet. Die Ergebnisse, die Sie erhalten, können je nach Versionsstand des Betriebssystems AIX signifikant abweichen.

  1. Hängen Sie das Dateisystem /home/myfs, von dem Sie vermuten, das es beschädigt ist, mit dem folgenden Befehl ab:
    umount /home/myfs
  2. Um sich zu vergewissern, dass das Dateisystem wirklich beschädigt ist, führen Sie den Befehl fsck für das Dateisystem aus. Beispiel:
    fsck -p /dev/lv02
    Falls das Problem durch einen beschädigten Superblock hervorgerufen wird, gibt der Befehl fsck eine der folgenden Nachrichten zurück:
    fsck: Kein AIXV5-Dateisystem
    ODER
    Kein bekannter Dateisystemtyp
  3. Führen Sie, wie im folgenden Beispiel gezeigt, den Befehl od aus, um den Superblock des Dateisystems anzuzeigen. Sie müssen hierfür Rootberechtigung besitzen:
    od -x -N 64 /dev/lv02 +0x1000
    Das Flag -x zeigt die Ausgabe im Hexadezimalformat an, und das Flag -N weist das System an, nicht mehr als 64 eingegebene Bytes ab dem Offset-Parameter (+) zu formatieren, der die Stelle in der Datei angibt, mit der die Dateiausgabe beginnt. Im Folgenden sehen Sie eine Beispielausgabe:
    0001000  1234 0234 0000 0000 0000 4000 0000 000a
    0001010  0001 8000 1000 0000 2f6c 7633 0000 6c76
    0001020  3300 0000 000a 0003 0100 0000 2f28 0383
    0001030  0000 0001 0000 0200 0000 2000 0000 0000
    0001040
    In dieser Ausgabe finden Sie den beschädigten Dateitypanzeiger an Position 0x1000 (1234 0234). Falls beim Erstellen des Dateisystems alle Standardwerte akzeptiert wurden, muss der Dateitypanzeiger 0x43218765 sein. Sollten Sie Standardwerte überschrieben haben, muss der Dateitypanzeiger 0x65872143 sein.
  4. Überprüfen Sie mit dem Befehl od, ob der sekundäre Superblock einen gültigen Dateitypanzeiger enthält. Im Folgenden sehen Sie einen Beispielbefehl und die zugehörige Ausgabe:
    $ od -x -N 64 /dev/lv02 +0x1f000
    001f000  6587 2143 0000 0000 0000 4000 0000 000a
    001f010  0001 8000 1000 0000 2f6c 7633 0000 6c76
    001f020  3300 0000 000a 0003 0100 0000 2f28 0383
    001f030  0000 0001 0000 0200 0000 2000 0000 0000
    001f040
    Diese Ausgabe enthält an Position 0x1f000 den korrekten Dateitypanzeiger.
  5. Kopieren Sie den sekundären Superblock in den primären Superblock. Im Folgenden sehen Sie einen Beispielbefehl und die zugehörige Ausgabe:
    $ dd count=1 bs=4k skip=31 seek=1 if=/dev/lv02 of=/dev/lv02
    
    dd: 1+0 records in.
    dd: 1+0 records out.
  6. Verwenden Sie den Befehl fsck, um inkonsistente Dateien unter Verwendung des sekundären Superblocks zu bereinigen. Beispiel:
    fsck /dev/lv02 2>&1 | tee /tmp/fsck.errs