
はじめに:
データ復旧に関する質問なので、「バックアップはどこにありますか?」という質問に「答えがない場合」が多いと予想されます。または、「画像のブロックレベルのコピーでこれを行います。」よろしくお願いします。これ以上教える必要はありません。内容と理由については、最後の注意事項を参照してください。ありがとうございます。
私の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コマンドを実行しsu
、s2p
次の情報を取得します。
~ % 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を(一貫してほしい)状態に復元できました。
基本的に私はそこにあるものを復元し、それを一日と呼びたいと思います。