Linux-Rhel6 恢復誤刪文件

須要工具extundelete(可經過xshell上傳下載到linux)

知識點:

ifconifig eth0             查看ip

fdisk /dev/sda          管理磁盤

mkfs.ext4 /dev/sda4         格式化sda4分區爲ext4的文件系統分區

mount /dev/cdrom /mnt/        掛載光驅

umount /dev/cdrom        卸載光驅

df -Th                查看掛載信息

echo $?                返回上個命令是否成功

ls !$                查看上個命令的參數

ls *2fs*            過濾查看文件

tar -jxvf ??.tar.bz2           解壓文件  -j 解壓bzip2類型 -x 解壓 -v 詳細信息 -f 指定文件名

rpm -ivh ??.rpm            安裝 -i 安裝 -v詳情信息 -h帶單位

uname -m            查看操做系統位數

diff 1.txt 2.txt        比較文件

md5sum 1.txt 2.txt        比較文件

configure            檢測

make                編譯

make install            安裝

extundelete /dev/??? --inode 2  查看可恢復文件

extundelete /dev/??? --restore-[inode/file/directory/all] 恢復文件


準備工做

[root@demon-rhel6 ~]#mount /dev/cdrom /mnt/      ###掛載光盤到mnt目錄下
   
[root@demon-rhel6 ~]# fdisk /dev/sda             ###fdsik 爲磁盤管理器

Command (m for help):p                           ### 'p' 查看已劃分好的分區

Command (m for help):n                 ###'n' 建立新分區

Command action 
    e  extended  #擴展分區
    p  primary partition(1-4) #主分區
p                                                ### 'p' 選擇建立主分區

First cylinder (1428-2610, default 1428):        ###選擇從哪裏開始分區,'enter'選擇默認

Last cylinder, +cylinders or +size{K,M,G} (1428
 - 2610,default:2610) : +1G                     ###選擇分區的大小或末位置,'+1G' 分出1G


Command (m for help):w                 ### 'w' 保存分區設置

[root@demon-rhel6 ~]#reboot                      ###重啓後生效

[root@demon-rhel6 ~]#mkdir /tmp/sda4             ###爲新分區建立掛載點

[root@demon-rhel6 ~]#mkfs.ext4 /dev/sda4     ###格式化sda4分區爲ext4的文件系統分區

[root@demon-rhel6 ~]#mount /dev/sda4 /tmp/sda4   ###掛載sda4分區

[root@demon-rhel6 ~]#df -Th                      ###查看掛載信息 -T顯示系統文件 -h顯示大小單位

[root@demon-rhel6 ~]#echo $?              ###查看命令是否執行成功

[root@demon-rhel6 ~]#cd /tmp/sda4                ###進入sda4分區



刪除文件

如下爲製造被刪除的文件操做

[root@demon-rhel6 sda4]##cp /etc/passwd /tmp/sda4     ###拷貝文件到sda4

[root@demon-rhel6 sda4]##touch /tmp/sda4/a.txt          ###建立文件

[root@demon-rhel6 sda4]##vim /tmp/sda4/a.txt          ###編輯文件

[root@demon-rhel6 sda4]##mkdir -p /aa/bb/cc           ###建立目錄 -p建立父目錄

[root@demon-rhel6 sda4]##cp /tmp/sda4/a.txt /tmp/sda4/aa/

[root@demon-rhel6 sda4]##cp /tmp/sda4/a.txt /tmp/sda4/aa/bb

開始刪除

[root@demon-rhel6 sda4]##ls /tmp/sda4/                   ###查看有哪些文件

[root@demon-rhel6 sda4]##mkdir /tmp/back           ###建立備份夾

[root@demon-rhel6 sda4]##mkdir /tmp/sda4/* /tmp/back/      ###備份
   
[root@demon-rhel6 sda4]##ls !$                        ###'!$'表示上次命令最後一個參數也就是/tmp/back

[root@demon-rhel6 sda4]##rm -rf passwd a a.txt                ###刪除文件

注意:lost+found暫不明確其做用,先別刪除


安裝工具

被刪除後的文件之因此能被恢復是由於,文件在硬盤中的數據還在只不過名字被刪除了而已
可是若是有別的數據區覆蓋也就是新添加了一些其餘文件那麼則恢復不了,爲了不被覆蓋
被刪除後的第一時間要卸載分區

[root@demon-rhel6 sda4]#cd                                 ###退出分區

[root@demon-rhel6 ~]#umount /dev/sda4                      ###卸載sda4

注意若是不退出分區,則沒法卸載該分區----站在橋上不可拆橋

umount: /tmp/sda4: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))


[root@demon-rhel6 ~]#tar -jxvf soft/extundelete-0.2.4.tar.bz2  ###解壓  -j 解壓bzip2類型 -x 解壓 -v 詳細信息 -f 指定文件名

[root@demon-rhel6 soft]# cd extundelete-0.2.4

[root@demon-rhel6 extundelete-0.2.4]# ls                      ###能夠看到有configure的文件

[root@demon-rhel6 extundelete-0.2.4]# configure               ###檢查環境

configure: error: Can't find ext2fs library                   ///缺乏ext2fs環境庫

[root@demon-rhel6 extundelete-0.2.4]# cd /mnt/Packages/           ###打開光碟的安裝包下載環境

[root@demon-rhel6 Packages]# ls ext2fs                   ###沒找到
ls: 沒法訪問ext2fs: 沒有那個文件或目錄

[root@demon-rhel6 Packages]# ls *2fs*                   ###縮小範圍查找相似

[root@demon-rhel6 Packages]# uname -m                   ###查看操做系統位數

[root@demon-rhel6 Packages]#rpm -ivh e2fsprogs-libs-1.41.12-12.el6.x86_64.rpm              ###安裝 -i 安裝 -v詳情信息 -h帶單位

warning: e2fsprogs-libs-1.41.12-12.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
    package e2fsprogs-libs-1.41.12-12.el6.x86_64 is already installed

//上面報錯表示已有該環境了,這是侯只是缺乏了相關的開發工具devel 而不是libs

[root@demon-rhel6 Packages]#rpm -ivh e2fsprogs-devel-1.41.12-12.el6.x86_64.rpm 

安裝完後返回以前的文件夾

[root@demon-rhel6 Packages]#cd  -

[root@demon-rhel6 extundelete-0.2.4]# ./configure         ##檢查安裝環境

[root@demon-rhel6 extundelete-0.2.4]#  make          ##編譯

[root@demon-rhel6 extundelete-0.2.4]#  make install       ##安裝


開始恢復

[root@demon-rhel6 extundelete-0.2.4]# cd ~/test

[root@demon-rhel6 test]# extundelete /dev/sda4 --inode 2

File name                                       | Inode number | Deleted status
.                                                 2
..                                                2
lost+found                                        11
lookd.bat                                         12             Deleted
sleep.vbs                                         13             Deleted
variable.txt                                      14             Deleted
hosts                                             15             Deleted
a.txt                                             16             Deleted
aa                          8193           Deleted

[root@demon-rhel6 test]# extundelete /dev/sda4 --restore-inode 12          ##恢復lookd.bat到當前目錄

[root@demon-rhel6 test]# diff RECOVERED_FILES/file.12 /tmp/back/lookd.bat  ##對比備份文件是否一致

[root@demon-rhel6 test]# extundelete /dev/sda4 --restore-filenames hosts   ##以文件名恢復

[root@demon-rhel6 test]# extundelete /dev/sda4 --restore-directory         ##以目錄恢復

[root@demon-rhel6 test]# extundelete /dev/sda4 --restore-all            ##恢復所有node

相關文章
相關標籤/搜索