【取证学习】Linux系统的证据收集和分析 解决dd备份磁盘爆掉

目录

一、实验目的

二、实验内容

三.实验仪器及器材

四、实验步骤


一、实验目的

掌握 Linux 系统下使用 dd 进行磁盘镜像备份与恢复的核心技术

熟悉取证分析中文件删除后的数据恢复流程

理解 ext2 文件系统中 inode 与数据块的关联机制。

二、实验内容

磁盘镜像构建与备份

用 dd 创建 100MB 虚拟磁盘镜像,格式化为 ext2 文件系统,写入测试文件 hello.txt 并记录其 inode 号。

通过 dd 整盘备份并实时压缩,验证压缩率;解压后恢复镜像。

取证场景模拟

删除测试文件 hello.txt ,制造"已删除文件"取证场景。

数据恢复验证

使用 debugfs 分析镜像,定位已删除文件的 inode (如 12 号记录),导出数据块(如 block 265 ),成功恢复 hello.txt 。

三 . 实验仪器及器材

VMware Ubuntu 20.04

四、实验步骤

首先要明确压缩、解压文件需要空间,我的虚拟机数据是放在D盘,我首先查看D盘还剩多少空间,还剩一百多个G

接着打开ubuntu 的终端,查看磁盘整体使用情况

bash 复制代码
 df -h
  • 根分区 / 只用了 5%,还有 196G 可用;

  • /home 几乎为空(113M / 265G);

  • 只有 /boot 用了 83%,但 44M 剩余也足够。

查看磁盘

bash 复制代码
lsblk
  • 只有一块物理盘 /dev/sda 500 G

  • 分区情况

    • /dev/sda1 220.6 G → 系统根分区 /

    • /dev/sda2 286 M → /boot

    • /dev/sda3 9 G → 交换分区

    • /dev/sda4 270.1 G → /home(几乎空,仅 113 M 已用)

备份 /dev/sda4(/home),但因为实际物理机我只剩一百多个G,所以我根本到时候压缩这个盘之后解压没有那么多空间可以放。所以进行以下方案:
创建工作目录

mkdir -p ~/dd-lab && cd ~/dd-lab

造 100 M 空盘
dd if=/dev/zero of=disk-100M.img bs=1M count=100

2. 格式化成「最简 ext2」并指定 1 KiB 块大小(方便小 block 号)
bash 复制代码
sudo mkfs.ext2 -b 1024 -O ^extent,^dir_index,^sparse_super,^resize_inode disk-100M.img
只写一次文件 → 立即只读卸载
bash 复制代码
sudo mount -o loop disk-100M.img /mnt
echo "Hello DD+GZIP+DebugFS" | sudo tee /mnt/hello.txt
sudo umount /mnt           # 关键:卸载后内核不会再动数据
用 debugfs 内部删除(不触内核回收)
bash 复制代码
sudo debugfs -w disk-100M.img
debugfs:  rm /hello.txt
debugfs:  quit
立刻 dd + gzip 备份(不再挂载!)
bash 复制代码
dd if=disk-100M.img bs=1M status=progress | gzip > disk.gz
解压成恢复镜像
bash 复制代码
gunzip -c disk.gz > disk-restored.img
找回 inode & block 号
bash 复制代码
sudo debugfs disk-restored.img
debugfs:  lsdel

我这里是12

按 q退出,继续在debugfs界面下输入:注意有空格

bash 复制代码
debugfs:  stat <12>

记下 BLOCKS

我这里是265,记得替换成你们的

输入q退出debugfs界面,回到终端

导出真实数据(开始恢复文件)
bash 复制代码
sudo dd if=disk-restored.img of=recovered.txt bs=1024 count=1 skip=XXX

skip后面的xxx为实际的上一步的BLOCKS,比如我的就是265

查看回复的文件内容

bash 复制代码
head -c 22 recovered.txt

确实没错

清理(可选)
bash 复制代码
cd ~ && rm -rf ~/dd-lab

完整实验截图:

恭喜完成!

相关推荐
见闻小天地4 小时前
空调机房赛莱默B&G冷冻泵/冷却泵的核心技术特性分析
大数据·运维·数据库
microxiaoxiao4 小时前
MobaXterm vs Aeroshell
linux·运维·ssh
东城居士5 小时前
理解设备树下的platform驱动编写
linux·嵌入式系统
JWASX5 小时前
【agent 开发】agent 开发学习 - LangChain(2)
python·学习·langchain
小义_5 小时前
Linux 补充
linux·服务器
晴天的雨.9925 小时前
【Linux】Shell 命令以及运行原理+权限管理
linux·运维·服务器
djjjx.5 小时前
Linux工具篇 (六):GDB 调试从底层逻辑到高阶实战
linux·运维·服务器·gdb
IT大白鼠5 小时前
彭大帅的AI运维助手实战案例 5 · 新接手的服务器,先让 AI 摸底
运维·服务器·人工智能
li星野5 小时前
【学习记录】立创EDA专业版核心概念全解析:数据整理、设计验证与器件四层模型
学习
知识分享小能手5 小时前
C学习教程,从入门到精通,C语言输入和输出(4)
c语言·开发语言·学习