Riparazione di un numero chiave corrotto nel superblocco del sistema di file

Se il superblocco di un sistema di file viene danneggiato, non si può avere accesso al sistema di file. La maggior parte dei danni al superblocco non può essere riparato. La seguente procedura descrive come riparare un superblocco in un sistema di file JFS quando il problema viene causato da un numero chiave corrotto. se il superblocco primario è corrotto in un sistema di file JFS2, utilizzare il comando fsck per copiare automaticamente il superblocco secondario e riparare il superblocco primario.

Nel seguente scenario, supporre che il sistema di file JFS /home/myfs sia un sistema di file sul volume fisico /dev/lv02.

  1. Smontare il sistema di file /home/myfs, che si sospetta possa essere danneggiata, utilizzando il seguente comando:
    umount /home/myfs
  2. Per confermare i danni al sistema di file, eseguire il comando fsck sul sistema di file. Ad esempio:
    fsck -p /dev/lv02
    Se il problema è un danno al superblocco, il comando fsck restituisce uno dei seguenti messaggi:
    fsck: Non un sistema di file AIXV5
    OPPURE
    Non un tipo di sistema di file riconosciuto
  3. Con autorizzazione root, utilizzare il comando od per visualizzare il superblocco per il sistema di file, così come mostrato nel seguente esempio:
    od -x -N 64 /dev/lv02 +0x1000
    Dove l'indicatore -x visualizza l'emissione in formato esadecimale e l'indicatore -N dice al sistema di formattare non più di 64 byte di immissione dal parametro offset (+), che specifica il punto esatto nel file dove inizia l'emissione del file. Di seguito viene riportato un esempio di emissione:
    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
    Nell'emissione precedente, notare il valore chiave corrotto a 0x1000 (1234 0234). Se tutti i valori assunti fossero presi durante la creazione del sistema di file, il numero chiave sarebbe 0x43218765. Se i valori assunto fossero sostituiti temporaneamente il numero magis sarebbe 0x65872143.
  4. Utilizzare il comando od per controllare il superblocco secondario per un numero chiave corretto. Viene di seguito riportato un comando di esempio con la relativa emissione:
    $ 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
    Annotare il valore chiave corretto a 0x1f000.
  5. Copiare il superblocco secondario nel superblocco primario. Viene di seguito riportato un comando di esempio con la relativa emissione:
    $ 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. Utilizzare il comando fsck per eliminare le incoerenze causate utilizzando il superblocco secondario. Ad esempio:
    fsck /dev/lv02 2>&1 | tee /tmp/fsck.errs

Ulteriori informazioni