1. umount 文件系统
$ umount /dev/sda1
$ mount -o remount,ro /dev/sda1
其中,sda1是误删文件所在盘。若操作系统就在sda1上,会提示sda1 is busy。那只好不umount,在后面的extundelete命令直接恢复在sda1上了。
2. 用系统自带 debugfs 命令,找到误删文件的 inode
$ sudo debugfs
debugfs: open /dev/sda1
debugfs: ls -d /cnn/caffe
其中,/cnn/caffe是误删除文件所在目录。列出文件inode形如:
27132740 (12) . 43515906 (4084) .. <2> (28) file_list_all.txt
<27525645> (20) features_all <27132765> (28) feat_helper_pb2.py
<27132766> (28) feat_helper_pb2.pyc
然后退出debugfs。
debugfs: quit
3. 用 extundelete 命令恢复
$ cd
$ sudo extundelete /dev/sda1 --restore-inode 27525645
$ sudo extundelete /dev/sda1 --restore-inode 27132765
如果没有下面这句话,就是恢复成功了
Unable to restore inode 27525645 (file.27525645): Space has been reallocated
4. 恢复文件名
恢复的文件放在目录~/RECOVERED_FILES
$ cd RECOVERED_FILES/
$ mv file.27132765 feat_helper_pb2.py