在Linux中,使用 rm 命令刪除文件需要謹慎。有時候,由於誤操作,導致重要文件刪除了,也是有機會恢復的。
本文僅介紹 ext4 文件系統如何恢復刪除的文件。 XFS 文件系統,還沒有穩定的恢復方法。(如果有,歡迎推薦給筆者)。
在 Linux 系統中,刪除一個文件,實際上並沒有清楚 inode 節點和 block 數據,只是在這個文件的父目錄裡的 block 中刪除這個文件的名字。當一個文件不存在任何 link 的時候,這個文件才會被刪除。
所以,當誤刪除文件以後,首先要卸載被刪除數據所在的分區。如果是根分區的數據被刪除,那麼就要進入單用戶模式,以只讀方式掛載根分區。因為這樣才能避免數據被操作系統覆蓋。
針對 Linux 的 EXT 文件系統,Debian默認的恢復工具有 ext3grep 、 extundelete 。extundelete 是一個開源的Linux數據恢復工具,支持 ext3, ext4 文件系統。
安裝
<code>sudo
apt install extundelete/<code>
測試恢復效果:
<code>sudo
mount /dev/sdb1 /mnt/ext4
cd
/mnt/ext4
sudo
rm *.jpeg
cd
/home/user/
sudo
umount /mnt/ext4
sudo
extundelete /dev/sdb1 --restore-all
/<code>
恢復結果如下圖:
不是很理想,這恢復了一張圖片。 文件名也沒有恢復成功。跟網絡文章有較大出入。
可能是虛擬機,並不是真實硬盤造成的。
extundelete 還有很多的用法,詳情可以參閱 extundelete --help .