一时疏忽,手一抖,把整个挂载的F盘删了一半!顿时傻眼!!
被删的F盘是Windows下NTFS分区,在Ubuntu12.04中挂载了F盘,使用rm命令时粗心大意,误删了一半的数据。
血的教训告诉我们,使用rm -r命令一定要带上-i,否则让你后悔莫及!
还好在Linux下有一种方法可以恢复被删除的NTFS分区文件。
在文件被误删后,不要再往分区写数据!切记。
首先,看看我们被删的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.. % --
Files with potentially recoverable content:
可以看出,待恢复的有两个文件,100%表示可以完整恢复!一下看到了希望!
请注意,第二个文件的名字是 ,这里稍后要给出一个名字。
现在,我们挂载其他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,用于存放文件
$ 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.
提示恢复成功!
看看第二个文件:
$ sudo ntfsundelete /dev/sda7 -u -i -o -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.. % --
Undeleted '(null)' successfully.
成功!
整个恢复时间不长,速度挺快的,祝你好运。
(完)
参考资料:
Linux下rm操作误删恢复
1.查看被误删的分区 df /home/Java/... 一直到刚刚被误删的文件的路径下 2.在debugfs打开分区 open /dev/ssl 最好这个分区可能不一样,根据上 ...
Linux下几种另类创建文件之方法
以前我们用编辑器例如vi来新建文件,下面介绍几种另类生成文件的方法,多用在备份和测试上. 创建文件的方法: 1.echo 命令 #echo "set bell" >& ...
误删ibdata1文件恢复方法
注意:以下演示过程前提为mysqld进程仍在运行中,否则无法使用下面演示过程进行恢复! 1.手工制造故障,删除ibdata1文件,注意不要重启mysql shell > rm -rf ibdat ...
linux下svn清除非版本控制文件的方法
使用svn status命令,文件名前面显示问好的就是非版本控制的文件
Ubuntu 16.04使用rm -rf误删文件恢复方法收集
说明:不一定有效,需要不断尝试 一.lsof 文件刚刚被删除,想要恢复,先尝试lsof. lsof |grep data.file1 cp /proc/xxx/xxx/xx /dir/data.fil ...
linux 下用find命令查找文件,rm命令删除文件
linux 下用find命令查找文件,rm命令删除文件. 删除指定目录下指定文件find 要查找的目录名 -name .svn |xargs rm -rf 删除指定名称的文件或文件夹: find -t ...
分区恢复和NTFS文件恢复试验
一.实验室名称:主楼实验室A2-412 二.实验项目名称:分区恢复和NTFS文件恢复试验 三.实验学时:6学时 四.实验原理: 借助fdisk.diskgen软件对磁 ...
Linux下的文件结构,及对应文件夹的作用
Linux下的文件结构,及对应文件夹的作用 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比 ...
linux下添加用户并将文件夹授权给某一个用户
### linux下添加用户并将文件夹授权给某一个用户 背景:在做一个项目时,需要外包的前端人员调试测试环境的页面,但是又不能给他服务器的账号信息,就在服务器上新添加一个子账户,再给这个账户项目文件的 ...
随机推荐
WPF界面布局——各种控件
Grid是最常用的动态布局控件,也是所有动态布局控件中唯一可按比例动态调整分配空间的控件. label : 标签,用来显示文本内容.可以为其他控件如文本框等添加一些描述性的信息. TextBox : ...
【原创】Kakfa api包源代码分析
既然包名是api,说明里面肯定都是一些常用的Kafka API了. 一.ApiUtils.scala 顾名思义,就是一些常见的api辅助类,定义的方法包括: 1. readShortString: 从 ...
officetohtml
http://blog.csdn.net/mcpang/article/details/6817643
NSString常见用法总结
//====================NSStirng 的常见用法==================== -(void)testString { //创建格式化字符串:占位符(由一个%加一个字 ...
服务器 tfs不提供 TeamFoundation服务。基础连接已经关闭
服务器 tfs(服务器名或url)不提供 TeamFoundation服务.基础连接已经关闭,发送时发生错误.TFS突然间连接不上到,到服务器上配置团队项目的组成员资格提示这样的错误,客户端连接的时候 ...
安全cookie登录状态设计方案
我们知道web是基于HTTP协议传输的,明文传输是极其危险的,随便哪个抓包工具分析下数据包,就over啦,一个加密的传输过程应该包括两部分,一部分为身份认证,用户鉴别这个用户的真伪:另外一部分为数据加 ...
Ubuntu创建、删除文件与目录
"~"代表了用户主目录,即/home/帐户名.所以"/home/jv/下载"="~/下载" 创建文件和目录(文件夹) touch filen ...
【PHP】制作日历
本期本博主将讲述两种利用PHP制作日历的方法,由于PHP日期函数的便捷性,使得我们制作日历这一过程变得相当简单 问题描述: 1.取到当前日期,并着色显示:2.根据当前日期,判断本月有多少天,一号是周几 ...
Node.js:上传文件,服务端如何获取文件上传进度
内容概述 multer是常用的Express文件上传中间件.服务端如何获取文件上传的进度,是使用的过程中,很常见的一个问题.在SF上也有同学问了类似问题