Chinaunix首页 | 论坛 | 博客
  • 博客访问: 507364
  • 博文数量: 158
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 904
  • 用 户 组: 普通用户
  • 注册时间: 2016-10-10 11:17
文章分类

全部博文(158)

文章存档

2018年(74)

2017年(84)

我的朋友

分类: LINUX

2018-04-03 12:00:15

【摘要】

Linuxwindows不同,删除文件后不会先到回收站,无法直接进入回收站找回并还原,根据Linux文件保存原理,可以使用extundelete工具来实现误删文件数据的恢复。

本文转自——学领未来

【正文】

Linux文件系统中删除文件后,实际是将inode节点中文件的扇区删除,同时释放文件所占的数据块block,在这些数据块还没被系统重新分配给其他文件时,可以找回已删除的文件,为了防止没有新的数据写入,需要取消挂载文件所在的盘,此外,也可以将盘设置为只读模式。本文是使用umount取消挂载这一步骤来防止文件继续写入。

extundelete是基于Linux的一个数据恢复工具,它通过分析文件系统的日志,解析出所有文件的inode信息,从而可以恢复Linux下主流的ext3ext4文件系统下被误删除的文件。extundelete会通过文件系统的inode信息(根目录的inode一般为2)来获得当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和inode。然后利用inode信息结合日志去查询该inode所在的block位置,包括直接块、间接块等信息。最后利用dd命令将这些信息备份出来,从而恢复数据文件。

   环境准备

1.1  在虚拟机新增硬盘后,新建分区

fdisk /dev/sdb

fdisk -l 确认分区已经创建

1.2  格式化分区

mkfs -t ext3 /dev/sdb1

1.3  模拟生产使用新建文件夹,挂载到新建的分区,然后上传几个文件

mkdir /data

mount /dev/sdb1 /data/

 

 

   文件删除及恢复

2.1  删除/data中刚上传的文件

 

2.2  开始恢复

2.2.1        取消挂载 /data,放着该分区有写入新数据,覆盖原来文件所占的block

umount /dev/sdb1

2.2.2       安装extundelete

2.2.3       查看/dev/sdb1 中的文件,可以看到有刚才已经删除的文件

extundelete /dev/sdb1 –inode 2

2.2.4       恢复文件,会在当前目录下新建 RECOVERED_FILES 的文件夹,文件会恢复到这个目录下

extundelete –restore-all /dev/sdb1

         

阅读(1454) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~