Linux命令列刪除檔案恢復(Ubuntu)

2021-07-07 08:36:19 字數 2360 閱讀 5932

在linux系統下,通過命令「rm -rf」可以將任何資料直接從硬碟刪除,並且沒有任何提示,同時linux下也沒有與windows下**站類似的功能,也就意味著,資料在刪除後通過常 規的手段是無法恢復的,因此使用這個命令要非常慎重。在使用rm命令的時候,比較穩妥的方法是把命令引數放到後面,這樣有乙個提醒的作用。其實還有乙個方 法,那就是將要刪除的東西通過mv命令移動到系統下的/tmp目錄下,然後寫個指令碼定期執行清除操作,這樣做可以在一定程度上降低誤刪除資料的危險性。

其實保證資料安全最好的方法是做好備份,雖然備份不是萬能的,但是沒有備份是萬萬不行的。任何資料恢復工具都有一定侷限性,都不能保證完整地恢復出所有資料,因此,把備份作為核心,把資料恢復工具作為輔助是運維人員必須堅持的乙個準則。

1、extundelete的恢復原理

在介紹使用extundelete進行恢復資料之前,簡單介紹下關於inode的知識。在linux下可以通過「ls -id」命令來檢視某個檔案或者目錄的inode值,例如檢視根目錄的inode值,可以輸入:

由此可知,根目錄的inode值為2。

在利用extundelete恢復檔案時並不依賴特定檔案格式,首先extundelete會通過檔案系統的inode資訊(根目錄的inode一 般為2)來獲得當前檔案系統下所有檔案的資訊,包括存在的和已經刪除的檔案,這些資訊包括檔名和inode。然後利用inode資訊結合日誌去查詢該 inode所在的block位置,包括直接塊、間接塊等資訊。最後利用dd命令將這些資訊備份出來,從而恢復資料檔案。

2、安裝extundelete

extundelete的官方**是 ,其目前的穩定版本是extundelete-0.2.4。在安裝extundelete之前需要安裝e2fsprogs和e2fsprogs-libs兩個依賴包。

e2fsprogs和e2fsprogs-libs安裝非常簡單,這裡不做介紹。但是對ubuntu系統而言需要安裝的依賴包是

執行:#sudo apt-get install e2fslibs-dev

然後安裝extundelete-0.2.4,如下:

# tar jxvf extundelete-0.2.4.tar.bz2 

# cd extundelete-0.2.4 

# ./configure

# make 

# make install

成功安裝extundelete後,會在系統中生成乙個extundelete可執行檔案。extundelete的使用非常簡單,可以通過「extundelete  --help」獲得此軟體的使用方法。

下面就是找回被刪除檔案usb_camera.c的過程:

a、檢視檔案系統型別和分割槽

我的檔案系統型別為ext4,extundelete支援的型別為ext3/ext4 ,而ext3grep僅支援ext3檔案系統的恢復。

使用者檔案系統在/dev/sdal根檔案系統中,被rm的檔案也在這裡。

b、執行:#  extundelete --inode 2 /dev/sda1

其中,--inode 2為查詢當前目錄下的檔案和被rm掉的檔案。

先從根目錄查起。

被我刪除的檔案放在/win7files目錄下。
c、# extundelete --inode 1438977 /etv/sda1
win7files的節點號為1438977,--inode1438977就是檢視/win7file目錄下的檔案及被刪除的檔案。依次下去,直到找到usb_camera.c的節點號。執行**如下:

#extundelete --inode 2 /dev/sda1(上一步已經執行過該命令)

setup.sh的節點號為1455587,--restore-inode1455587就是恢復這個節點檔案。

e、檢視恢復結果

Linux命令列刪除檔案恢復

在linux下工作的很多人都有過這樣的尷尬經歷,辛辛苦苦寫了很久的 或者文件,乙個不小心就rm掉了,命令列刪除一般不會進入 站,這時候是不是想死的心都有了。先說說活生生的悲劇是怎麼發生的。先是認認真真寫了乙個下午指令碼setup.sh,在corev1.1中有乙個舊版本但是同名的setup.sh,於是...

Linux拷貝U盤檔案(命令列)

linux系統有的有介面,有的沒有只要命令視窗,因此匯入外部檔案就變得困難,沒有視覺化的方便。這裡通過掛載u盤進行檔案拷貝。首先掛載u盤 這裡以centos為例 1 進入命令列模式下,輸入命令 sudo i,獲取root許可權。2 mkdir usb 建立乙個目錄,用於掛載u盤 3 fdisk l ...

linux命令列掛載U盤拷貝檔案

建立乙個資料夾 mkdir mnt usb 掛載u盤掛u盤之前,執行命令cat proc partitions,看看現在系統中有哪些分割槽。插上u盤以後,再次執行上述命令,看看多出來什麼分割槽 通常是sda1,ps由於偶是在虛擬機器下裝的,所以是sdb1 1 插入u盤 2 輸入fdisk l dev...