JFSスーパーブロックの回復/復元(または破損したファイルシステムからのデータの回復)

JFSスーパーブロックの回復/復元(または破損したファイルシステムからのデータの回復)

はじめに:

データ復旧に関する質問なので、「バックアップはどこにありますか?」という質問に「答えがない場合」が多いと予想されます。または、「画像のブロックレベルのコピーでこれを行います。」よろしくお願いします。これ以上教える必要はありません。内容と理由については、最後の注意事項を参照してください。ありがとうございます。


私のJFSファイルシステムイメージが破損しています。jfs_fsck次のエラーメッセージで処理が拒否されました。

~ % sudo jfs_fsck /dev/loop0
jfs_fsck version 1.1.15, 04-Mar-2011
processing started: 3/1/2017 13:08:53
Using default parameter: -p
The current device is:  /dev/loop0
Superblock is corrupt and cannot be repaired 
since both primary and secondary copies are corrupt.  

 CANNOT CONTINUE.

使用jfs_debugfsコマンドを実行しsus2p次の情報を取得します。

~ % sudo  jfs_debug /dev/loop0
jfs_debugfs version 1.1.15, 04-Mar-2011

Aggregate Block Size: 4096

出力su p

[1] s_magic:            'JFS1'          [15] s_ait2.addr1:      0x00
[2] s_version:          1               [16] s_ait2.addr2:      0x0000e92f
[3] s_size:     0x000000015d4d4ec0           s_ait2.address:    59695
[4] s_bsize:            4096            [17] s_logdev:          0x00000900
[5] s_l2bsize:          12              [18] s_logserial:       0x0009afb1
[6] s_l2bfactor:        3               [19] s_logpxd.len:      8192
[7] s_pbsize:           512             [20] s_logpxd.addr1:    0x00
[8] s_l2pbsize:         9               [21] s_logpxd.addr2:    0x2baa0160
[9] pad:                Not Displayed        s_logpxd.address:  732561760
[10] s_agsize:          0x00800000      [22] s_fsckpxd.len:     22408
[11] s_flag:            0x10200900      [23] s_fsckpxd.addr1:   0x00
                        JFS_LINUX       [24] s_fsckpxd.addr2:   0x2ba9a9d8
        JFS_COMMIT      JFS_GROUPCOMMIT      s_fsckpxd.address: 732539352
                        JFS_INLINELOG   [25] s_time.tv_sec:     0x4902c28b
                                        [26] s_time.tv_nsec:    0x00000000
                                        [27] s_fpack:           'thor_storag'
[12] s_state:           0x00000001
             FM_MOUNT
[13] s_compress:        0
[14] s_ait2.len:        4

出力su s

[1] s_magic:            '    '          [15] s_ait2.addr1:      0x00
[2] s_version:          0               [16] s_ait2.addr2:      0x00000000
[3] s_size:     0x0000000000000000           s_ait2.address:    0
[4] s_bsize:            0               [17] s_logdev:          0x00000000
[5] s_l2bsize:          0               [18] s_logserial:       0x00000000
[6] s_l2bfactor:        0               [19] s_logpxd.len:      0
[7] s_pbsize:           0               [20] s_logpxd.addr1:    0x00
[8] s_l2pbsize:         0               [21] s_logpxd.addr2:    0x00000000
[9] pad:                Not Displayed        s_logpxd.address:  0
[10] s_agsize:          0x00000000      [22] s_fsckpxd.len:     0
[11] s_flag:            0x00000000      [23] s_fsckpxd.addr1:   0x00
                                        [24] s_fsckpxd.addr2:   0x00000000
                                             s_fsckpxd.address: 0
                                        [25] s_time.tv_sec:     0x00000000
                                        [26] s_time.tv_nsec:    0x00000000
                                        [27] s_fpack:           ''
[12] s_state:           0x00000000
             FM_CLEAN
[13] s_compress:        0
[14] s_ait2.len:        0

出力s2p p

[1] s_magic:            'JFS1'          [16] s_aim2.len:        2
[2] s_version:          1               [17] s_aim2.addr1:      0x00
[3] s_size:     0x000000015d4d4ec0      [18] s_aim2.addr2:      0x0000e92d
[4] s_bsize:            4096                 s_aim2.address:    59693
[5] s_l2bsize:          12              [19] s_logdev:          0x00000900
[6] s_l2bfactor:        3               [20] s_logserial:       0x0009afb1
[7] s_pbsize:           512             [21] s_logpxd.len:      8192
[8] s_l2pbsize:         9               [22] s_logpxd.addr1:    0x00
[9]  s_agsize:          0x00800000      [23] s_logpxd.addr2:    0x2baa0160
[10] s_flag:            0x10200900           s_logpxd.address:  732561760
             LINUX                      [24] s_fsckpxd.len:     22408
    GROUPCOMMIT                         [25] s_fsckpxd.addr1:   0x00
                INLINELOG               [26] s_fsckpxd.addr2:   0x2ba9a9d8
                                             s_fsckpxd.address: 732539352
[11] s_state:           0x00000001      [27] s_fsckloglen:      50
                MOUNT                   [28] s_fscklog:         2
[12] s_compress:        0               [29] s_fpack:           'thor_storagة�+'
[13] s_ait2.len:        4
[14] s_ait2.addr1:      0x00
[15] s_ait2.addr2:      0x0000e92f
     s_ait2.address:    59695

出力s2p s

[1] s_magic:            '    '          [16] s_aim2.len:        0
[2] s_version:          0               [17] s_aim2.addr1:      0x00
[3] s_size:     0x0000000000000000      [18] s_aim2.addr2:      0x00000000
[4] s_bsize:            0                    s_aim2.address:    0
[5] s_l2bsize:          0               [19] s_logdev:          0x00000000
[6] s_l2bfactor:        0               [20] s_logserial:       0x00000000
[7] s_pbsize:           0               [21] s_logpxd.len:      0
[8] s_l2pbsize:         0               [22] s_logpxd.addr1:    0x00
[9]  s_agsize:          0x00000000      [23] s_logpxd.addr2:    0x00000000
[10] s_flag:            0x00000000           s_logpxd.address:  0
                                        [24] s_fsckpxd.len:     0
                                        [25] s_fsckpxd.addr1:   0x00
                                        [26] s_fsckpxd.addr2:   0x00000000
                                             s_fsckpxd.address: 0
[11] s_state:           0x00000000      [27] s_fsckloglen:      0
                CLEAN                   [28] s_fscklog:         0
[12] s_compress:        0               [29] s_fpack:           '        '
[13] s_ait2.len:        0
[14] s_ait2.addr1:      0x00
[15] s_ait2.addr2:      0x00000000
     s_ait2.address:    0

今問題は、スーパーブロックでどの値を操作する必要があるかということです。jfs_fsck誰でも私が動作するように説得できますか?それともマウントできますか(Linux jfsカーネルファイルシステムを使用して実装されています)?

ファイルシステムイメージを見て、その中にファイルと思われるすべてを吐き出すことができるツールがあれば完全に受け入れ可能です。


アメリカ

私が管理しているいくつかのイベントのために、JFSファイルシステムを含むLinux mdadm RAID-5が何らかの方法で破損しており、今日まで何らかのエラーモードを理解していません。このFSは私が他人と共有するNASの一部です。私は彼にRAIDがバックアップを置き換えないことを繰り返し思い出しました。しかし、これらの警告にもかかわらず、他の人はまだRAIDにバックアップされていないいくつかのデータを持っています(今半怒りの段階…こんな感じがします。)。私たちの即時の措置は、システムからディスクを取り出し、そのディスクのブロックレベルのコピーを作成することでした。私がやろうとしているすべての操作は次のようになります。スナップ写真これらのコピーを使用すると、回復中に何が起こってもいつでもロールバックできます。

昨日、ついにmdadm RAIDを(一貫してほしい)状態に復元できました。

基本的に私はそこにあるものを復元し、それを一日と呼びたいと思います。

ベストアンサー1

おすすめ記事