您现在的位置是:首页 > 正文

Linux数据恢复

2024-04-01 03:46:32阅读 0

博客:https://silentx.gitee.io/

一.概述

此次是使用不同工具对不同Linux系统进行数据恢复

环境准备:

系统:centos7,Ubuntu20,kali2022

软件:testdisk,foremost,extundelete,R-Linux

分区类型:ext3、ext4、vfat


二.centos7 使用testdisk对ext4分区的文件恢复

1.安装软件testdisk

yum install testdisk

在这里插入图片描述

2.初始化并挂载硬盘

虚拟机添加一块任意大小的硬盘,然后重启。

2.1.查看未挂载硬盘

fdisk -l

2.2.创建硬盘分区

fdisk /dev/sdb

在这里插入图片描述

2.3.格式化硬盘

mkfs.ext4 /dev/sdb     #格式化为ext4
mkfs.vfat -I /dev/sdb   #或者改为vfat类型(相当于windows下的fat32)

在这里插入图片描述

2.4.设置开机自动挂载

vim /etc/fstab
#末尾添加 /dev/sdb /huifu ext4 defaults 0 0

或者临时挂载

mkdir /huifu
mount /dev/sdb /huifu

2.5.挂载成功

df -h

3.创建文件,然后删除文件

4.恢复文件

4.1.使用软件testdisk选择需要恢复文件所在的硬盘

4.2.默认回车

在这里插入图片描述

4.3.用键盘方向键移动到list,然后回车

4.4.选择2.txt,并选择恢复的路径(“c”选择需要恢复的文件复制,“q”返回上一步)

4.5.成功恢复

在这里插入图片描述

5.查看日志文件

cat testdisk.log

在这里插入图片描述


三.Ubuntu20 使用foremost对ext4分区的文件恢复

1.安装软件foremost

apt-get install faremost

2.查看分区类型

(此次在/dev/sda2下进行恢复)

在这里插入图片描述

3.上传并且删除上传文件

在这里插入图片描述

4.恢复文件

4.1.设置虚拟机与主机的共享

4.2.恢复文件至/output下,并且复制到共享目录

foremost -t zip -i /dev/sda2

在这里插入图片描述

4.3.共享目录:/mnt/hgfs/1/。每个系统的路径大致相同,可能名称有所差别

4.4.恢复成功

在这里插入图片描述

5.补充

  1. foremost仅支持ext3/ext4文件系统;

  2. foremost是根据搜索文件头和文件尾来恢复文件,所以不支持恢复txt文件;

  3. 相关参数说明:

-t :指定文件类型(jpeg,pdf,doc,xls,ppt,zip,rar …)

-i :指定输入文件

-v :详细模式(将所有消息记录到屏幕上)

-o :设置输出目录(默认为输出)


四.Ubuntu20 使用extundelete对ext3分区的文件恢复

1.安装软件extundelete

1.1.安装依赖包

apt-get install e2fsprogs* -y
apt-get install e2fslibs-dev
apt-get install g++

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.2.下载extundelete包

wget http://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

在这里插入图片描述

1.3.解压包

tar -jxvf extundelete-0.2.4.tar.bz2

在这里插入图片描述

1.4.生成makefile

cd extundelete-0.2.4
./configure --prefix=/usr/local/ extundelete

在这里插入图片描述

1.5.make编译报错。(因为版本不符)

make && make install

在这里插入图片描述

1.6.修改文件位于 extundelete源代码的src目录下的insertionops.cc

修改后的截图:

在这里插入图片描述

1.7.修改后编译成功

在这里插入图片描述

1.8.添加环境变量

echo "PATH=/usr/local/extundelete/bin:$PATH" >> /etc/profile
echo "export PATH" >> /etc/profile
source /etc/profile

2.创建文件,然后删除文件

df -Th

在这里插入图片描述
在这里插入图片描述

3.恢复文件

3.1.使用extundelete搜索分区

extundelete /dev/sdb --inode 2   #搜索根节点

3.2.发现目录aaa

在这里插入图片描述

3.3.通过aaa的索引值,进入到aaa目录,发现被删除文件1.txt

extundelete /dev/sdb --inode 8193

在这里插入图片描述

3.4.根据inode恢复文件

extundelete /dev/sdb --restore-inode 8196

恢复至RECOVERED_FILES目录下

在这里插入图片描述

4.补充

1.extundelete支持文件系统:ext3/ext4;

2.在恢复文件时,最好用umount命令取消挂载磁盘;

3.相关参数:

磁盘文件扫描: extundelete {dev_part} --inode 2

根据inode节点恢复:extundelete {dev_part} --restore-inode {inode_num}

根据文件名恢复:extundelete {dev_part} --restore-file {file_name}

根据目录名恢复: extundelete {dev_part} --restore-directory {dir_name}

恢复所有文件: extundelete {dev_part} --restore-all


五.使用R-Linux恢复Debian系统文件

1.安装软件R-Linux

1.1. 查看系统版本

在这里插入图片描述

1.2.下载deb包(这里下载的r-Linux是r-studio的免费版)

https://www.r-studio.com/free-linux-recovery/Download.shtml

1.3.放在Debian系统上(kali)安装

dpkg -i RLinux5_x64.deb

在这里插入图片描述

1.4.左上角搜索R-LINUX

在这里插入图片描述

2.创建并删除文件

在这里插入图片描述

3.恢复文件

3.1.点击要恢复文件所在硬盘根目录

在这里插入图片描述

3.2.找到删除文件恢复,文件会被重命名

在这里插入图片描述

3.3.成功恢复到bbb文件夹

在这里插入图片描述

3.4.查看恢复文件

​ 但是此时去bbb文件夹发现没有恢复成功的文件,我们注意看上面的截图,文件名前有“.”,它恢复出来是一个隐藏文件(不同系统情况不一样)。使用ls -al命令查看隐藏文件,然后重命名文件去掉“.”。

在这里插入图片描述


六.补充

Windows下比较好用的数据恢复软件有:X-Ways、R-Studio、winhex、DiskGenius…。数据能被恢复的前提是没有被覆盖。

网站文章