一时疏忽,手一抖,把整个挂载的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. Linux QT

    Check system version 1.  cat /proc/version mike@sp-ThinkPad-X220:~$ cat /proc/versionLinux version 3 ...

  2. Form提交是会刷新页面的

    今天发现如果页面中有form,点击提交按钮是会刷新页面的,为了禁止页面刷新行为,可以这么做: <form class="form-horizontal" id="u ...

  3. jquery EasyUI datagrid 的扩展

    接触 easyui 半年,js学的不深.大神请路过. 直接扩展 添加方法: $.extend($.fn.datagrid.methods, { getSelectedIndex: function ( ...

  4. 介绍开源的.net通信框架NetworkComms框架之三 传递List

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  开源地 ...

  5. Tcc学习笔记(一) 开篇

    TCC,全称Tiny C Compiler(http://bellard.org/tcc/),是一个颇具特色的C编译器,你能把它当作一个C语言解释器来用,也可以嵌入你自己的应用程序作一个动态代码生成器 ...

  6. privoxy代理google浏览器访问缓慢

    取消--no-daemon <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PU ...

  7. Android之设置横屏竖屏

    方案一:在AndroidManifest.xml中配置 在项目的AndroidManifest.xml中找到你所指定的activity中加上Android:screenOrientation属性,它有 ...

  8. 十.oc内存管理

    引用百度百科图 栈(stack)又名堆栈. 栈定义:栈是限定仅在表头进行插入和删除操作的线性表(有序).(又称:后进先出表) (动态)数据展示存储的地方.(举例:升降电梯)特点:先进后出(FILO—F ...

  9. DNX SDK版本 “dnx-clr-win-x86.1.0.0-beta5”无法安装

    打开VS2015,出现 “DNX SDK版本 “dnx-clr-win-x86.1.0.0-beta5”无法安装,该解决方案将对此会话使用DNX SDK版本“dnx-clr-win-x86.1.0.0 ...

  10. 需要一个策略文件,但在加载此媒体时未设置checkPolicyFile标志

    LoaderContext的checkPolicyFile属性: 如果您从执行调用的 SWF 文件所在的域之外加载图像(JPEG.GIF 或 PNG),并且您预计将需要从 ActionScript 访 ...