Linux文件误删之后恢复方法
前言
今天不小心把一个文件给误删了,因为不想花半天时间重新写,就查找了一下Linux下恢复文件的方法。
因为是刚删不久,文件实际的数据应该还在
首先查看系统分区
Linux:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 % /
tmpfs % /var/lib/php5
tmpfs % /var/run
tmpfs % /tmp
ssl_service % /kssl/HRP/cache
使用系统自带工具debugfs进行修复
打开删除的文件所在的分区
Linux:~# debugfs
debugfs 1.37 (-Mar-)
debugfs: open /dev/sda1
用ls -d查看刚刚删除的文件所在的目录
如果列表中有我们要找的文件,尖括号<>中是对应的inode号
debugfs: ls -d /root/rand-test
() . () .. () assess
() experiments <> () () data
<> () ..swp () periodtest.sh
<> () .singletest.input.swp () periodtest.input
() singletest.input <> () .periodtest.input.swp
<> () .singletest.input.swp <> () periodtest.input~
查看inode的日志文件
debugfs: logdump -i <180338>
Inode 180338 is at group 176, block 1441809, offset 128
Journal starts at block 3434, transaction 90549
FS block 1441809 logged at sequence 90622, journal block 3950
...
quit退出debugfs,使用dd命令进行恢复,bs为前面得到的offset,skip为前面得到的block
debugfs: quit
Linux:~/rand-test# dd if=/dev/sda1 of=/root/rand-test/periodtest.input~ bs= count= skip=
+ records in
+ records out
bytes transferred in 0.000081 seconds ( bytes/sec)
遗憾的是,我要恢复的文件已经不在了
好在对于文本文件还有另一种方法,使用grep
第一步同样是找到文件所在的分区
然后使用grep对分区进行搜索,只要你记得文档中的某些关键字
grep -a -B -A 'function checkInt() ' /dev/sda1 > tmp.txt
其中-a表示把分区看成文本形式(分区本身是二进制形式的),-B 30 -A 150表示找到搜索的内容就打印前面30行和后面150行
如果分区比较大可能需要一定的搜索时间,完成之后打开tmp.txt,你会发现在一堆乱码中镶嵌着你要恢复的本文
至此,大功告成,总结
使用debugfs的方法适用于所有文件,不过需要inode信息仍然存在。使用grep的方法,只需要实际的block中数据还存在即可恢复,不过只适用于文本文件。
另外,切记rm需谨慎
Linux文件误删之后恢复方法的更多相关文章
- Linux 文件系统错误的修复方法 ddrescue替代dd的恢复软件 备用超级块
Linux 文件系统错误的修复方法 ddrescue替代dd的恢复软件 备用超级块 最近处理的一件 linux 服务器断电导致文件系统启动后文件系统不可读写,数据不可用的案例,现总结下 Linux ...
- 如何彻底删除SVN中的文件和文件夹(附恢复方法)
在SVN中如果删除某个文件或文件夹也可以在历史记录中进行找回,有的时候需要彻底删除某些文件,即不希望通过历史记录进行恢复,需要在服务器上对SVN的数据进行重新整理 这里假设SVN项目的目录为 /dat ...
- 【转】如何彻底删除SVN中的文件和文件夹(附恢复方法)
这里假设SVN项目的目录为 /data/svn/project,我们想排除trunk/test.exe文件和trunk/notallowed/目录,操作步骤如下及执行的svn命令(在svn安装目录的b ...
- Linux文件误删恢复
一.需求研究 分析对比debugfs.testdisk 6.14.extundelete,对比各自官网介绍和操作说明本次决定研究extundelete对文件和目录的恢复操作. 二.项目内容 1.工具安 ...
- git 误删分支恢复方法
在使用Git的过程中,因为人为因素造成分支(commit)被删除,可以使用以下步骤进行恢复. 首先用以下步骤创建一个新分支,修改一些文件后删除,以便进行恢复. 1.创建分支 abc git branc ...
- 使用ssh 登录Linux 文件上传下载方法
最简单的方法: 安装WinSCP或者Filezilla, 启动该程序,然后自己输入输入主机名.端口.用户名.密码登录,然后在putty里面用pwd命令看看当前目录,再在WinSCP/Filezilla ...
- ctf比赛linux文件监控和恢复shell
之前参加ctf比赛时候临时写的,有很多不足,不过可以用,就贴出来分享给大家,希望对大家有帮助. 脚本一:记录当前目录情况 #!/bin/bashfunction getdir(){ for el ...
- Windows 与 linux文件相互传输的方法
公司里面办公机器大部分都是 windows 但是现在随着云计算.docker.linux等的越来越兴起,需要大量的操作linux服务器. 最重要和最直接的需要将windows 上面的文件上传到 lin ...
- Ubuntu启动文件破坏启动恢复方法
reboot后主机登录显示如下图: 解决步骤: 1.fs0:(回车) 2.edit startup.nsh 3.添加下面字段: fs0: cd EFI/ubuntu grubx64.efi 4.重启即 ...
随机推荐
- Dockerfile命令大全
Dockerfile 制作Dockerfile为Docker入门学习的第一步. Dockerfile可以快速的帮助我们去构建镜像, 是在工作中必备的一项技能, 下面整理了一些命令 FROM 功能为指定 ...
- 基于c#的windows基础设计(学习日记1)【关于异或运算】
第一次接触异或运算,总体来说比哈希算法简单的多,无论是理解还是代码的难易度,唯一不好的是在固定了密钥之后,随机性就小了很多,所以安全性比起哈希算法还是有所差距. 原理在网站上很多都有所以就不再赘述了. ...
- 显卡、GPU和CUDA简介
http://blog.csdn.net/wu_nan_nan/article/details/45603299 声明: 本文部分内容来自网络.由于知识有限,有错误的地方还请指正.本帖为自己学习过程的 ...
- 架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)
[前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(一)>中小编简单的讲解了Nginx的原理!俗话说:光说不练假把式.接下来,小编就和大家一起来做个小Demo来体会一下N ...
- Python-接口自动化(一)
python基础知识(一) 一.python语言特点 1.易于学习:python有相对较少的关键字,结构简单,有一个明确定义的语法,学起来比较简单: 2.易于阅读:python代码定义的更清晰: 3. ...
- 关于数据安全RSA,MD5,TOKEN
网络上明文传输时 1.数据可能被窃取:2.数据可能被篡改:3.数据被泄露 如何解决: 1.数据被窃取是由于数据能随意的被拿到,且能够被识别.可以有2个方式解决 a.使数据不能随意被获取: 使用toke ...
- L328 What Is Millennial Burnout?
What Is Millennial Burnout?Do you often feel stressed? Does the pace of life make you feel like you' ...
- python自学第14天 类
面向对象:世界万物,皆可分类:世界万物,皆为对象 只要是对象,就肯定属于某种品类. 只要是对象,就肯定有属性 类 对象 封装 继承 多态 一个接口,多种实现
- C#获取文件目录
Form1.cs using System;using System.Collections.Generic;using System.ComponentModel;using System.Data ...
- oracle累积求和分析函数sum over的使用
oracle sum()over函数的使用 over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用. over函数的参数:over(partit ...