お茶漬けぶろぐ

NASからうっかり消してしまったデータを復元する

保存していた録画データを操作ミスで消してしまった。あまりにもつらい。

まとめ。

・extundelete:exFATに対応していない

・testdisk:目的ファイルは復元されたっぽいがデータが完全に壊れている

・photorec:死ぬほど時間がかかるが復元される、ただし目的のファイルがどれかは不明(最終的に目的データは復元できなかった)

以下、雑多な記録。

extundeleteが良さげだったけど、exFATに対応していないようなので別の手を探すと、testdiskが見つかる。どうだろ?

取り敢えずインストールして実行してみる。十字キーとEnterキーで操作できる。

[bash]
$ sudo pacman -S testdisk
$ sudo testdisk
[/bash]

起動するとまずログを保存するか聞かれるので、取り敢えずCreateを選んでおく。

次にディスク選択画面に入るので、目的のディスクを選ぶ。

[bash]
Select a media (use Arrow keys, then press Enter):
>Disk /dev/sda - 128 GB / 119 GiB - PLEXTOR PX-128M5S
Disk /dev/sdb - 4000 GB / 3725 GiB - MARVELL Raid VD
Disk /dev/sdc - 2000 GB / 1863 GiB - WDC WD20EZRX-00D8PB0
[/bash]

NASとして使っているのは/dev/sdbなのでこれを選択。するとPartition TableのTypeを選ぶ段になるが、正解がどれだかよーわからん…

[bash]
Please select the partition table type, press Enter when done.
[Intel ] Intel/PC partition
[EFI GPT] EFI GPT partition map (Mac i386, some x86_64…)
[Humax ] Humax partition table
[Mac ] Apple partition map
>[None ] Non partitioned media
[Sun ] Sun Solaris partition
[XBox ] XBox partition
[Return ] Return to disk selection
[/bash]

Noneが自動選択されていたので、そのまま進んでみると、なんかコマンドメニューみたいなのが表示されるので、

[bash]
[ Analyse ] Analyse current partition structure and search for lost partitions
>[ Advanced ] Filesystem Utils
[ Geometry ] Change disk geometry
[ Options ] Modify options
[ Quit ] Return to disk selection
[/bash]

Analyseする。

Analyseが終わると、Quick Searchが選べるようになるので、取り敢えずそれを選ぶ→Structure:Okの表記が出る

パーティションが正しく発見されたっぽい

[bash]
Disk /dev/sdb - 4000 GB / 3725 GiB - CHS 486382 255 63
Partition Start End Size in sectors
>P exFAT 0 0 1 486382 59 13 7813730560
[/bash]

ので、Pを押してファイルリストに入って、そのまま目的のファイルを探す。

見つけたら画面の指示に従ってコピーすると復元されるはずだ…………

しかし、復元された動画データは、完全に壊れていた…(再生できなかった)

もうひとつ、testdiskと一緒に入ってきたPhotoRecというものがある。どうも、testdiskはファイルではなくディスクの破損を修復するのがメインの目的で、ファイルについてはPhotoRecを使えという事みたい。ArchWikiには「ファイルシステムは無視して素のデータを探し当てるので、再フォーマットされたり完全に破壊されたファイルシステムやパーティションテーブルでも動作」とのことで、強い(こなみ)

それから、どうやらこのソフト、復元できるファイルを手当たり次第に復元しまくるらしい。また、このソフトが知っているファイル形式に限って復元可能である…とは言え、File Formats Recovered By PhotoRec - CGSecurityによれば大抵のファイルは問題なく復元可能である。中にはNintendo DSのゲームイメージであるnds形式なんかもあるし、結構強そう。

しかし、4TBのボリュームを選択しているからか、FilesystemAnalysisで異常に時間がかかった。ファイルが存在しない領域のみにしぼって復元するはずだが、結局5~10時間くらいかかっていたっぽい。

その後はドカドカ復元されていくので、保存先容量がいっぱいいっぱいにならないように順次チェック。

というのも、復元されたものはファイル名が無いので一つ一つ再生してみて確認しないといけないのだ。結構めんどい。

再生可能ファイルと再生不可能ファイルがそれぞれあったが、多分普通にデータが壊れている。空き容量に対して復元されたデータ量が3倍くらいあったので、一部分しか復元できなかったんだろう(ファイルサイズはそれらしいサイズだったので、重複したゴミデータでも含みまくっているのだろうか、と)

傾向としては、ファイルサイズが500MB程度までのもの(小さすぎるものは除外)だと再生可能な事が多かったように感じる。GBのオーダーまでいくと大抵の場合再生できなかった。断片化とかしてるともうダメなんだろうか?ファイルシステムとか全然勉強してないのでよーわからん。

取り敢えず、ファイルの復元手段を得たのは良いが、目的のファイルは復元できなかった。testdiskの時点で復元したものが再生不可だったので、そもそも復元不可だったのかもしれない。残念。

< AndroidStudioいじってたらjava.lang.IllegalStateException aapt2 is missingとか言われた

AndroidStudioの初期セットアップが容量不足で死ぬ >