國外的Linux系統(tǒng)管理員守則中有這么一條:“慎用 rm -rf 命令,除非你知道此命令
所帶來的后果“
Linux下刪除文件并不是真實(shí)的刪除磁盤分區(qū)中的文件,而是將文件的inode節(jié)點(diǎn)中
的扇區(qū)指針清除,同時(shí)釋放這些數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)塊,當(dāng)釋放的數(shù)據(jù)塊被系統(tǒng)重新分
配時(shí),那些被刪除的數(shù)據(jù)就會(huì)被覆蓋,所以誤刪除數(shù)據(jù)后,應(yīng)馬上卸載文件所在的
分區(qū)。
每個(gè)文件有inode和block組成,inode是文件系統(tǒng)組成的最基本單元,它保存著文
件的基本屬性(大小、權(quán)限、屬主組等)和存放的位置信息。而block用來存儲(chǔ)數(shù)據(jù)。
類似key-value,inode就是key,block對(duì)應(yīng)value,通過key查找key對(duì)應(yīng)的value。
類似pyt hon的字典。
目錄
1 查看根目錄的inode值
2 安裝ext undelet e
2.1 下載ext undelet e
2.2 所需依賴包
2.3 編譯安裝ext undelt e
3 用ext undelet e恢復(fù)文件
3.1 模擬數(shù)據(jù)誤刪除環(huán)境
3.2 卸載磁盤分區(qū)
3.3 查詢恢復(fù)數(shù)據(jù)信息
3.4 開始恢復(fù)單個(gè)文件
4 檢測(cè)是否恢復(fù)成功
查看根目錄的inode值
# ls -id /
2 /
一般”根”目錄的inode值為2,一個(gè)分區(qū)掛載到一個(gè)目錄下時(shí),這個(gè)”根”目錄的inode值
為2
# mount /dev/sdb2 /mnt
# ls -id /mnt
2 /mnt
# umount /dev/sdb1
3、查看當(dāng)前路徑下的文件目錄刪除情況
開始恢復(fù)單個(gè)文件
默認(rèn)恢復(fù)到當(dāng)前目錄下的RECOVERED_FILES目錄中去
# extundelete /dev/sdb2 --restore-file hosts
恢復(fù)一個(gè)目錄
# extundelete /dev/sdb2 --restore-directory test/
全部恢復(fù)
# extundelete /dev/sdb2 --restore-all