ubuntu 文件恢复
extundelete - Ubuntu 误删文件恢复
系统版本:14.04
文件系统版本:ext4
可恢复的原理
首先知道什么是 inode
inode 存储了包含文件的元信息,比如文件的字节数,文件的读写执行权限,文件的时间戳,文件数据 block 的位置等信息。
所谓 block 就是类似于 Windows 中簇的概念,是文件系统读写磁盘的最小单位,这里的文件数据 block 存储了文件数据在磁盘中的数据。
当我们删除文件,inode 号不变,其信息还在,只不过该 inode 号被设置为可用,其指向的 block 空间被设置为空闲,只要我们能【在 inode 复用之前】找到要恢复的文件的 inode 且
【inode 指向的 block 没有被覆盖】,然后就可以正确恢复文件。
对应的两种恢复失败的情况: inode 已被重新使用
Block 被覆盖
关于 inode
http://www.ruanyifeng.com/blog/2011/12/inode.html
第一步:尽量减少要恢复的分区的文件操作
为了预防文件误删除的情况,可以提前安装文件恢复程序,否则程序的安装也可能会导致文件恢复失败。
如果可以,将要恢复的分区卸载或设置为只读分区,防止 inode 及数据被覆盖使用。
umount /分区
mount –o remount,ro /分区
关于分区挂载
http://www.cnblogs.com/avril/archive/2010/03/23/1692783.html
第二步:查看文件系统和分区
使用 df –T /home/命令查看/home/文件夹对应的分区和文件系统查看文件系统和分区
文件系统 类型 1K-blocks 已用 可用 已用% 挂载点
/dev/sda1 ext4 19478204 4300092 14165632 24% /
这里文件系统分区为 /dev/sda1 文件系统 ext4 extundelete 只支持 ext4/ext3 文件系统关于 ext4、ext3
http://os.51cto.com/art/201205/334497_all.htm
关于 df 命令
http://www.cnblogs.com/peida/archive/2012/12/07/2806483.html
第三步:检查 g++编译器
输入 g++
如果没有,按照提示进行安装即可第四步:下载安装 extundelete
1. 下载 网址:http://extundelete.sourceforge.net/
2. 解压 跳转到下载目录,执行
tar –xjvf extundelete-0.2.4.tar.bz2
3. 安装依赖
sudo apt-get install e2fsprogs sudo apt-get install e2fslibs-dev
4. 编译
./configure
make
sudo make intall
第五步:使用
这里我们只演示恢复单个文件,且文件所在文件夹没有被删除的情况,具体请参考 extundelete 的帮助文档
建立路径及文件如图所示
里面存储的是我们熟悉的 Hello,World
1.首先需要 root 权限
http://www.cnblogs.com/weiweiqiao99/archive/2010/11/10/1873761.html
User-root sudo su 即可
Root->user ctrl+D
2.查看要恢复文件夹所包含文件的 inode
ls –id /路径
3.查看要恢复文件所在文件夹所在分区
df /路径
这里我们看到分区为 /dev/sda1
4.显示文件夹所包含的文件的 inode
sudo extundelete /自己的分区 /路径 –inode 文件夹 inode 号
如果分区依然挂载,会提示以下信息,提示操作可能失败
输入 y 即可
5. 恢复 inode 指定的文件到特定文件夹
sudo extundelete /自己的分区 –restore-inode 要恢复的文件的 inode –o 要恢复到的文件
恢复的文件的命名为 file.inode 如果不指定输出目录,默认的输出目录为 RECOVERED_FILES 目录
细心的同学可以发现,当前的 inode 并不是之前的 inode ,因为中间的多次测试都失败了,比如
恢复了错误的文件还有就是,所要恢复的 inode 已经被重新分配了
删除需谨慎
参考将 rm 映射到 trash,让 rm 类似于回收站的功能
http://sparkandshine.net/prevention-rm-command-accidentally-erased-computer-files/
chattr 命令防止某个文件被删除
http://coolsky.blog.51cto.com/177347/1230332
备份
https://www.zybuluo.com/ghosert/note/3408
等…
ubuntu 文件恢复相关推荐
- linux恢复设置文件夹,将.bashrc文件恢复到Ubuntu中的默认设置
以下介绍在Ubuntu系统中将.bashrc文件恢复默认设置的方法,如果你在Ubuntu系统中把.bashrc文件搞坏了就按下面的方法恢复bashrc文件. 背景 我有一个Ubuntu VM,我经常用 ...
- Ubuntu中恢复rm命令误删文件
环境 :ubuntu16.04 extundelete介绍 extundelete是一个实用程序,可以从ext 3或ext 4分区恢复已删除的文件.ext 3和ext 4文件系统是Linux发行版(如 ...
- Ubuntu中恢复rm命令误删文件(转)
计算机系统:Ubuntu 16.04 1 背景 在做项目的时候,本来想使用rm命令删除以14开头的文件,结果写成如下形式: rm 14 * 注意,本来14和*之间不应该有空格的,但是误写了一个空格,结 ...
- ubuntu 20.04中sources.list文件恢复系统默认源
前言 ubuntu 20.04中sources.list文件恢复系统默认源 小白学习,误该后改不回来,找了很久才找到,做个记录 一.sources.list文件恢复系统默认源 1.进入编辑 sourc ...
- Ubuntu文件的复制、移动和删除命令
Ubuntu文件的复制.移动和删除命令 先说说cp复制命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大. 语法: cp [选项] 源文件或目 ...
- Linux文件恢复利器 ext3grep与extundelete
Linux文件恢复利器 ext3grep与extundelete extundelete-0.2.4.tar.bz2 ext3grep-0.10.2.tar.gz https://www.cnblog ...
- 【转】文件恢复神器extundelete
参考博文: 1.Linux中VMware虚拟机增加磁盘空间的扩容操作 http://www.net130.com/CMS/Pub/special/special_virtual/special_vir ...
- Sql Server实用操作-无数据库日志文件恢复数据库两种方法
数据库日志文件的误删或别的原因引起数据库日志的损坏 方法一 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启s ...
- mysql 二进制日志 解析c++_mysql二进制日志文件恢复数据库
二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所 ...
最新文章
- 解压ubi文件_制作ubi文件系统
- 可设置指定时间自动消失的 MessageBox实现
- python网络编程要学吗_总算发现如何学习python网络编程
- led内部结构_科普PCB,DPC,陶瓷PCB对于LED封装有哪些差异? - led显示屏_高清led显示屏价格_led显示屏生产厂家...
- windows 停止nginx
- 10产品经理要懂的-人性行为之自私的本质
- Windows2003工组环境通过CA证书对加密WEB服务器
- 儿童机器人编程入门优先学习什么?
- 安卓layout布局三等分
- unity Audio 基础知识二 Audio Mixer
- 20金融学431考研应该注意些什么
- EasyBoot使用方法
- 南头中学2021年高考成绩查询,深圳新安中学和南头中学哪个好
- Linux环境安装+阿里云+jdk8
- 在公众号中通过链接下载APP时,如何不通过应用宝,直接跳浏览器下载?
- github标准pull request提交流程
- 玩转DWZ (一)---项目中怎么使用dwz
- python return返回值格式化_day11__函数名的应用,python新特f-strings格式化输出、迭代器...
- idea查看java文件编码_Intellij Idea编译项目下的.java文件时的编码问题
- ZigBee定位系统与网络拓扑