Linux下常用的数据恢复工具
一。数据删除
命令:rm -rf,将任何数据直接从硬盘删除,且没有任何提示
建议做法:
- 把命令参数放到后面:rm -rfi
- 将删除的东西通过mv命令移动到系统下的/temp目录下,然后写个脚 本定期执行清除操作
- 备份
二。extundelete的安装与使用
Linux下常见的基于开源的数据恢复工具有:debugfs/R-Linux/ext3grep/extundelete
1.恢复原理:三步
- extundelete恢复文件并不依赖特定的文件格式,首先extundelete会通过文件系统的incode信息(可通过 ls -id / 查看;根目录的incode一般为2)来获得当前文件系统下所有文件的信息(包括文件名和incode,包括已删除的文件)。
- 然后利用incode信息结合日志去查询该incode所在块位置,包括直接块/间接块等信息。
- 最后利用dd命令将这些信息备份出来,从而恢复数据文件
2.安装(介绍编译安装)
- 安装前需安装e2fsprogs和e2fsprogs-libs两个依赖包
- 下载extundelete(.tar.bz2)结尾的文件,假设为0.2.4版本
- 解压:tar jxvf extundelete-0.2.4.tar.bz2
- cd extundelete-0.2.4
- ./configure
- make
- make install
3.用法
命令格式:extundelete [optons] [action] device-file
[option]参数:
- --version,-[vV],显示软件版本号
- --help,显示软件帮助信息
- --superblock,显示超级块信息
- --journal,显示日志信息
- --after dtime,时间参数,表示在某段时间之后被删除的文件或目录
- --before dtime,时间参数,表示在某段时间之前被删除的文件或目录
[action]动作参数:
- --incode into,显示节点“ino”的信息
- --block blk,显示数据块“blk”的信息
- --restore-incode ino[,ino,...],还原命令参数,表示还原节点“ino”的文件,还原的文件会自动放在当前目录下的RESTORED_FILES文件夹中,使用节点编号作为扩展名。
- --restore-file'path',还原命令参数,表示将还原指定路径的文件,并把还原的文件放在当前目录下的RECOVERED_FILES文件中。
- --restore-all,还原命令参数,表示将尝试还原所有目录和文件
- -j journal,表示从已经命名的文件中读取扩展日志。
- -b blocknumber,表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件
- -B blocksize,表示使用数据块大小来打开文件系统,一般用于查看已经知道大小的文件。
4.注意
数据被误删之后,首先要做的是卸载被删除数据所在的磁盘或磁盘分区。如果根分区遭到删除,需要将系统进入单用户,并且将根分区以只读模式挂载。
原因:文件删除后,仅仅是将文件的incode中的扇区指针清零,实际文件还在。如果磁盘以读写械挂载,这些已删除文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,这些数据就真丢失了。所以以只读模式挂载可以尽量降低数据块中数据被覆盖的风险。
Linux下常用的数据恢复工具的更多相关文章
- MongoDB在Linux下常用优化设置
MongoDB在Linux下常用优化设置 以下是一些MongoDB推荐的常用优化设置.在生产环境下选取合适的参数值,例如预读值和默认文件描述符数目等,会对系统性能有很大的影响. 1.关闭数据库文件的 ...
- zip,rar及linux下常用的压缩格式
日常操作中我们经常使用到文件压缩操作,其使用一些特定的算法来减小文件的大小,可以提高传输数据时的速率和减少数据在一些存储机制上占有的空间大小,实现空间利用最大化. 比如:如果你想通过邮箱发送一个文件夹 ...
- linux下常用关机命令
linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 首先来看一下 ...
- Linux 下常用解压命令(转载)
Linux下常用文件解压(包括rpm.deb包) Linux下怎么解后缀名是gzip的文件?1.以.a为扩展名的文件:#tar xv file.a2.以.z为扩展名的文件:#uncompress fi ...
- Linux 下常用命令
linux 下常用命令: 1.删除文件命令为 rm 2.创建目录的命令是:mkdir 3.删除目录的命令是rmdir(空目录) 4.切换到root帐号:su 5.查看所有进程:ps -aux 6.杀死 ...
- linux下常用FTP命令
linux下常用FTP命令 1. 连接ftp服务器 1. 连接ftp服务器格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1b)服 ...
- linux下常用语言的语法检查插件整理
linux下常用语言的语法检查插件 可以结合vim语法检查插件syntastic使用,具体请参考syntastic使用说明 如php,sql,json,css,js,html,shell,c等语法插件 ...
- Linux下实现CAD数据的导出
近期公司项目涉及到CAD的导出,而且部署服务器申请不到Windows下的,所以技术上的解决方案就是寻求如何在Linux下实现CAD数据的导出. 于是百度了一下,找了几个相关库和软件. 1.dxflib ...
- linux下常用FTP命令 上传下载文件【转】
1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...
随机推荐
- 微信小程序再次升级:卖货小店小程序不用开发也能进行交易
卖货小店小程序,不用开发一行代码也能帮商家实现交易功能,这个真是几家欢喜几家愁啊,对于开发小程序商城的公司来说,这个无疑是一个雷霆之际,第一反应就是,这下完了,小程序自身就支持交易,那还要我们这些第三 ...
- POJ2887(块状链表)
Big String Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 6346 Accepted: 1525 Descr ...
- Web.config文件中关于Cookie安全性的考量和设置
cookie的内容,如图所示: HTTP response header: Set-Cookie: <name>=<value>[; <Max-Age>=<a ...
- iOS横屏设置的几种方式
1.界面旋转,MainScreen的宽高不变,键盘位置不变 CGFloat duration = [UIApplication sharedApplication].statusBarOrientat ...
- SQL Server(三)
一.数据库操作 create database 数据库名称 ——创建drop database 数据库名称 ——删除use 数据库名称 ——使用go 两条SQL语句之间分隔 二.表的操作 create ...
- 散列表(Hash table)及其构造
散列表(Hash table) 散列表,是根据关键码值(Key value)而直接进行访问的数据结构.它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做散列函数,存放记录 ...
- 洛谷P4218 [CTSC2010]珠宝商(后缀自动机+点分治)
传送门 这题思路太清奇了……->题解 //minamoto #include<iostream> #include<cstdio> #include<cstring ...
- django中的ORM与 应用与补充
目录 django中的ORM与 应用与补充 ORM与数据的对应关系 ORM 常用字段 ORM 其他字段 自定义字段 字段参数 Model Meta参数 常用13中查询(必会) 单表查询的双下划线应用 ...
- pytest框架(四)
测试用例setup和teardown 代码示例一 # coding=utf-8 import pytest def setup_module(): print("setup_module:整 ...
- 剑指Offer的学习笔记(C#篇)-- 从上往下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 一 . 题目解析 了解过二叉树就应该知道,二叉树存在三种遍历方法:前序遍历(根→左→右).中序遍历(左→根→右).后续遍历(左→右→根 ...