<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • linux刪除文件怎么恢復(恢復linux刪除文件的技巧)



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

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

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

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

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

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

    1、lsof


    原理:

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

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

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

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

    注意:

    必須以 root 用戶的權限運行, 因為lsof 需要訪問核心內存和各種文件。

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

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

    lsof輸出信息的意義:

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

    COMMAND 進程的PID(進程標識符)

    USER 進程所有者

    FD 用來識別該文件(文件描述符)

    DEVICE 指定磁盤的名稱

    SIZE 文件的大小

    NODE 索引節點(文件在磁盤上的標識)

    NAME 打開文件的確切名稱

    最常用參數:

    -c 顯示某進程現在打開的文件

    -p 顯示哪些文件被某pid進程打開

    -g 顯示歸屬某gid的進程情況

    -d 顯示目錄下被進程開啟的文件

    -d 顯示使用fd為4的進程

    -i:80 顯示打開80端口的進程

    恢復文件操作


    環境:

    在/mnt下有一些文件,其中一個文件train.less正在被查看,然后另一個終端將其刪除

    【1】lsof查看


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

    lsof /mnt

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

    【2】恢復


    切換到/proc下,刪除文件對應的進程的pid下的文件描述符中的目錄中;將對應的內容重定向或cp到其他文件中

    • 重點關注:PID 與 FD

    cd /proc/31284/fd/

    cat 4 > /mnt/ferris_train.less

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

    2、extundelete


    原理:

    使用存儲在分區日志中的信息,嘗試恢復已從ext3或ext4的分區中刪除的文件

    優點

    相比于ext3grep只能恢復ext3文件系統的文件,其適用范圍更廣,恢復速度更快

    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月發布)

    注意:

    • 在數據刪除之后,要卸載被刪除數據所在的磁盤或是分區
    • 如果是系統根分區遭到誤刪除,就要進入單用戶模式,將根分區以只讀的方式掛載,盡可能避免數據被覆蓋
    • 數據被覆蓋后無法找回
    • 恢復仍有一定的機率失敗,平時應對重要數據作備份,小心使用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.bz2

    tar xf extundelete-0.2.4.tar.bz2

    cd extundelete-0.2.4

    ./configure

    make

    make install

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

    cd /root/extundelete-0.2.4/src

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

    extundelete -v

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

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

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

    恢復文件操作

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

    1、查看要恢復文件的分區的文件系統

    df -Th

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

    2、對要恢復文件的分區解除掛載

    umount /mnt

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

    3、查看可以恢復的數據

    指定誤刪文件的分區進行查找

    • 最后一列標記為Deleted的文件,即為刪除了的文件

    extundelete /dev/vdb1 –inode 2 (根分區的inode值是2)

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

    4、恢復單個目錄

    指定要恢復的目錄名

    如果是空目錄,則不會恢復

    extundelete /dev/vdb1 –restore-directory ferris

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

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

    5、恢復單個文件

    指定要恢復的文件名

    • 如果幾k大小的小文件,有很大幾率恢復失敗

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

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

    6、恢復全部刪除的文件

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

    extundelete /dev/vdb1 –restore-all

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

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费