B. 如何恢復 Linux 上刪除的文件
作為一個多用復戶、多任制務的操作系統,Linux下的文件一旦被刪除,是難以恢復的。盡管刪除命令只是在文件節點中作刪除標記,並不真正清除文件內容,但是其他用戶和一些有寫盤動作的進程會很快覆蓋這些數據。不過,對於家庭單機使用的Linux,或者誤刪文件後及時補救,還是可以恢復的。
一、用運SecureCRT遠程對操作系統上,查看一下當前系統版本號,及文件系統格式
二、為方便本次實驗,我們新創建一文件。
三、執行刪除操作
四、運用,系統自還工具debugfs來修復
五、打開,剛剛被刪除文件所在的分區
六、用ls 加-d參數顯示剛剛刪除文件所在的目錄
七、顯示有<>尖括弧的就是我們要找的文件Inode 號 執行logmp –I <393289>
八、執行完命令後,顯示了一屏信息,我們需要的是下面這一行,並且要記住,後面的值
九、退出debugfs
十、執行如下命令
十一、以上結果表示恢復成功我們看下/tmp目錄下到底有沒有
十二、tmp目錄下有我們顯示一下
C. 如何在Linux系統中恢復誤刪除的文件
1. 添加硬碟,創建分區,關機後添加,在硬體那裡新增一個dfisk分區1-6是分出一個測試區
2. #fdisk /dev/sdb # 創建一個sdb1分區
3. #partx -a /dev/sda #獲取新分區表
4. #mkdir /tmp/sdb #創建sdb文件夾
5. #mkfs.ext4 /dev/sdb1 #格式化
6. #mount /dev/sdb1 /tmpsdb #掛載新的分區
7. #umount /tmp/sdb #卸載
8. 解壓工具extundelete 可以在歷碼http://sourceforge.net下載
9. 解壓#tar jxvf 包名
#yum install gcc-c++
#cd /mnt/packages
#yum install *2fs*
10. 編譯安裝
#make –j
#make install
11. 創建空目錄 mkdir test存放恢復的文件
恢復的四個方法,前提卸載光碟機了
1. 通過inode結點恢復 #extundelete /dev/sdb1 - -restore-inode inode號
2. 通過文件名恢復 #extundelete/dev/sdb1 - -restore-file 文件名
3. 恢復某個目錄 #extundelete/dev/sdb1 - -restore-directory 目錄叢橡名肢鄭哪
4. 恢復所有文件 #extundelete/dev/sdb1 - -restore-all
無法恢復空文件和空目錄
D. linux誤操作刪除文件後,還能還原么
誤刪除文件進程還在的情況
這種一般是有活動的進程存在持續標准輸入或輸出,到時文件被刪除後,進程PID還是存在。這也就是有些伺服器刪除一些文件但是磁碟不釋放的原因。比如當前舉例說明:
通過一個shell終端對一個測試文件做cat追加操作:
[root@21yunwei_backup ~]# echo "hello py" > testdelete.py
[root@21yunwei_backup ~]# cat >> testdelete.py
hello delete
另外一個終端查看這個文件可以清楚看到內容:
[root@21yunwei_backup ~]# cat testdelete.py
hello py
hello delete
此時,在當前伺服器刪除操作文件rm -f ./testdelete.py
命令查看這個目錄,文件已經不存在了,那麼現在我們將其恢復出來。
1,lsof查看刪除的文件進程是否還存在。這里用到一個命令lsof,如沒有安裝請自行yum或者apt-get。類似這種情況,我們可以先lsof查看刪除的文件 是否還在:
[root@21yunwei_backup ~]# lsof | grep deleted
mysqld 1512 mysql 5u REG 252,3 0 6312397 /tmp/ibzW3Lot (deleted)
cat 20464 root 1w REG 252,3 23 1310722 /root/testdelete.py (deleted)
幸運的是這種情況進程還存在 ,那麼開始進行恢復 操作。
2,恢復。
恢復命令:
cp /proc/pid/fd/1 /指定目錄/文件名
進入 進程目錄,一般是進入/proc/pid/fd/,針對當前情況:
[root@21yunwei_backup ~]# cd /proc/20464/fd
[root@21yunwei_backup fd]# ll
total 0
lrwx------ 1 root root 64 Nov 15 18:12 0 > /dev/pts/1
l-wx------ 1 root root 64 Nov 15 18:12 1 > /root/testdelete.py (deleted)
lrwx------ 1 root root 64 Nov 15 18:12 2 > /dev/pts/1
恢復操作:
cp 1 /tmp/testdelete.py
查看文件:
[root@21yunwei_backup fd]# cat /tmp/testdelete.py
hello py
hello delete
恢復完成。
E. linux 系統下面,rm -rf 刪除的文件能找回來嗎
使用rm -rf刪除的文件不能找回的;
對rm命令的理解:
1.rm命令可以刪除一個目錄中的一個或多個文版件或目錄,也可以將權某個目錄及其下屬的所有文件及其子目錄均刪除掉。對於鏈接文件,只是刪除整個鏈接文件,而原有文件保持不變。
2.使用rm命令刪除了一個文件,就無法再恢復它。所以,在刪除文件之前,最好再看一下文件的內容,確定是否真要刪除。
3.rm命令可以用-i選項,這個選項在使用文件擴展名字元刪除多個文件時特別有用。使用這個選項,系統會要求你逐一確定是否要刪除。
(5)linux還原刪除的文件擴展閱讀:
rm命令參數如下
1.-d:直接把欲刪除的目錄的硬連接數據刪除成0,刪除該目錄;
2.-f:強制刪除文件或目錄;
3.-i:刪除已有文件或目錄之前先詢問用戶;
4.-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一並處理;
5.-v:顯示指令的詳細執行過程。
F. linux不小心刪除文件後怎麼恢復
原理主要是刪除的文件並沒有實際上從硬碟上抹去,只是inode索引刪除了相關的信息,因此專只要找到剛刪除屬文件的block上,就可以恢復已經刪除的文件。
以下方法在ext3的文件系統上測試通過,ext2的沒有測試過。假設刪除的文件在dir下面,位於/dev/sda5上。
主要藉助debugfs
1 運行debugfs,進入調度模式
2 執行open /dev/sda5
3 執行ls -d dir 會列出此目錄最近的操作,其中可以看到<num>的日誌刪除記錄
4 執行logmp -i <num> 顯示此日誌內容
5 在輸出中尋找刪除文件對應的block,記錄下來blockid
6退出debugfs,運行dd if=/dev/sda5 of=/tmp/saved bs=1024 count=1 skip=blockid