新聞中心
這篇文章介紹了 testdisk,這是恢復(fù)最近刪除的文件(以及用其他方式修復(fù)分區(qū))的工具之一,非常方便。

創(chuàng)新互聯(lián)公司始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)十載累計(jì)超上千家客戶(hù)的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶(hù),其中包括:高空作業(yè)車(chē)租賃等企業(yè),備受客戶(hù)贊賞。
當(dāng)你在 linux 系統(tǒng)上刪除一個(gè)文件時(shí),它不一定會(huì)永遠(yuǎn)消失,特別是當(dāng)你最近才剛剛刪除了它的時(shí)候。
除非你用 shred 等工具把它擦掉,否則數(shù)據(jù)仍然會(huì)放在你的磁盤(pán)上 —— 而恢復(fù)已刪除文件的最佳工具之一 testdisk 可以幫助你拯救它。雖然 testdisk 具有廣泛的功能,包括恢復(fù)丟失或損壞的分區(qū)和使不能啟動(dòng)磁盤(pán)可以重新啟動(dòng),但它也經(jīng)常被用來(lái)恢復(fù)被誤刪的文件。
在本篇文章中,我們就來(lái)看看如何使用 testdisk 恢復(fù)已刪除的文件,以及該過(guò)程中的每一步是怎樣的。由于這個(gè)過(guò)程需要不少的步驟,所以當(dāng)你做了幾次之后,你可能會(huì)覺(jué)得操作起來(lái)會(huì)更加得心應(yīng)手。
安裝 testdisk
可以使用 apt install testdisk 或 yum install testdisk 等命令安裝 testdisk。有趣的是,它不僅是一個(gè) Linux 工具,而且還適用于 MacOS、Solaris 和 Windows。
文檔可在 cgsecurity.org 中找到。
恢復(fù)文件
首先,你必須以 root 身份登錄,或者有 sudo 權(quán)限才能使用 testdisk。如果你沒(méi)有 sudo 訪問(wèn)權(quán)限,你會(huì)在這個(gè)過(guò)程一開(kāi)始就被踢出,而如果你選擇創(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ù)。
在你可以寫(xiě)入的選定目錄下開(kāi)始:
$ cd /home/recovery
$ testdisk
testdisk 提供的第一頁(yè)信息描述了該工具并顯示了一些選項(xiàng)。至少在剛開(kāi)始,創(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)的字體和背景顏色指出了你按下回車(chē)鍵后將使用的選項(xiàng)。在這個(gè)例子中,我們選擇了創(chuàng)建日志文件。
然后會(huì)提示你輸入密碼(除非你最近使用過(guò) sudo)。
下一步是選擇被刪除文件所存儲(chǔ)的磁盤(pán)分區(qū)(如果沒(méi)有高亮顯示的話)。根據(jù)需要使用上下箭頭移動(dòng)到它。然后點(diǎn)兩次右箭頭,當(dāng) “Proceed” 高亮顯示時(shí)按回車(chē)鍵。
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ū)類(lèi)型。
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
接下來(lái),查看選定的分區(qū)。
Partition Start End Size in sectors
> 1 P Linux filesys. data 2048 910155775 910153728 [drive2]
然后按右箭頭選擇底部的 “[ List ]”,按回車(chē)鍵。
[ Type ] [Superblock] >[ List ] [Image Creation] [ Quit ]
請(qǐng)注意,它看起來(lái)就像我們從根目錄 / 開(kāi)始,但實(shí)際上這是我們正在工作的文件系統(tǒng)的基點(diǎn)。在這個(gè)例子中,就是 /home。
Directory / <== 開(kāi)始點(diǎn)
>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
...
接下來(lái),我們按箭頭指向具體的主目錄。
drwxr-xr-x 1016 1016 4096 17-Feb-2020 16:40 gino
>drwxr-xr-x 1000 1000 20480 25-Sep-2020 08:00 shs
按回車(chē)鍵移動(dòng)到該目錄,然后根據(jù)需要向下箭頭移動(dòng)到子目錄。注意,如果選錯(cuò)了,可以選擇列表頂部附近的 .. 返回。
如果找不到文件,可以按 /(就像在 vi 中開(kāi)始搜索時(shí)一樣),提示你輸入文件名或其中的一部分。
Directory /shs <== current location
Previous
...
-rw-rw-r— 1000 1000 426 8-Apr-2019 19:09 2-min-topics
>-rw-rw-r— 1000 1000 24667 8-Feb-2019 08:57 Up_on_the_Roof.pdf
一旦你找到需要恢復(fù)的文件,按 c 選擇它。
注意:你會(huì)在屏幕底部看到有用的說(shuō)明:
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ù)該文件的位置了(參見(jiàn)前面的說(shuō)明,在將文件移回原點(diǎn)之前,先在一個(gè)合適的地方進(jìn)行檢查)。在這種情況下,/home/recovery 目錄沒(méi)有子目錄,所以這就是我們的恢復(fù)點(diǎn)。
注意:你會(huì)在屏幕底部看到有用的說(shuō)明:
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 <== 恢復(fù)位置
一旦你看到 “Copy done! 1 ok, 0 failed” 的綠色字樣,你就會(huì)知道文件已經(jīng)恢復(fù)了。
在這種情況下,文件被留在 /home/recovery/shs 下(起始目錄,附加所選目錄)。
在將文件移回原來(lái)的位置之前,你可能應(yīng)該先驗(yàn)證恢復(fù)的文件看起來(lái)是否正確。確保你也恢復(fù)了原來(lái)的所有者和組,因?yàn)榇藭r(shí)文件由 root 擁有。
注意: 對(duì)于文件恢復(fù)過(guò)程中的很多步驟,你可以使用退出(按 q 或“[ Quit ]”)來(lái)返回上一步。如果你愿意,可以選擇退出選項(xiàng)一直回到該過(guò)程中的第一步,也可以選擇按下 ^c 立即退出。
恢復(fù)訓(xùn)練
使用 testdisk 恢復(fù)文件相對(duì)來(lái)說(shuō)沒(méi)有痛苦,但有些復(fù)雜。在恐慌時(shí)間到來(lái)之前,最好先練習(xí)一下恢復(fù)文件,讓自己有機(jī)會(huì)熟悉這個(gè)過(guò)程。
文章題目:用testdisk恢復(fù)Linux上已刪除的文件
鏈接地址:http://www.dlmjj.cn/article/dpdcjhi.html


咨詢(xún)
建站咨詢(xún)
