<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Linux 誤刪文件恢復命令及方法

          共 2836字,需瀏覽 6分鐘

           ·

          2020-12-16 20:49

          作者:

          鏈接:http://r6d.cn/JzNf

          前言


          無論在哪個系統(tǒng)中,刪除文件都是必須謹慎的操作。


          因為如果不小心刪除了重要文件,就會導致個人或公司出現(xiàn)重大的損失。


          類似于windows系統(tǒng)誤刪了文件,可以使用一些軟件進行恢復操作。Linux也是有幾款軟件可以做到誤刪恢復的。


          注意事項:雖然有軟件可以對誤刪的數(shù)據(jù)進行恢復,但是完全恢復數(shù)據(jù)的概率并不是百分百的。


          因此,使用rm命令刪除文件的時候,一定要小心;重要的數(shù)據(jù)一定要有備份;并且恢復刪除的數(shù)據(jù)前,刪除文件的目錄內(nèi)不能往進存放新東西,否則覆蓋掉的信息無法找回。


          下面介紹的就是對Linux中誤刪文件的恢復操作。

          1、lsof


          原理:
          這個命令實際上并不能直接用來恢復文件,不過它可以列出被各種進程打開的文件信息。


          配合其他命令,從/proc目錄下的信息中恢復“文件已刪除,但進程仍保持打開該文件的狀態(tài)”的文件。


          /proc目錄是掛載的是在內(nèi)存中所映射的一塊區(qū)域,當我們對這些文件進行讀取和寫入時,實際上是在從內(nèi)存中獲取相關信息。


          因此,當我們對文件進行讀取或?qū)懭霑r(即有進程正使用文件時),哪怕硬盤中的該文件已刪除,還可以從內(nèi)存中的信息恢復文件。


          注意:
          必須以 root 用戶的權限運行, 因為lsof 需要訪問核心內(nèi)存和各種文件。


          只能恢復“文件已刪除,但進程仍保持打開該文件的狀態(tài)”的文件。


          如果誤刪了目錄,目錄中的其他文件未被進程打開,沒有進行使用的文件將無法使用此方法恢復。


          lsof輸出信息的意義:

          COMMAND       進程的PID(進程標識符)USER          進程所有者FD            用來識別該文件(文件描述符)DEVICE        指定磁盤的名稱SIZE          文件的大小NODE          索引節(jié)點(文件在磁盤上的標識)NAME          打開文件的確切名稱

          最常用參數(shù):


           -c       顯示某進程現(xiàn)在打開的文件 -p       顯示哪些文件被某pid進程打開 -g       顯示歸屬某gid的進程情況 -d       顯示目錄下被進程開啟的文件 -d       顯示使用fd為4的進程 -i:80    顯示打開80端口的進程



          恢復文件操作


          環(huán)境:
          在/mnt下有一些文件,其中一個文件train.less正在被查看,然后另一個終端將其刪除


          【1】lsof查看


          查看正在使用刪除文件的進程號

          lsof /mnt


          【2】恢復


          切換到/proc下,刪除文件對應的進程的pid下的文件描述符中的目錄中;將對應的內(nèi)容重定向或cp到其他文件中
          重點關注:PID 與 FD

             cd /proc/31284/fd/   cat 4 > /mnt/ferris_train.less

          2、extundelete


          原理:
          使用存儲在分區(qū)日志中的信息,嘗試恢復已從ext3或ext4的分區(qū)中刪除的文件


          優(yōu)點
          相比于ext3grep只能恢復ext3文件系統(tǒng)的文件,其適用范圍更廣,恢復速度更快


          extundelete官方地址(官方文檔):
          http://extundelete.sourceforge.net

          extundelete下載地址:
          http://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
          (最新版本的extundelete是0.2.4,于2013年1月發(fā)布)


          注意:

          • 在數(shù)據(jù)刪除之后,要卸載被刪除數(shù)據(jù)所在的磁盤或是分區(qū)

          • 如果是系統(tǒng)根分區(qū)遭到誤刪除,就要進入單用戶模式,將根分區(qū)以只讀的方式掛載,盡可能避免數(shù)據(jù)被覆蓋

          • 數(shù)據(jù)被覆蓋后無法找回

          • 恢復仍有一定的機率失敗,平時應對重要數(shù)據(jù)作備份,小心使用rm

          安裝


          1、依賴安裝

          centos安裝操作yum install e2fsprogs-devel   e2fsprogs* gcc*
          ubuntu安裝操作apt-get install build-essential e2fslibs-dev e2fslibs-dev

          2、編譯安裝

          wget http://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2tar xf  extundelete-0.2.4.tar.bz2cd  extundelete-0.2.4./configuremakemake install

          cd /root/extundelete-0.2.4/src

          extundelete?-v

          執(zhí)行make命令會在src目錄下生成extundelete可執(zhí)行文件,可在此直接執(zhí)行恢復命令。


          執(zhí)行make install會將程序安裝在/usr/local/bin/下



          恢復文件操作


          執(zhí)行extundelete命令的當前目錄必須是可寫的。


          1、查看要恢復文件的分區(qū)的文件系統(tǒng)

          df??-Th

          2、對要恢復文件的分區(qū)解除掛載

          umount /mnt

          3、查看可以恢復的數(shù)據(jù)

          指定誤刪文件的分區(qū)進行查找
          最后一列標記為Deleted的文件,即為刪除了的文件

          extundelete /dev/vdb1 --inode 2 (根分區(qū)的inode值是2

          4、恢復單個目錄

          指定要恢復的目錄名
          如果是空目錄,則不會恢復


          extundelete /dev/vdb1 --restore-directory  ferris

          當執(zhí)行恢復文件的命令后,會在執(zhí)行命令的當前的目錄下生成RECOVERED_FILES目錄,恢復的文件都會放入此目錄中。如未生成目錄,即為失敗。


          5、恢復單個文件

          指定要恢復的文件名
          如果幾k大小的小文件,有很大幾率恢復失敗

          extundelete /dev/vdb1 --restore-file openssh-7.7p1.tar.gz

          6、恢復全部刪除的文件

          無需指定文件名或目錄名,恢復全部刪除的數(shù)據(jù)


          extundelete /dev/vdb1 --restore-all

          良許個人微信


          添加良許個人微信即送3套程序員必讀資料


          → 精選技術資料共享

          → 高手如云交流社群





          本公眾號全部博文已整理成一個目錄,請在公眾號里回復「m」獲取!

          推薦閱讀:

          10條Linux命令錦囊,防你牢底坐穿

          大佬終于把鴻蒙OS講明白了,收藏了!

          良許被36氪創(chuàng)始人接見了!(多圖預警)


          5T技術資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機,樹莓派,等等。在公眾號內(nèi)回復「1024」,即可免費獲取!!


          瀏覽 18
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91精品国产欧美一区二区百度云 | 欧美一区二区黄色 | 日韩A级视频 | 中国男女一级黄色操逼在线视频 | 一起草 中文字幕 无码专区 |