Photorecというオープンソースのツールを使えば、間違えて消してしまったファイルを元に戻せる可能性がある。
参考リンク
Digital Picture and File Recovery(公式wiki)testdisk — testdisk 7.1 documentation(公式ドキュメント)
PhotoRec Step By Step - CGSecurity(公式wikiのPhotoRec使用手順)
手順
※Linuxでの手順を書きますが、PhotoRecはWindowsでも使えるツールみたいです。1.対象ディスクのコピー
対象ディスクが外部デバイスではない場合、まずPCの電源を消して、LiveOSでUSBブートします。ddコマンドなどで、対象ディスク全体をコピーする(デバイスファイルから直接リカバリすることもできるが、こちらのほうがたぶん安全)。壊れたHDDからファイルを回復したい場合などは、ddrescueコマンドを使えばうまく行く可能性あり。
dd if=/dev/sda of=backup.img bs=1M status=progress
ddコマンドの使い方については詳しくは書きませんが、lsblkなどでディスク名を確認してコピーしましょう。
2.TestDiskをインストール
PhotoRecは、TestDiskというツールの一部なので、TestDiskをインストールします。UbuntuやDebianなら以下コマンドでインストールできるはず。
sudo apt install testdisk
公式サイトはここ(https://www.cgsecurity.org/wiki/TestDisk_Download)にあるので、ここからダウンロードもできる。
3.PhotoRecを起動
sudo photorec backup.img
1でディスクをコピーしたファイルを指定して起動。
これ以降は対話式で実行するので説明は要らない…はずなのですが、やや分かりにくいので書いておきます。
4.対象ディスクを選択
バックアップイメージを対象にする場合、これは一つしか表示されないはず。エンター押せばOK。
5.ファイルの種類の選択
パーティション選択の画面に移りますが、すぐにパーティションを選択せずに、右に行って[ File Opt ]を選択するのがオススメ(下部のメニューは左右ボタンで動かせる)。
リカバリしたいファイルの種類を選択できます。sで全消去して、xで目的のファイルの種類を有効化し、エンターを押して元に戻る。
6.パーティションの選択
さっきの画面に戻ります。対象のパーティションを選択し、下メニューを[ Search ]に戻してエンター。7.ファイルシステムの種類の選択
対象パーティションのファイルシステムがext2、ext3、ext4の場合は[ ext2/ext3 ]を、それ以外の場合は[ Other ]を選択。(ext4も[ ext2/ext3 ]を選ぶのに注意)
8.未割り当ての領域だけをスキャンするか、全体をスキャンするかを選ぶ
[ Free ]を選択した場合、現在使われていない領域だけからスキャンするようです。この場合、削除済みのファイルだけをリカバリし、未削除のファイルは無視されます。
9.出力先ディレクトリを選択
出力先を選択し、cを入力すればスタート。
10.PhotoRecを終了
終わったら[ Quit ]を選択していって終了。
11.その後
PhotoRecによってリカバリされるファイルは、ランダムなファイル名で大量に出力されます。ここから目的のファイルを見つけ出す必要がある訳です。重複した中身のファイルがリカバリされる可能性があるので、まずはそれを消しておきましょう。
fdupesコマンドを使うと、
sudo fdupes -rfdN (出力したディレクトリ)
で重複消去できる。
そのあとはfindコマンドとか使って頑張ってください…。