- A+
原创:4ll3n
上篇文章为大家讲解了在Linux ext4分区下如何恢复误删除文件的整个过程,每次坐在电脑前,把手机和电脑通过USB接口进行连接,为手机充电。总在想一个问题:“手机和电脑连接后,系统又做了点什么?”这就是整篇文章开始的源泉。
现在让我们走进系统,看看它的运行原理:
终端命令lsusb,分别列举了挂载设备的Bus、Device、ID、Name,什么是ID呢?设备的ID由Vendor、ProdID组成。
设备每次的挂在ID值在主机上是个唯一的指纹,这组数据在Command下如何获取呢?可以使用usb-devices获取所有在主机上以USB接口为主的所有参数。
Command给出的参数列表来自于:
图中给出了大量文本文件和对应的目录名,来验证下,数据是否正确:
看到图片有五个编号以1-8开头,以1.x结尾的文件目录,它们对应的是什么呢?
1-8:1.0对应这If#=0,依此类推,而如何获取图片中的Name?
进入目录后,可以发现其中有个名为:interface,对进行cat,就能得到上图中的接口名。
讲到这里,我们还有没结束,继续往深处挖掘,看看它们其他的关联文件。
在/run/udev/links下,找到了系统创建设备后的文件,进入文件看看,里面写的是什么。
随意进入两个目录,发现目录下存在一个文件文件,分别为:b8:16,c166:0,先暂时把这两组文件记录下来,继续往下走,在/run/udev/data 有了发现,命名规则和之前看到的文件名相同。
在目录下很容易找到之前的文件名,来cat下看看。
再看看下张图片有点什么。
从图中的第一行,可以看出N tag后的名字发生了变化,这里列出了一大堆的数据信息。
先不管这些数据有什么作用,一步步地跟踪,得到了许多有用的数据,去系统日志看看。
在系统日志中,之记录的设备加载的时间等等系统,并没有我们之前看到的系统,分析到这里,你会觉得奇怪, 文章的小标题不是取证吗?过程去哪里呢?
别急, 我们把设备先从主机上卸载,在慢慢来看数据的变化。
是不是发觉了之前我们看到的数据没有了,系统在卸载设备后调用了函数: unlinkat来删除了目录,什么是unlinkat?
系统下任何删除的文件和文件数据都会保存到磁盘底层中,从《浅谈Linux系统数据恢复》中知道磁盘有个专门为删除数据后,进行保存的区域。
在系统下还有个小小的命令,为:debugfs。为什么我们要在文中提到它呢?
当数据被删除后,会留下inode、block、filename, 一组数据,就可以通过这个command 进行。
可以看到,曾经被删除的文件通过小小的命令进行了显示, 在对服务器安装系统中,进行系统分区,会把一些目录进行独立分区出来,比如:/var、/usr、/boot等等。这是我们就可以通过系统的命令进行查看被删除的文件。
在整篇文章中大量提到PCI相关内容,任何被删除的数据都可以被恢复,这里就不做数据如何恢复的流程,大家可以按照文章所给出的内容,进行操作一次,单独把/run、/sys进行分区,来作为演练。
(全文完)
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫