lubuntu24です、色々勉強になったので備忘録
症状
大事なファイルを間違って空白で上書きしてしまった。削除したわけではなくあくまで上書き。
1 たまたまntfsのストレージだったのですぐにwindowsに切り替えてリカバリソフトを試す。しかし間違って削除ではなくあくまで 0 で上書きしたファイルなので見つけようがないらしく、何も探せなかった。
2 私はこういう場合、現在のファイルのデータがあるアドレスの先頭が00に置き換わってしまうだけで 続く アドレスには元の古いデータが残ってると思っていた。だから 現在のファイルのデータがあるアドレスさえ分かればその後ろのデータを復元するだけだから簡単だと思ってた。プログラミングでデバッグして変数に振られた アドレスの状態を見てるとそういう感覚になる。 でも AI に聞いたところでは上書きした時点で全く別のアドレスにデータが書き込まれるらしい。そして上書きされる前のデータがどこに書かれていたか、その場所を知ることはntfs では不可能ということだった。
そうなのか・・??
3 lubuntuに切り替えて復元
① hexeditで対象のストレージをオープン(デバイスまるまるね)
②文字列を検索:たまたまゼロにしたファイルの1週間くらい前のバックアップがあったのでファイルの先頭と終末はわかっていた。二バイト文字は分かりづらいので英数だけで特徴的な文字列を検索。パテーションを90Gくらいで切っていたので数分でヒットして先頭と終末のアドレスはわかった。引き算でファイルサイズもわかる。
③ddコマンドでアドレスのデータを読み取って書き出し
sudo dd if=/dev/hoge of=hogetta.txt bs=1 skip=先頭アドレス count=サイズ
hogeの部分を適宜変える これで無事復元できました〜😂😂
④テラバイトのストレージだったら検索を諦めてたかな?そもそもバックアップがなければどうしてただろう?大事なファイルだから最後に書き込んだ内容は覚えてた そういうところから 地道に検索をかけていたかもしれない。
⑤そもそも ストレージへのデータの書き込みって 断面化してる可能性もあるから まあこれは1mb もないようなファイルだから きれいにあったんだと思うけど 断片化してたら復元は難しかっただろう。それでも 部分的な復元は可能。もちろん 別のデータで上書きされてしまったらそこで終わりなので該当のストレージは極力 何もしない、手をつけないことが 最低条件。
4 今回の件の教訓はバックアップは大事だってことですね。 Windows の頃は 毎日起動のタイミングでバックアップを取るようにスクリプト 書いてたんだけどlubuntu にしてからはやってなかった。今真剣に lubuntuのスクリプト 書いてるところです。
書きかけ〜(*´∀`*)
0 件のコメント:
コメントを投稿