大多數(shù)情況下,即使激活的進(jìn)程正在操縱文件,并且當(dāng)前被單個(gè)用戶或多個(gè)用戶使用,也可以恢復(fù)刪除的文件。
-- Mhnassif本文導(dǎo)航
-計(jì)算原始文件的 MD5 哈希 …… 12%
-刪除文件的恢復(fù)過程 …… 29%
-計(jì)算恢復(fù)文件的 MD5 哈希 …… 67%
編譯自:作者: Mhnassif
譯者: geekpi
使用終端恢復(fù)你 Linux 系統(tǒng)上仍在運(yùn)行進(jìn)程的已刪除文件的快速指南。
許多情況下,刪除的文件都可以恢復(fù),比如在該文件有活動(dòng)的進(jìn)程在操作它,并且目前被單個(gè)或多個(gè)用戶使用時(shí)。在 Linux 系統(tǒng)中,每個(gè)當(dāng)前正在運(yùn)行的進(jìn)程都會(huì)獲得 ID,其被稱之為進(jìn)程標(biāo)識(shí)符 “PID”,并將它們存放在 /proc 目錄中。這正是我們恢復(fù)仍在運(yùn)行的進(jìn)程中(具有PID)已刪除的文件所需要的東西。這里就是介紹我們?nèi)绾巫龅竭@一點(diǎn)的。
假設(shè)你打開了一個(gè)壓縮文件,之后你刪除了這個(gè)文件。為了演示目的,壓縮文件稱為 “o”,這將是之后我們將打開和刪除的文件。
計(jì)算原始文件的 MD5 哈希
刪除之前,我們將計(jì)算該文件的 MD5。這樣我們可以將原來的 MD5 哈希值與恢復(fù)文件的 MD5 哈希進(jìn)行比較。這個(gè)過程將保證我們恢復(fù)的壓縮文件的完整性是一樣的,它沒有被破壞。
md5sum o >> md5-o
要顯示文本文件的內(nèi)容。
cat md5-o86489b68b40d144f0e00a0ea8407f7c0 o
檢查壓縮文件的 MD5 哈希值之后。我們將壓縮文件保持打開(LCTT 譯注:此處是使用 file-roller 這個(gè)圖形界面的解壓程序保持對(duì)該壓縮文件的打開,其內(nèi)置在 GNOME 環(huán)境中;在桌面環(huán)境中,使用桌面工具打開一個(gè)壓縮包也能起到同樣的作用。又及,本文舉例不是很恰當(dāng),如果是刪除了某個(gè)服務(wù)進(jìn)程的已經(jīng)打開的配置文件,那么這種恢復(fù)就很有意義),并將其刪除。之后,我們將從文件的恢復(fù)過程開始,步驟如下:
rm o
刪除文件的恢復(fù)過程
正如我們前面提到的,運(yùn)行的進(jìn)程在 /proc 目錄中。我們可以使用以下命令搜索該目錄中需要的進(jìn)程:
由于我們已經(jīng)知道文件名包括 .zip 擴(kuò)展名,因此我們可以使用 .zip 擴(kuò)展名進(jìn)行搜索。它將限制輸出結(jié)果并顯示所需的進(jìn)程。
ps -axu | grep .zipm 13119 0.8 1.0 121788 30788 ? Sl 06:17 0:00 file-roller /home/m/Downloads/Compressed/o
m 13164 0.0 0.0 5108 832 pts/20 S+ 06:18 0:00 grep --color=auto .zip
然后我們將進(jìn)入到包含 PID 13119 的目錄并打開 fd 子目錄。
cd /proc/13119/fd
fd (文件描述符)目錄包含多個(gè)文件,包括我們需要恢復(fù)的文件。該文件以硬鏈接的方式鏈接到原始文件。 fd 目錄中的所有文件都以數(shù)字鏈接到“文件名”。因此,要確定這些文件中的哪一個(gè)鏈接到該原始文件,我們將用詳細(xì)列表選項(xiàng)列出 /fd 目錄。
ls -ltotal 0
lr-x------ 1 m m 64 Jul 14 06:17 0 -> /dev/null
lrwx------ 1 m m 64 Jul 14 06:17 1 -> socket:[26161]
lrwx------ 1 m m 64 Jul 14 06:17 10 -> anon_inode:[eventfd]
lr-x------ 1 m m 64 Jul 14 06:17 11 -> anon_inode:inotify
lrwx------ 1 m m 64 Jul 14 06:17 12 -> socket:[5752671]
lr-x------ 1 m m 64 Jul 14 06:17 13 -> /home/m/Downloads/Compressed/o (deleted)
lrwx------ 1 m m 64 Jul 14 06:17 2 -> socket:[26161]
lrwx------ 1 m m 64 Jul 14 06:17 3 -> anon_inode:[eventfd]
lrwx------ 1 m m 64 Jul 14 06:17 4 -> anon_inode:[eventfd]
lrwx------ 1 m m 64 Jul 14 06:17 5 -> socket:[5751361]
lrwx------ 1 m m 64 Jul 14 06:17 6 -> anon_inode:[eventfd]
lrwx------ 1 m m 64 Jul 14 06:17 7 -> anon_inode:[eventfd]
lrwx------ 1 m m 64 Jul 14 06:17 8 -> socket:[5751363]
lrwx------ 1 m m 64 Jul 14 06:17 9 -> socket:[5751365]
正如你在終端輸出中看到的,原始文件 “o” 已被刪除,但它仍然鏈接到一個(gè)文件名 13,其進(jìn)程 PID 13119。但是,我們?nèi)匀豢梢酝ㄟ^將鏈接的文件復(fù)制到安全的地方來恢復(fù)它。
cp 13 /home/m/Downloads/Compressed
文件復(fù)制后。我們將返回包含恢復(fù)文件的目錄,并使用以下命令重命名它。
mv 13 o
計(jì)算恢復(fù)文件的 MD5 哈希
由于我們已經(jīng)恢復(fù)了該文件。讓我們檢查該文件的完整性,這只是為了確保文件沒有損壞,并且和原來一樣。早先我們保存了原始文件的 MD5 哈希值。
md5sum o >> md5-o
該命令將檢查文件的 MD5 哈希值,并在文件中追加新恢復(fù)文件的 MD5 哈希值,以輕松比較兩個(gè) MD5 哈希值。
可以顯示文本文件的內(nèi)容來比較原始文件和恢復(fù)文件的 MD5 哈希值。
cat md5-o86489b68b40d144f0e00a0ea8407f7c0 o
86489b68b40d144f0e00a0ea8407f7c0 o
恢復(fù)文件的 MD5 哈希是一樣的。所以,我們成功地恢復(fù)了我們以前刪除的文件,并且恢復(fù)后文件完整性一致,并且工作正常。
注意: 在某些情況下,某些文件無法通過 ps -axu 命令看到。 所以,嘗試檢查運(yùn)行的程序,并從中恢復(fù)文件。
假設(shè)我們有一個(gè)使用 Totem 媒體播放器播放中的以 .avi 為擴(kuò)展名的視頻。你需要做的就是檢查 Totem 的 PID,并按照本示例中提到的相同說明進(jìn)行操作。
要查找正在運(yùn)行的程序的 PID,請(qǐng)使用以下命令,后面跟程序的名稱。
pidof 程序名
通過分享支持我們。
via:
作者:mhnassif [1] 譯者:geekpi 校對(duì):wxy
本文由 LCTT 原創(chuàng)編譯,Linux中國 榮譽(yù)推出
[1]: mhnassif -
1.《.lc文件怎么打開?終于找到答案了如何在 Linux 中恢復(fù)仍在活動(dòng)進(jìn)程中的已刪除文件》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁腳下方聯(lián)系方式。
2.《.lc文件怎么打開?終于找到答案了如何在 Linux 中恢復(fù)仍在活動(dòng)進(jìn)程中的已刪除文件》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/gl/2207073.html