ファイルの復元

 間違って、録画データを消してしまいました。まあ、諦めても良かったのですが、復元の方法を調べました。

プロセスが使用中のファイル

 何かのプログラムが、そのファイルを使用(オープン)している間は、使用中に削除しても表面上削除されただけです。lsof コマンドで、調べ、proc ファイルシステムからコピーすることができます。

$ sudo lsof | grep video
smbd      19651            nobody   15r      REG        8,1 18596280380         34 /media/video/work.ts (deleted)

 この、19651 と 15r を使いコピーできます。

$ sudo ls -l /proc/19651/fd/15
lr-x------ 1 root root 64  9月 30 22:11 /proc/19651/fd/15 -> /media/video/work.ts
$ sudo cp /proc/19651/fd/15 work.ts

extundelete を使う

 Raspberry Pi OS にはパッケージがあります。

$ sudo apt-get install extundelete

 復活させたいファイルのあるパーティションを指定して実行します。

$ sudo extundelete --estore-all --after $(date +%s -d '1 hour ago') /dev/xxxx

 これは、過去 1 時間内に削除されたファイルで、復元できるものを全て復元します。データが上書きされていなければ、RECOVERED_FILES というディレクトリが作成され、そこに保存されます。

 全部は復元できませんでしたが、必要なものは復元できました。予め、extundelete はインストールしておいたほうがいいでしょう。

Memo

Posted by sirius