一时疏忽,手一抖,把整个挂载的F盘删了一半!顿时傻眼!!

被删的F盘是Windows下NTFS分区,在Ubuntu12.04中挂载了F盘,使用rm命令时粗心大意,误删了一半的数据。

血的教训告诉我们,使用rm -r命令一定要带上-i,否则让你后悔莫及!

还好在Linux下有一种方法可以恢复被删除的NTFS分区文件。

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

在文件被误删后,不要再往分区写数据!切记。

首先,看看我们被删的F盘:

$ df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda9 ext4 35G 18G 15G % /
udev devtmpfs .9G .0K .9G % /dev
tmpfs tmpfs 384M 936K 383M % /run
none tmpfs 5.0M 5.0M % /run/lock
none tmpfs .9G 272K .9G % /run/shm
/dev/sda10 ext4 38G .8G 30G % /home
/dev/sda7 fuseblk 121G 52G 69G % /media/Recreation

其次,取消挂载:

umount /media/Recreation

安装ntfsprogs包:

sudo apt-get install ntfsprogs

扫描F盘中可恢复的文件信息(这里,我指定要恢复两个比较重要的文件先,这两个文件比较大,10G左右):

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

Inode    Flags  %age  Date           Size  Filename
---------------------------------------------------------------
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: usa_ofs: usa_count: : 无效的参数
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: usa_ofs: usa_count: : 无效的参数 .......(中间还有很多错误提示) ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: usa_ofs: usa_count: : 无效的参数
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
ntfs_attr_find: Corrupt inode (-): 输入/输出错误
FN.. % -- FeMilm76
FN.. % -- <none> Files with potentially recoverable content:

可以看出,待恢复的有两个文件,100%表示可以完整恢复!一下看到了希望!

请注意,第二个文件的名字是 <none>,这里稍后要给出一个名字。

现在,我们挂载其他NTFS分区(保证有足够的空间用于恢复被删文件),查看一下:

$ df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda9 ext4 35G 18G 15G % /
udev devtmpfs .9G .0K .9G % /dev
tmpfs tmpfs 384M 924K 383M % /run
none tmpfs 5.0M 5.0M % /run/lock
none tmpfs .9G 204K .9G % /run/shm
/dev/sda10 ext4 38G .8G 30G % /home
/dev/sda5 fuseblk 81G 49G 32G % /media/000131C0000E41A3
/dev/sda1 fuseblk 50G 30G 21G % /media/66A09271A0924787

在sda1中新建一个文件夹21g,用于存放文件FeMilm76

在sda5中新建一个文件夹32g,用于存放文件<none>

$ mkdir /media/66A09271A0924787/21g/

$ ls /media/66A09271A0924787/21g/ -la
总用量
drwx------ ovonel ovonel Nov : .
drwx------ ovonel ovonel Nov : ..

一切准备就绪,开始:

$ sudo ntfsundelete /dev/sda7 -u -i  -o FeMilm76 -d /media/66A09271A0924787/21g/
Inode Flags %age Date Size Filename
---------------------------------------------------------------
FN.. % -- FeMilm76 Undeleted 'FeMilm76' successfully.

提示恢复成功!

看看第二个文件<none>:

$ sudo ntfsundelete /dev/sda7 -u -i  -o <none> -d /media/000131C0000E41A3/32g/
bash: none: 没有那个文件或目录

给出一个文件的名字,把none替换掉即可:

$ sudo ntfsundelete /dev/sda7 -u -i  -o PaiZi -d /media/000131C0000E41A3/32g/
Inode Flags %age Date Size Filename
---------------------------------------------------------------
FN.. % -- <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选项)

linux下rm -r误删NTFS文件恢复方法的更多相关文章

  1. Linux下rm操作误删恢复

    1.查看被误删的分区 df /home/Java/...      一直到刚刚被误删的文件的路径下 2.在debugfs打开分区 open /dev/ssl       最好这个分区可能不一样,根据上 ...

  2. Linux下几种另类创建文件之方法

    以前我们用编辑器例如vi来新建文件,下面介绍几种另类生成文件的方法,多用在备份和测试上. 创建文件的方法: 1.echo 命令    #echo "set bell"  >& ...

  3. 误删ibdata1文件恢复方法

    注意:以下演示过程前提为mysqld进程仍在运行中,否则无法使用下面演示过程进行恢复! 1.手工制造故障,删除ibdata1文件,注意不要重启mysql shell > rm -rf ibdat ...

  4. linux下svn清除非版本控制文件的方法

    使用svn status命令,文件名前面显示问好的就是非版本控制的文件

  5. Ubuntu 16.04使用rm -rf误删文件恢复方法收集

    说明:不一定有效,需要不断尝试 一.lsof 文件刚刚被删除,想要恢复,先尝试lsof. lsof |grep data.file1 cp /proc/xxx/xxx/xx /dir/data.fil ...

  6. linux 下用find命令查找文件,rm命令删除文件

    linux 下用find命令查找文件,rm命令删除文件. 删除指定目录下指定文件find 要查找的目录名 -name .svn |xargs rm -rf 删除指定名称的文件或文件夹: find -t ...

  7. 分区恢复和NTFS文件恢复试验

    一.实验室名称:主楼实验室A2-412                  二.实验项目名称:分区恢复和NTFS文件恢复试验 三.实验学时:6学时 四.实验原理: 借助fdisk.diskgen软件对磁 ...

  8. Linux下的文件结构,及对应文件夹的作用

    Linux下的文件结构,及对应文件夹的作用 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比 ...

  9. linux下添加用户并将文件夹授权给某一个用户

    ### linux下添加用户并将文件夹授权给某一个用户 背景:在做一个项目时,需要外包的前端人员调试测试环境的页面,但是又不能给他服务器的账号信息,就在服务器上新添加一个子账户,再给这个账户项目文件的 ...

随机推荐

  1. spring整合freemarker

    一.配置maven <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...

  2. 如何用Eclipse进行单元测试

    1.在个人电脑中安装一个集成开发环境(Microsoft Visual Studio.Eclipse或其它工具均可),要求该环境能够提供单元自动测试功能: 2.记录安装过程,并将全部内容发表在博客中: ...

  3. C#Matlab混合编程类 初始化问题解决方法

    ************** 异常文本 ************** System.TypeInitializationException: “myPlus.matClass”的类型初始值设定项引发异 ...

  4. 史航第12次作业&总结

    作业1:找出最长的字符串 #include <stdio.h> #include <string.h> int main() { ],strings[][]; ; printf ...

  5. mac升级后提示pod: command not found

    问题:升级mac到10.12使用pod,提示pod: command not found   解决方法:sudo gem install -n /usr/local/bin cocoapods   如 ...

  6. web测试安全性常见问题

    web测试安全性常见问题                  一.             登录账号明文传输 1.  问题一:登录账号密码或者修改密码明文传输 现象:目前物流对内的java系统基本上都是 ...

  7. maven的配置环境及Myeclipse部署Maven项目

    1.官网下载maven>解压>配置环境变量:在path后面加上 D:\software\apache-maven-3.3.9\bin; 2.cmd/mvn -version 测试  显示版 ...

  8. cell当中的按钮如何获得cell内容

    cell当中的btn添加方法 [cell.btn addTarget:self action:@selector(btnClickedwith:) forControlEvents:UIControl ...

  9. js 日期对象Date以及传参

    创建一个日期对象,日期对象可传参new Date() 创建日期对象getFullYear() 获取年份 getMonth() 获取月份 返回值是 0(一月) 到 11(十二月) 之间的一个整数 get ...

  10. Jquery当中当data为json串时,eval('(' +data+ ')')的解释

    var dataObj = eval('(' +data+ ')') data是返回来的json. dataObj就是json对象了. 为什么要添加 '(' 与 ')' 作为开始于结尾呢? json是 ...