Skip to Content

LINUX下使用JFS文件系统,虚拟机恢复快照,数据恢复有可能

不久前做过一起数据恢复案例:

基本存储架构是:

VMware ESX Server安装在Dell服务器上,在ESX Server上划分了一个270GB大分区,采用JFS文件系统对大分区进行格式化,然后把虚拟机文件存放在这个JFS文件系统上的大分区上。用户安装了一个windows2003虚拟机操作系统,由于操作失误,还原了虚拟机快照,导致windows2003进入系统以后D盘是空的, 虚拟机下jfs文件系统下的vmdk文件大小变小,原先应该有260多GB,现在只有1GB左右,导致了数据丢失。

客户发现数据丢失后操所:

客户发现数据丢失以后,没有进行过别的操作,保护好现场环境,这对于以后数据恢复工作提供了相当有利的保障。如果知道数据丢失以后,还往丢失数据的分区上写入新的数据,那将导致不可预料的后果,比如数据覆盖之类的致命破坏。

基本处理:

接到用户的一个300GB 的SCSI硬盘,我们对硬盘进行全盘镜像,确保原始硬盘不造成第二次损坏。

数据恢复分析:

JFS 文件系统最先是在UNIX文件系统下使用,比如IBM 的AIX 文件系统,后来被一些LINUX爱好者移植到LINUX下使用。在JFS文件系统下,如果对文件进行删除操作,Inode指针信息会被清空的,没有预留反删除的功能。本案例是由于恢复虚拟机快照,导致vmdk虚拟机磁盘文件大小变小,而文件本身并没有消失或者丢失。经过分析vmdk文件头部特征,找出原始文件(大小260GB)的头部,确定原始文件头部并没有被破坏,这是数据恢复往下操作有利的一步。

经过对JFS文件系统所有Inode信息的分析,发现原始文件的Inode信息还在,没有被清空,只是被系统释放成空闲inode的可用状态,找到inode,文件就会轻而易起的恢复出来,当然需要对JFS文件系统底层结构精通了解才能做到。

本案例的结论是:

虚拟机恢复快照时,原始文件的inode信息并没有被清空,只是标记成空闲Inode,恢复成的快照目标,原本在文件系统上应该是已经存在的inode 信息。这种情况跟同名文件覆盖的理论概念是不一样的,同名文件覆盖,很可能破坏原始文件头部信息,而快照恢复只是确定使用哪个时期的vmdk文件,并没有在原始文件信息进行改动,所以就预留出可以恢复的可能。

http://www.uplookingsh.com

发表新评论

  • 你可以在文本中使用BBCode标记语言。 URL会自动被转为链接。

更多关於格式化选项的信息

CAPTCHA
请验证您是否是机器人。
Image CAPTCHA
Enter the characters shown in the image.