新聞中心
當(dāng)你在 Linux 系統(tǒng)上刪除一個(gè)文件時(shí),它不一定會(huì)永遠(yuǎn)消失,特別是當(dāng)你最近才剛剛刪除了它的時(shí)候。

為江夏等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及江夏網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站制作、江夏網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
除非你用 shred 等工具把它擦掉,否則數(shù)據(jù)仍然會(huì)放在你的磁盤上 —— 而恢復(fù)已刪除文件的最佳工具之一 testdisk 可以幫助你拯救它。雖然 testdisk 具有廣泛的功能,包括恢復(fù)丟失或損壞的分區(qū)和使不能啟動(dòng)磁盤可以重新啟動(dòng),但它也經(jīng)常被用來恢復(fù)被誤刪的文件。
安裝 testdisk
可以使用 apt install testdisk 或 yum install testdisk 等命令安裝 testdisk。有趣的是,它不僅是一個(gè) Linux 工具,而且還適用于 MacOS、Solaris 和 Windows。
文檔可在 cgsecurity.org 中找到。
恢復(fù)文件
首先,你必須以 root 身份登錄,或者有 sudo 權(quán)限才能使用 testdisk。如果你沒有 sudo 訪問權(quán)限,你會(huì)在這個(gè)過程一開始就被踢出,而如果你選擇創(chuàng)建了一個(gè)日志文件的話,最終會(huì)有這樣的消息:
TestDisk exited normally.
jdoe is not in the sudoers file. This incident will be reported.
當(dāng)你用 testdisk 恢復(fù)被刪除的文件時(shí),你最終會(huì)將恢復(fù)的文件放在你啟動(dòng)該工具的目錄下,而這些文件會(huì)屬于 root。出于這個(gè)原因,我喜歡在 /home/recovery 這樣的目錄下啟動(dòng)。一旦文件被成功地還原和驗(yàn)證,就可以將它們移回它們的所屬位置,并將它們的所有權(quán)也恢復(fù)。
在你可以寫入的選定目錄下開始:
$ cd /home/recovery
$ testdisk
testdisk 提供的第一頁信息描述了該工具并顯示了一些選項(xiàng)。至少在剛開始,創(chuàng)建個(gè)日志文件是個(gè)好主意,因?yàn)樗峁┑男畔⒖赡軙?huì)被證明是有用的。下面是如何做的:
Use arrow keys to select, then press Enter key:
>[ Create ] Create a new log file
[ Append ] Append information to log file
[ No Log ] Don’t record anything
左邊的 > 以及你看到的反轉(zhuǎn)的字體和背景顏色指出了你按下回車鍵后將使用的選項(xiàng)。在這個(gè)例子中,我們選擇了創(chuàng)建日志文件。
然后會(huì)提示你輸入密碼(除非你最近使用過 sudo)。
下一步是選擇被刪除文件所存儲(chǔ)的磁盤分區(qū)(如果沒有高亮顯示的話)。根據(jù)需要使用上下箭頭移動(dòng)到它。然后點(diǎn)兩次右箭頭,當(dāng) “Proceed” 高亮顯示時(shí)按回車鍵。
Select a media (use Arrow keys, then press Enter):
Disk /dev/sda - 120 GB / 111 GiB - SSD2SC120G1CS1754D117-551
>Disk /dev/sdb - 500 GB / 465 GiB - SAMSUNG HE502HJ
Disk /dev/loop0 - 13 MB / 13 MiB (RO)
Disk /dev/loop1 - 101 MB / 96 MiB (RO)
Disk /dev/loop10 - 148 MB / 141 MiB (RO)
Disk /dev/loop11 - 36 MB / 35 MiB (RO)
Disk /dev/loop12 - 52 MB / 49 MiB (RO)
Disk /dev/loop13 - 78 MB / 75 MiB (RO)
Disk /dev/loop14 - 173 MB / 165 MiB (RO)
Disk /dev/loop15 - 169 MB / 161 MiB (RO)
>[Previous] [ Next ] [Proceed ] [ Quit ]
在這個(gè)例子中,被刪除的文件在 /dev/sdb 的主目錄下。
此時(shí),testdisk 應(yīng)該已經(jīng)選擇了合適的分區(qū)類型。
Disk /dev/sdb - 500 GB / 465 GiB - SAMSUNG HE502HJ
Please select the partition table type, press Enter when done.
[Intel ] Intel/PC partition
>[EFI GPT] EFI GPT partition map (Mac i386, some x86_64...)
[Humax ] Humax partition table
[Mac ] Apple partition map (legacy)
[None ] Non partitioned media
[Sun ] Sun Solaris partition
[XBox ] XBox partition
[Return ] Return to disk selection
在下一步中,按向下箭頭指向 “[ Advanced ] Filesystem Utils”。
[ Analyse ] Analyse current partition structure and search for lost partitions
>[ Advanced ] Filesystem Utils
[ Geometry ] Change disk geometry
[ Options ] Modify options
[ Quit ] Return to disk selection
接下來,查看選定的分區(qū)。
Partition Start End Size in sectors
> 1 P Linux filesys. data 2048 910155775 910153728 [drive2]
然后按右箭頭選擇底部的 “[ List ]”,按回車鍵。
[ Type ] [Superblock] >[ List ] [Image Creation] [ Quit ]
請(qǐng)注意,它看起來就像我們從根目錄 / 開始,但實(shí)際上這是我們正在工作的文件系統(tǒng)的基點(diǎn)。在這個(gè)例子中,就是 /home。
Directory / drwxr-xr-x 0 0 4096 23-Sep-2020 17:46 .
drwxr-xr-x 0 0 4096 23-Sep-2020 17:46 ..
drwx——— 0 0 16384 22-Sep-2020 11:30 lost+found
drwxr-xr-x 1008 1008 4096 9-Jul-2019 14:10 dorothy
drwxr-xr-x 1001 1001 4096 22-Sep-2020 12:12 nemo
drwxr-xr-x 1005 1005 4096 19-Jan-2020 11:49 eel
drwxrwxrwx 0 0 4096 25-Sep-2020 08:08 recovery...
接下來,我們按箭頭指向具體的主目錄。
drwxr-xr-x 1016 1016 4096 17-Feb-2020 16:40 gino
>drwxr-xr-x 1000 1000 20480 25-Sep-2020 08:00 shs
按回車鍵移動(dòng)到該目錄,然后根據(jù)需要向下箭頭移動(dòng)到子目錄。注意,如果選錯(cuò)了,可以選擇列表頂部附近的 .. 返回。
如果找不到文件,可以按 /(就像在 vi 中開始搜索時(shí)一樣),提示你輸入文件名或其中的一部分。
Directory /shs -rw-rw-r— 1000 1000 24667 8-Feb-2019 08:57 Up_on_the_Roof.pdf
一旦你找到需要恢復(fù)的文件,按 c 選擇它。
注意:你會(huì)在屏幕底部看到有用的說明:
Use Left arrow to go back, Right to change directory, h to hide deleted files
q to quit, : to select the current file, a to select all files
C to copy the selected files, c to copy the current file
這時(shí),你就可以在起始目錄內(nèi)選擇恢復(fù)該文件的位置了(參見前面的說明,在將文件移回原點(diǎn)之前,先在一個(gè)合適的地方進(jìn)行檢查)。在這種情況下,/home/recovery 目錄沒有子目錄,所以這就是我們的恢復(fù)點(diǎn)。
注意:你會(huì)在屏幕底部看到有用的說明:
Please select a destination where /shs/Up_on_the_Roof.pdf will be copied.
Keys: Arrow keys to select another directory
C when the destination is correct
Q to quit
Directory /home/recovery
一旦你看到 “Copy done! 1 ok, 0 failed” 的綠色字樣,你就會(huì)知道文件已經(jīng)恢復(fù)了。
在這種情況下,文件被留在 /home/recovery/shs 下(起始目錄,附加所選目錄)。
在將文件移回原來的位置之前,你可能應(yīng)該先驗(yàn)證恢復(fù)的文件看起來是否正確。確保你也恢復(fù)了原來的所有者和組,因?yàn)榇藭r(shí)文件由 root 擁有。
注意: 對(duì)于文件恢復(fù)過程中的很多步驟,你可以使用退出(按 q 或“[ Quit ]”)來返回上一步。如果你愿意,可以選擇退出選項(xiàng)一直回到該過程中的第一步,也可以選擇按下 ^c 立即退出。
恢復(fù)訓(xùn)練
使用 testdisk 恢復(fù)文件相對(duì)來說沒有痛苦,但有些復(fù)雜。在恐慌時(shí)間到來之前,最好先練習(xí)一下恢復(fù)文件,讓自己有機(jī)會(huì)熟悉這個(gè)過程。
名稱欄目:Linux中通過testdisk恢復(fù)刪除的文件
網(wǎng)頁地址:http://m.fisionsoft.com.cn/article/dhgeccj.html


咨詢
建站咨詢
