如何恢復 Linux 上刪除的檔案,第 1 部分

2021-04-14 02:45:16 字數 1129 閱讀 8706

要想恢復誤刪除的檔案,必須清楚資料在磁碟上究竟是如何儲存的,以及如何定位並恢復資料。本文從資料恢復的角度,著重介紹了 ext2 檔案系統中使用的一些基本概念和重要資料結構,並通過幾個例項介紹了如何手工恢復已經刪除的檔案。最後針對 ext2 現有實現存在的大檔案無法正常恢復的問題,通過修改核心中的實現,給出了一種解決方案。
對於很多 linux 的使用者來說,可能有乙個問題一直都非常頭疼:對於那些不小心刪除的資料來說,怎樣才能恢復出來呢?大家知道,在 windows 系統上,**站中儲存了最近使用資源管理器時刪除的檔案。即便是對於那些在命令列中刪除的檔案來說,也有很多任務具(例如recover4all,finaldata recovery)可以把這些已經刪除的檔案恢復出來。在linux 下這一切是否可能呢?

實際上,為了方便使用者的使用,現在 linux 上流行的桌面管理工具(例如gnome和kde)中都已經整合了**站的功能。其基本思想是在桌面管理工具中捕獲對檔案的刪除操作,將要刪除的檔案移動到使用者根目錄下的 .trash 資料夾中,但卻並不真正刪除該檔案。當然,像在 windows 上一樣,如果使用者在刪除檔案的同時,按下了 shift 鍵並確認刪除該檔案,那麼這個檔案就不會被移動到 .trash 資料夾中,也就無從恢復了。此時,習慣了使用 windows 上各種恢復工具的人就會頓足捶胸,抱怨 linux 上工具的缺乏了。但是請稍等一下,難道按照這種方式刪除的檔案就真的無從恢復了麼?或者換乙個角度來看,使用 rm 命令刪除的檔案是否還有辦法能夠恢復出來呢?

背景知識

在開始真正進行實踐之前,讓我們首先來了解一下在 linux 系統中,檔案是如何進行儲存和定位的,這對於理解如何恢復檔案來說非常重要。我們知道,資料最終以資料塊的形式儲存在磁碟上,而作業系統是通過檔案系統來管理這些資料的。ext2/ext3 是 linux 上應用最為廣泛的檔案系統,本文將以 ext2 檔案系統為例展開介紹。

我們知道,在作業系統中,檔案系統是採用一種層次化的形式表示的,通常可以表示成一棵倒置的樹。所有的檔案和子目錄都是通過查詢其父目錄項來定位的,目錄項中通過匹配檔名可以找到對應的索引節點號(inode),通過查詢索引節點表(inode table)就可以找到檔案在磁碟上的位置,整個過程如圖1所示。 

本文**:

ibm developerworks

中國

linux如何恢復被刪除的熱檔案

windows下如果檔案被刪除還有 站,如果沒放入 站或者 站被清空了,還可以使用easyrecover或者finaldata等等很多任務具來恢復 可是linux下沒有 站,那麼linux下如果檔案被刪除了如何恢復呢?如果剛好你刪除的檔案還在被其它程式呼叫,那麼恭喜你,很輕易的的將刪除的檔案找回來 ...

linux 恢復刪除的檔案

檔案實際上是乙個指向inode的鏈結,inode鏈結包含了檔案的所有屬性,比如許可權和所有者,資料塊位址 檔案儲存在磁碟的這些資料塊中 當你刪除 rm 乙個檔案,實際刪除了指向inode的鏈結,並沒有刪除inode的內容.程序可能還在使用.只有當inode的所有鏈結完全移去,然後這些資料塊將可以寫入...

linux下如何恢復rm命令刪除的檔案

在linux下rm rf 是乙個很可怕的命令,因為下達這個命令意味著一旦刪除的檔案是無法挽回的,事實是如此嗎?真的沒有補救措施了嗎?答案是委婉了,在一定的條件下可以補救,大家可能熟悉windows下刪除的補救措施是通過相關的軟體實現的,在linux下同樣可以做到補救,但是有個大前提 就是不能有覆蓋的...