周五篮球群里有人问误删文件了怎么恢复,得知是ext4文件系统之后我推荐了ext4magic这个工具,然后又有人提到了xfs的话怎么办,正好前几天看到Dave Chinner在邮件列表里提到了这个问题,他推荐的工具是xfs_irecover。这里就稍微总结一下Linux下误删文件如何恢复。

1. 当发现误删了文件之后,立即把文件系统卸载掉,或者remount成ro状态,就是不要再写了,让数据不要被其他数据覆盖。因为大部分文件系统在删除文件的时候只是把这个文件标记成删除,把文件所使用的数据块标记成可用,但是上边的数据还没有被清除,数据还是在的。那么这个时候不再写硬盘也就保证了数据块不会被其他数据覆盖掉,也就还有希望找回来。

2. 这一步是可选的。最好把要恢复的分区做一个镜像,dd if=/dev/sda5 of=/path/to/image/file bs=4k,这样在恢复的时候在镜像上尽兴,就算恢复出错数据被毁掉了,那也是镜像。

3. 根据不同的文件系统,选用不同的工具来找回删除的文件。ext3推荐用ext3grep,ext4用ext4magic,其实ext4magic是基于ext3grep的,而且ext4magic也能处理ext2/3文件系统;xfs用xfs_irecover,xfs_irecover的manpage在这里。

4. 至于能够恢复多少数据出来,那就看人品了

这里用ext4做个例子

# create ext4 fs and copy some files there

fallocate -l 16m ext4.img

losetup -f --show ext4.img

mkfs -t ext4 /dev/loop0

mount /dev/loop0 /mnt/ext4

cp  /mnt/ext4/

sync

# delete some files

rm /mnt/ext4/*

# umount the ext4 fs, this is important!

umount /dev/loop0

# make a copy of the fs

dd if=/dev/loop0 of=ext4-copy.img bs=4k

# run ext4magic on the image

ext4magic -m -d outputdir ext4-copy.img

# some sample output from the command

eguan@localhost:~/workspace/src/kernel$ sudo /home/eguan/bin/ext4magic -m ext4.img -d testdir

Warning: Activate magic-scan or disaster-recovery function, may be some command line options ignored

"testdir"  accept for recoverdir

Filesystem in use: ext4.img

Using  internal Journal at Inode 8

Activ Time after  : Sun Jun  7 22:43:54 2015

Activ Time before : Sun Jun  7 23:02:18 2015

Inode 2 is allocated

Unknown code ext2 45 #0 for block bitmap for ext4.img

Warning: error-NR 2133571363 can not found file: /

MAGIC-1 : start lost directory search

MAGIC-2 : start lost file search

--------        testdir/MAGIC-2/image/jpeg/I_0000000012.jpg

--------        testdir/MAGIC-2/image/jpeg/I_0000000013.jpg

--------        testdir/MAGIC-2/image/jpeg/I_0000000014.jpg

MAGIC-2 : start lost in journal search

MAGIC-3 : start ext4-magic-scan search

ext4magic : EXIT_SUCCESS

更多使用方法看ext4magic的manpage吧,就在源码包里。

阅读原文

转载于:https://www.cnblogs.com/276815076/p/5703796.html

Linux下恢复误删文件:思路+实践相关推荐

  1. linux下恢复误删文件

    linux下文件实际上是一个指向inode的链接, inode链接包含了文件的所有属性, 比如权限和所有者, 数据块地址(文件存储在磁盘的这些数据块中). 当你删除(rm)一个文件, 实际删除了指向i ...

  2. Linux下恢复误删的数据

    1.ext3grep:https://code.google.com/p/ext3grep/ 2.extundelete:extundelete: An ext3 and ext4 file unde ...

  3. linux文件回收站恢复,Linux之恢复误删的文件[针对丢弃到回收站]

    linux下恢复误删除的文件方法(ext2及ext3) linux下恢复误删除的文件方法(ext2及ext3) 2009-12-19 15:23:47 分类: LINUX 如果是ext2文件系统的,直 ...

  4. 如何恢复Linux中的误删文件

    写在前面的话 在开始教程之前我有必要提醒大家,使用窗口管理器(GUI)删除文件和使用命令行工具(CLI)删除文件这两种方法之间是有区别的. 当我们使用窗口管理器来删除文件时,我们仅仅只是将文件从某个目 ...

  5. linux 文件恢复删除文件,Linux通过lsof命令恢复误删文件的步骤

    Linux系统下lsof命令的用法有很多,恢复误删文件就是其中一种用法,特别是日志类文件的恢复,下面小编就给大家介绍下Linux使用lsof命令恢复误删文件的方法. 前提条件:该文件在删除后,仍然被进 ...

  6. 怎样找回Linux中丢失的文件,如何恢复Linux中的误删文件

    原标题:如何恢复Linux中的误删文件 写在前面的话 在开始教程之前我有必要提醒大家,使用窗口管理器(GUI)删除文件和使用命令行工具(CLI)删除文件这两种方法之间是有区别的. 当我们使用窗口管理器 ...

  7. linux误删 bin目录,记linux下rm误删bin文件的解决方式

    平常有个坏习惯,删文件为了快点,喜欢用rm xx*,删除一些关键词文件.今天为了删/bin下几个含有mix关键词的文件,使用命令rm mix*.手贱,mix和*之间多了个空格...灾难发生了!bin下 ...

  8. grep命令帮你恢复误删文件

    作为长期的电脑使用者,肯定会有误删文件的经历,在 Mac OS X 和 Windows 上删除的文件都会默认进 "回收站".在 Linux 上如果事先没有用别名(alias)修改默 ...

  9. centos挂载u盘只读_完美解决linux下U盘文件只读的问题

    1. 在终端运行如下命令 tail -f /var/log/syslog 2. 插入有只读文件系统故障的U盘 3. 观察命令行输出 输出局部如下: Jul  8 16:44:50 cslouis-pc ...

最新文章

  1. 电信运营商的云机遇-【软件和信息服务】2015.01
  2. python列出文件夹最新的几个文件_Python列出一个文件夹及其子目录的所有文件
  3. 【Oracle】如何在查询视图时使用索引
  4. Java中对象的实例化顺序
  5. 领域驱动设计,盒马技术团队这么做
  6. 接口设计的幂等性考虑
  7. 献给母亲节的沙画,致此生最爱——母亲!
  8. 智能巡检告警配置实践
  9. .net core精彩实例分享 -- 基础篇
  10. 设计一款编程语言有多难?Ruby 创始人揭秘
  11. java取得当前日期增加一天或多天
  12. [转载]i++是否是线程安全的?
  13. 2个方法解决PDF转成WORD
  14. APP界面设计流程和APP产品设计流程知识汇总
  15. [线性代数]矩阵(mooc秦静老师讲解)
  16. 计算机维修培训教材,计算机芯片级维修中心芯片级维修培训教材.pdf
  17. php精华之独孤九剑
  18. [NXP.iMX6UL] NFS服务器
  19. Excel无法跨表筛选,也不能多列筛选,要如何突破限制呢?本教材有方法
  20. 8月9日华为发布了其自研的鸿蒙操作系统,华为正式发布自研操作系统鸿蒙

热门文章

  1. 【Tools】CSDN-markdown编辑器使用说明
  2. [Qt教程] 第36篇 网络(六)UDP
  3. 编程能力强化(4)——模拟SQL语句解析
  4. 通过命令解锁Oracle,在命令行下进行Oracle用户解锁
  5. git branch 为什么会进入编辑状态_Git很难,搞砸很容易,好在有神奇命令让时光倒流...
  6. 对计算机网络的父亲,父亲节朋友圈对老爸说的话 写给父亲催泪的话简短
  7. 多路测量实时同步工作原理_MCC 134测量热电偶的工作原理
  8. 【读书笔记】沉默的大多数
  9. 盒子滤波/均值滤波NEON优化
  10. Windbg+VirtualBox调用内核