linux下rm -r誤刪NTFS文件恢復方法

一時疏忽,手一抖,把整個掛載的F盤刪了一半!頓時傻眼!!php

被刪的F盤是Windows下NTFS分區,在Ubuntu12.04中掛載了F盤,使用rm命令時粗枝大葉,誤刪了一半的數據。html

血的教訓告訴咱們,使用rm -r命令必定要帶上-i,不然讓你後悔莫及!node

還好在Linux下有一種方法能夠恢復被刪除的NTFS分區文件。linux

本文地址:http://www.cnblogs.com/yhLinux/p/4106099.htmlubuntu

 

在文件被誤刪後,不要再往分區寫數據!切記。bash

 

首先,看看咱們被刪的F盤:post

$ df -Th
文件系統       類型      容量  已用  可用 已用% 掛載點
/dev/sda9      ext4       35G   18G   15G   55% /
udev           devtmpfs  1.9G  4.0K  1.9G    1% /dev
tmpfs          tmpfs     384M  936K  383M    1% /run
none           tmpfs     5.0M     0  5.0M    0% /run/lock
none           tmpfs     1.9G  272K  1.9G    1% /run/shm
/dev/sda10     ext4       38G  5.8G   30G   17% /home
/dev/sda7      fuseblk   121G   52G   69G   43% /media/Recreation

其次,取消掛載:spa

umount /media/Recreation

安裝ntfsprogs包:code

sudo apt-get install ntfsprogs

掃描F盤中可恢復的文件信息(這裏,我指定要恢復兩個比較重要的文件先,這兩個文件比較大,10G左右):orm

$ sudo ntfsundelete /dev/sda7 -S 8g-30g

Inode    Flags  %age  Date           Size  Filename
---------------------------------------------------------------
ntfs_mst_post_read_fixup_warn: magic: 0x00000000  size: 1024   usa_ofs: 0  usa_count: 65535: 無效的參數
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
ntfs_mst_post_read_fixup_warn: magic: 0x00000000  size: 1024   usa_ofs: 0  usa_count: 65535: 無效的參數

.......(中間還有不少錯誤提示)

ntfs_mst_post_read_fixup_warn: magic: 0x00000000  size: 1024   usa_ofs: 0  usa_count: 65535: 無效的參數
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
ntfs_attr_find: Corrupt inode (-1): 輸入/輸出錯誤
40       FN..   100%  2013-10-05 10737418240 FeMilm76 10521    FN..   100%  2014-08-20 21474836480  <none>

Files with potentially recoverable content: 2

能夠看出,待恢復的有兩個文件,100%表示能夠完整恢復!一下看到了但願!

請注意,第二個文件的名字是 <none>,這裏稍後要給出一個名字。

 

如今,咱們掛載其餘NTFS分區(保證有足夠的空間用於恢復被刪文件),查看一下:

$ df -Th
文件系統       類型      容量  已用  可用 已用% 掛載點
/dev/sda9      ext4       35G   18G   15G   55% /
udev           devtmpfs  1.9G  4.0K  1.9G    1% /dev
tmpfs          tmpfs     384M  924K  383M    1% /run
none           tmpfs     5.0M     0  5.0M    0% /run/lock
none           tmpfs     1.9G  204K  1.9G    1% /run/shm
/dev/sda10     ext4       38G  5.8G   30G   17% /home
/dev/sda5      fuseblk    81G   49G   32G   62% /media/000131C0000E41A3 /dev/sda1      fuseblk    50G   30G   21G   59% /media/66A09271A0924787

在sda1中新建一個文件夾21g,用於存放文件FeMilm76

在sda5中新建一個文件夾32g,用於存放文件<none>

$ mkdir /media/66A09271A0924787/21g/

$ ls /media/66A09271A0924787/21g/ -la
總用量 16
drwx------ 1 ovonel ovonel     0 Nov 18 15:47 .
drwx------ 1 ovonel ovonel 16384 Nov 18 15:47 ..

一切準備就緒,開始:

$ sudo ntfsundelete /dev/sda7 -u -i 40 -o FeMilm76 -d /media/66A09271A0924787/21g/
Inode    Flags  %age  Date            Size  Filename
---------------------------------------------------------------
40       FN..     0%  2013-10-05 10737418240  FeMilm76

Undeleted 'FeMilm76' successfully.

提示恢復成功!

看看第二個文件<none>:

$ sudo ntfsundelete /dev/sda7 -u -i 10521 -o <none> -d /media/000131C0000E41A3/32g/
bash: none: 沒有那個文件或目錄

給出一個文件的名字,把none替換掉便可:

$ sudo ntfsundelete /dev/sda7 -u -i 10521 -o PaiZi -d /media/000131C0000E41A3/32g/
Inode    Flags  %age  Date            Size  Filename
---------------------------------------------------------------
10521    FN..     0%  2014-08-20 21474836480  <none>

Undeleted '(null)' successfully.

成功!

整個恢復時間不長,速度挺快的,祝你好運。

(完)

參考資料:

https://help.ubuntu.com/community/DataRecovery

https://help.ubuntu.com/community/DataRecovery/NtfsUndelete

http://forum.ubuntu.org.cn/viewtopic.php?f=122&t=158497(該法不完整,沒有指定-o選項)

相關文章
相關標籤/搜索