linux下rm -r误删NTFS文件恢复方法

linux下rm -r误删NTFS文件恢复方法(nfs-3g)

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

其次,取消挂载:

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: 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选项)

原文地址:https://www.cnblogs.com/jiftle/p/10966630.html

时间: 2024-10-15 01:48:21

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

Linux下两种删除过期文件的方法详述

一.概述 在实际的C软件开发项目中,不同的软件会在不同的目录中生成文件,由于磁盘的存储空间有限,开发人员不得不考虑对目录下的过期文件进行删除.一般说来,有两种删除过期文件的方法,一种是在C程序中实现,一种是利用crontab实现.本文对这两种方法的具体实现进行详细的介绍. 为了便于说明,本文中的过期文件的后缀为.c,存放在/home/zhou/zhouzx/Test目录下,过期时间为1天. 二.在C程序中实现过期文件删除 在该方法中,我们要考虑的主要问题为: (1)要删除过期多久的文件?文件存放

Linux下的几种清空文件的方法

我们在使用Linux系统的时候,经常会要去把某些文件清零,如:某些log文件,以下介绍几种常用的Linux文件清零的方法: 1.使用重定向 [[email protected] ~]# du -h test.txt # 查看文件大小 4.0K test.txt [[email protected] ~]# > test.txt [[email protected] ~]# du -h test.txt 0 test.txt 2.使用命令truncate清空文件 [[email protected

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

说明:不一定有效,需要不断尝试 一.lsof 文件刚刚被删除,想要恢复,先尝试lsof. lsof |grep data.file1 cp /proc/xxx/xxx/xx /dir/data.file1 如果lsof不能看到文件,那么就需要使用恢复软件进行恢复. 要做的第一件事是立刻卸载被误删除文件所在的分区,或者重新以只读方式挂载此分区. umount /dev/part 或 mount -o remount,ro /dev/part 删除一个文件,就是将文件inode(inode 是操作系

Linux 防止rm -rf 误删Shell脚本

#!/bin/bash #:set ff=unix #:set nobomb #-*- coding:utf-8 -*- ###################################################################### ## Filename:     Trash.py ## ## Copyright (C) 2014.6 ## Author:        [email protected]@qq.com ## ## Description:   S

Linux下目录的合并以及文件的覆盖

有两个目录test和new,test目录下有目录和文件,new目录下有更改过的一些test下的目录和文件,以及一些新增的文件,现在对两个目录进行合并以及覆盖test下的旧文件. cp -frap new/* test/ 命令其实非常简单,解释下: -f 强制覆盖,不询问yes/no(-i的默认的,即默认为交互模式,询问是否覆盖)-r 递归复制,包含目录-a 做一个备份,这里可以不用这个参数,我们可以先备份整个test目录-p 保持新文件的属性不变 记住一点就是,实现合并和覆盖是用cp,而不是mv

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

一.实验室名称:主楼实验室A2-412                  二.实验项目名称:分区恢复和NTFS文件恢复试验 三.实验学时:6学时 四.实验原理: 借助fdisk.diskgen软件对磁盘分区进行删除和恢复,使用工具软件WINHEX对指定的文件进行定位.分析,以及恢复. 五.实验目的: 1)掌握使用软件进行磁盘的分区恢复技术 2)了解NTFS文件系统在磁盘上的存储映像和它在系统安全中的地位和作用. 3)初步掌握NTFS的文件恢复技术 六.实验内容: n  磁盘分区恢复实验 1)在V

手机误删文件恢复方法,简单恢复

手机误删文件恢复方法,简单恢复.我们很多的时候都会因为自己的手机一些细小的原因,而将我们的手机文件给误删了,其实有的时候,我们误删了也是无所谓的,我们是可以选择借助我们的手机备份去恢复的. 那么若是我们没有手机备份的情况下,我们是不是可以通过一些方法找回我们的手机误删文件呢?我们该怎么恢复我们的手机误删文件呢?若是你不会的话,你也可以选择试试下面的方法去找回你的手机误删文件. 1.首先可以在准备恢复的时候打开电脑,之后在电脑上浏览器上下载安装"互盾安卓恢复大师",之后用数据线将电脑和丢

linux 下查找大于100M的文件

命令行如下 find . -type f -size +1000000k Linux系统下查找大文件或目录的技巧 当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否干掉一些了,怎么才能知道呢? #已易读的格式显示指定目录或文件的大小,-s选项指定对于目录不详细显示每个子目录或文件的大小 du -sh [dirname|filename] 如: 当前目录的大小: du -sh . 当前目录下个文件或目录的大小: du -sh * [[email protected] var]# du -

linux 下C语言编程库文件处理与Makefile编写

做开发快3年了,在linux下编译安装软件算是家常便饭了.就拿gcc来说,都有不下10次了,可基本每次都会碰到些奇奇怪怪的问题.看来还是像vs.codeblocks这样的ide把人弄蠢了.便下定决心一定要好好学习下如何在linux下纯手工gcc编译c项目.今天学了2点,一个是库文件处理,另一个是makefile编写. 学习的系统是centos6.6,编译升级的gcc4.8.2,明天写个博客总结下这回gcc安装的过程,每次都能学到些东西. gcc的编译过程 首先需要清楚gcc编译做了些什么 源文件