目標內容
恢復linux下誤刪除的檔案
1.恢復linux下誤刪除的檔案
刪除檔案和資料夾
rm -rf 檔名或目錄名
-r 遞迴刪除(可以刪除目錄和目錄裡面的東西)
-f 強行刪除
ext4檔案系統上刪除檔案,可以恢復: extundelete
windows恢復誤刪除的檔案: final data v2.0 漢化版 和 easyrecovery
linux檔案系統由三部分組成:檔名,inode(索引節點),block(塊)
a.txt inode block
檔名 存放檔案元資料資訊 真正存放資料
檢視檔案inode號:
[root@xuegod72 mnt]# ls -i a.txt
檢視inode中的檔案屬性; 通過stat命令檢視inode中包含的內容
[root@xuegod72 mnt]# stat a.txt
塊block塊:真正儲存資料的地方
塊大小是可以改變的
假設我們的塊大小為 2m,而我們現在的資料為101m ,那麼我們需要多少個塊呢?
101/2 需要50還是51個塊
umount
如何避免誤刪除的檔案內容被覆蓋???
解除安裝需要恢復檔案的分割槽:或以唯讀的方式掛載
開源軟體發布中心
準備測試分割槽:
[root@localhost ~]# fdisk /dev/sdb
輸入 n:新建
p:主分割槽
1:分割槽號
w:儲存
[root@localhost ~]# ls /dev/sdb*
[root@localhost ~]# partx -a /dev/sdb #獲得新分割槽表
[root@localhost ~]# mkfs.ext4 /dev/sdb1
掛載 [root@localhost ~]# mkdir /sdb1
[root@localhost ~]# mount /dev/sdb1 /sdb1
[root@localhost ~]# df -th |tail -1
複製一些測試檔案,然後把這些檔案再刪除:
[root@localhost ~]# cp /etc/passwd /sdb1
[root@localhost ~]# cp /etc/hosts /sdb1
[root@localhost ~]# echo aaa > a.txt
[root@localhost ~]# mkdir -p /sdb1/a/b/c
[root@localhost ~]# cp a.txt /sdb1/a/
[root@localhost ~]# cp a.txt /sdb1/a/b/
[root@localhost ~]# touch /sdb1/a/b/kong.txt
安裝tree命令:
[root@localhost packages]# rpm -ivh tree-1.5.3-2.el6.x86_64.rpm
[root@localhost packages]# tree /dev/sdb1 #採用樹顯示 /dev/sdb1中的檔案目錄
刪除檔案並解除安裝分割槽:
[root@localhost sdb1]# pwd
/sdb1
[root@localhost sdb1]# ls
a hosts lost+found passwd
[root@localhost sdb1]# rm -rf a passwd hosts
[root@localhost sdb1]# ls
lost+found
如何避免誤刪除的檔案內容被覆蓋???
解除安裝需要恢復檔案的分割槽(解除安裝當前目錄必須退出當前才行):或以唯讀的方式掛載
[root@localhost sdb1]# cd ..
[root@localhost sdb1]# umount /dev/sbd1
從windows上傳extundelete檔案到linux,安裝xmanager或者crt
解壓並安裝extundelet
[root@localhost ~]# ls
[root@localhost ~]# tar jxf extundelete-0.2.4.tar.bz2
[root@localhost ~]# cd extundelete-0.2.4
[root@localhost extundelete-0.2.4]# rpm -ivh /media/rhel_6.5\ x86_64\ disc\
[root@localhost extundelete-0.2.4]# ./configure
[root@localhost extundelete-0.2.4]# make && make install
make:編譯,把源**編譯成可執行的二進位制檔案
make install 安裝
開始恢復
可以通過以下幾種方法來進行恢復:
通過inode節點恢復
通過檔名恢復
恢復某個目錄,如目錄a下的所有檔案:
恢復所有的檔案
[root@localhost ~]# mkdir /test #建立乙個目錄用來存放恢復的資料和目錄
[root@localhost ~]# cd /test/
首先先檢視一下刪除檔案的節點號
[root@xuegod63 ~]# extundelete /dev/sdb1 --inode 2
方法1:通過inode節點恢復
[root@localhost test]# extundelete --restore-inode 12 /dev/sdb1 #12為上一步中inode
[root@localhost test]# ls #檢視恢復的檔案
recovered_files
如何檢視恢復後的檔案和原來的檔案一致呢?我們可以用diff命令
[root@localhost recovered_files]# diff file.12 /etc/passwd
[root@localhost recovered_files]# #沒有任何輸出,說明結果一樣
方法二,通過檔名恢復
[root@localhost test]# extundelete --restore-file passwd /dev/sdb1
[root@localhost test]# ls
recovered_files
[root@localhost test]# cd recovered_files/
[root@localhost recovered_files]# diff passwd /etc/passwd
方法三:恢復某個目錄,如目錄a下的所有檔案:
[root@localhost test]# extundelete --restore-directory a /dev/sdb1
[root@localhost test]# ls recovered_files/
a file.12 passwd
[root@localhost test]# cd recovered_files/
[root@localhost recovered_files]# ls
a file.12 passwd
[root@localhost recovered_files]# tree a
方法四:恢復所有的檔案
[root@localhost test]# extundelete --restore-all /dev/sdb1
[root@localhost test]# ls recovered_files/
a file.12 hosts passwd passwd.v1
extundelete在恢復檔案的時候能不能自動建立空檔案和目錄?
答:不能。
rehl7 xfs系統 可以的
使用 xfsdump 時,請注意底下的限制:
xfsdump 不支援沒有掛載的檔案系統備份!所以只能備份已掛載的!
xfsdump 必須使用 root 的許可權才能操作 (涉及檔案系統的關係)
xfsdump 只能備份 xfs 檔案系統啊!
xfsdump 備份下來的資料 (檔案或儲存**) 只能讓 xfsrestore 解析
xfsdump 是透過檔案系統的 uuid 來分辨各個備份檔的,因此不能備份兩個具有相同 uuid 的檔案系統
linux檔案誤刪除恢復
首先準備好工具debugfs 1 以唯讀方式掛載誤操作的硬碟 mount r n o remount r dev 若提示磁碟有程序或者使用者在操作,則使用fusr 檢視什麼在使用這個硬碟。若無重要程序則使用fuser k v m dev 乾掉。2 debugfs dev hda.3 檢視被刪除的檔案...
linux檔案誤刪除恢復
首先準備好工具debugfs 1 以唯讀方式掛載誤操作的硬碟 mount r n o remount r dev 若提示磁碟有程序或者使用者在操作,則使用fusr 檢視什麼在使用這個硬碟。若無重要程序則使用fuser k v m dev 乾掉。2 debugfs dev hda.3 檢視被刪除的檔案...
Linux恢復誤刪除檔案實踐
俗話說常走夜路沒有不遇見鬼的。實際工作中,難免有操作失誤。如果失誤刪除了重要檔案,後果.今天要說的就是在linux下,刪除了重要檔案後該怎麼做。第一步 這步最關鍵。抽自己乙個嘴巴.玩笑了,我想說的是保持冷靜,先不要做任何操作。即便是刪除了的檔案,只要此時沒有磁碟寫入操作,將原有檔案儲存位置是用掉,那...