スーパーブロックが欠落しているf2fsパーティションがあります。復元する元のパーティションが破壊されないようにディスクイメージを作成しました。
sd-repair# fsck.f2fs sd128.img
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 249737216 (121942 MB)
Can't find a valid F2FS superblock at 0x0
Can't find a valid F2FS superblock at 0x1
TestdiskはF2FSをサポートしていません。
スーパーブロックを書き換える方法があるかどうかわからず、ファイルを回復したりファイルシステムを回復したいと思います。
これは良いパーティションからのF2FSスーパーブロックの16進数です。
10 20 F5 F2 01 00 07 00 09 00 00 00 03 00 00 00 0C 00 00 00 09 00
00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00
E1 0F 00 00 FF 0F 00 00 02 00 00 00 02 00 00 00 12 00 00 00 08 00
00 00 E1 0F 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 0A 00 00
00 2E 00 00 00 3E 00 00 03 00 00 00 01 00 00 00 02 00 00 00 31 8B
E4 FB 13 D1 42 26 A5 07 EA 8A B6 70 A9 45
これは私が間違ったパーティションで見つけた16進数です。
10 20 F5 F2 01 00 07 00 09 00 00 00 03 00 00 00 0C 00 00 00 09 00
00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 46 DC 01 00 00 00 00
31 ED 00 00 22 EE 00 00 02 00 00 00 06 00 00 00 72 00 00 00 77 00
00 00 31 ED 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 12 00 00
00 F6 00 00 00 E4 01 00 03 00 00 00 01 00 00 00 02 00 00 00 16 CD
C2 62 53 10 46 17 A5 B7 41 C6 8E AA 33 D5 73 00 64 00 2D 00 65 00
78 00 74 00
スーパーブロックは大丈夫だと思います。違いは、1つは128GBの部品で、もう1つは8GBの部品だからです。スーパーブロックが間違ったパーティションの正しい場所にあるかどうかを確認する方法がわかりません。私が知っている限り、オフセットが一致しません。しかし、私は16進エディタをうまく使うことができず、オフセットを比較する方法がわかりません。
更新:スーパーブロックのオフセットが正しくありません。 0x600または3セクタにあります。ディスクイメージから最初の512バイトを削除しました。これで fsck.f2fs が表示されます。
sd-repair# fsck.f2fs -f trim_sd.img
Info: Force to fix corruption
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 249704447 (121925 MB)
Info: MKFS version
"Linux version 3.4.0-CM-g87d27dd (Adam@TheKeurig) (gcc version 4.9 20150123 (prerelease)
(GCC) ) #6 SMP PREEMPT Sat Dec 17 21:28:57 CET 2016"
Info: FSCK version
from "Linux version 4.9.0-3-amd64 ([email protected])
(gcc version 6.3.0 20170516 (Debian 6.3.0-18) )
#1 SMP Debian 4.9.30-2 (2017-06-12)"
to "Linux version 4.9.0-3-amd64 ([email protected])
(gcc version 6.3.0 20170516 (Debian 6.3.0-18) ) #1 SMP Debian 4.9.30-2 (2017-06-12)"
Info: superblock features = 0 :
Info: superblock encrypt level = 0, salt = 00000000000000000000000000000000
Info: total FS sectors = 249704448 (121926 MB)
[f2fs_crc_valid: 477] CRC validation failed: cal_crc = 4076150800, blk_crc = 0 buff_size = 0x0
[f2fs_crc_valid: 477] CRC validation failed: cal_crc = 4076150800, blk_crc = 0 buff_size = 0x0
[f2fs_do_mount:1945] Can't find valid checkpoint
私が知っている限り、パーティションが移動され、パーティションテーブルに問題があることがわかります。すべてのデータが破損していないようです。 ms-dosパーティションテーブルを使用しています。
答え1
回復したい項目に応じて試すことができますcat sd128.img | strings [options] | grep -C10 [pattern for recovery]
。しかし、かなり怖いです。ただし、データをどこで開始できるかについての手がかりを提供できます。
このページは次の場所にあります。 法医学 WikiSSDに関しては便利です。主に解決するが光より速く(Flash Memory Transition Layer):システムに表示されるブロックデバイスをSSDの多数のストレージチップにマッピングし、ウェアレベリング、不良ブロック追跡、バックグラウンド最適化などを自動的に実行します。