本人所写的博客都为开发之中遇到问题记录的随笔,主要是给自己积累些问题。免日后无印象,如有不当之处敬请指正(欢迎进扣群 24849632 探讨问题);
早些日子invaid 泄漏了部份数据,我姗姗的下载了一个15多个G的7-zip压缩包。忙着解压时因为停电导到硬盘无法读取。尝试了一些方法都无法恢复硬盘的数据读取。
然后重新使用命令mkfs.ext4的创建了文件系统。刚回车便后悔了,这硬盘是能正常使用ls命令了,但硬盘上那些重要的数据却因为这个操作彻底失去了链接。硬盘上资料相当重要,约有400多G,我很想把这些资料找回来,因为涉及到大部份个人隐私数据,同时要恢复这么多资料钱已经布擦布的我只能自己尝试看能不能恢复数据了。
在网上找到办法无法恢复硬盘的数据,而又因为重构了超级表,那要恢复数据只能自己想办法了。
在github上找到了ext4magic的源代码,我打算在此代码的基础上逐个读取硬盘上的inode,尝试看数据是否能成功恢复。
ext4magic的池子地址为:https://github.com/iSWORD/ext4magic.git
源代码包下载后,配置编译时出现的问题在此略过,将需要安装的依赖统一及需要执行的指令放在下面的代码框内:
jingtongact@wsl:~/ext4magic$sudo apt install -y libtool libblkid-dev libext2fs-dev libuuidm-ocaml-dev libghc-bzlib-dev libmagic-dev
jingtongact@wsl:~/ext4magic$cp /usr/share/libtool/build-aux/config.sub .
jingtongact@wsl:~/ext4magic$cp /usr/share/libtool/build-aux/config.guess .
jingtongact@wsl:~/ext4magic$autoreconf -ivh
jingtongact@wsl:~/ext4magic$./configure
jingtongact@wsl:~/ext4magic$make
首先要做的是读取硬盘镜像上的第一个文件,在虚拟机上做如下配置
?在此虚拟盘上创建一个text.txt的文件
jingtongact@vbox:/data$mkfs.ext4 /dev/sdd1
jingtongact@vbox:/data$sudo mount /dev/sdd1 /data
jingtongact@vbox:/data$cd /data
jingtongact@vbox:/data$touch test.txt
jingtongact@vbox:/data$echo "hello,world">>test.txt
jingtongact@vbox:~$sudo umount /dev/sdd1
jingtongact@vbox:~$sudo dd if=/dev/sdd1 of=test.image
将上面生成的test.image文件复制至windows系统,这样就有了测试用的ext4文件镜像,下面要做的第一个操作就是尝试通过修改ext4magic源代码来将test.image内的test.txt文件恢复出来。
=======================================
== 以下内容待完善
=======================================
参考资料
ext4数据恢复实战及文件系统结构详解 - 简书
使用hexdump工具追踪EXT4文件系统中的一个文件 - 姜姜csu - 博客园
ext4 文件分区丢失后(或误删除数据)恢复数据_尉澄华的博客-CSDN博客_ext4分区恢复
|