ext2文件系统删除后的恢复

合集下载

一种基于linux文件系统的数据恢复方法

一种基于linux文件系统的数据恢复方法

一种基于linux文件系统的数据恢复方法标题:一种基于Linux文件系统的数据恢复方法在现代信息技术环境中,数据安全与数据恢复的重要性不言而喻。

Linux 作为一种广泛应用的操作系统,其稳定性和安全性备受赞誉,但即使是Linux系统,也无法完全避免因误操作、系统崩溃、硬件故障等原因导致的数据丢失问题。

本文将详细介绍一种基于Linux文件系统的数据恢复方法,帮助用户在面临数据丢失困境时能够有效找回重要信息。

【一、理解Linux文件系统】首先,理解Linux文件系统的工作原理是进行数据恢复的前提。

Linux系统主要采用EXT2、EXT3、EXT4、XFS、Btrfs等文件系统,它们负责管理存储设备上的数据和元数据,包括inode(索引节点)、超级块、目录项等关键部分。

当数据丢失时,通过分析这些元数据,我们可以定位到文件的存储位置以及文件的状态信息。

【二、数据丢失场景及应对策略】1. 误删除:当文件被误删除时,实际上只是从目录项中移除了对该文件的引用,而文件内容可能并未立即被覆盖。

可以使用诸如TestDisk或extundelete这类工具尝试恢复已删除文件。

2. 分区表损坏:若分区表出现问题,可通过TestDisk扫描硬盘并重建分区表以找回丢失的分区及其数据。

3. 文件系统损坏:如遇到文件系统损坏的情况,可先尝试fsck工具进行修复,对于严重损坏的文件系统,可能需要使用photorec等深度扫描工具根据文件签名来恢复数据。

【三、数据恢复步骤详解1. 创建备份:在对受损文件系统进行任何操作之前,首要任务是确保原始数据的安全,通过dd命令或者其他备份工具,将待恢复数据所在的整个分区制作成镜像文件。

2. 检测与修复文件系统:运行`fsck /dev/sdaX`(其中sdaX代表受损分区)进行文件系统的初步检查和修复。

3. 使用数据恢复工具:- 对于误删除文件,可以尝试使用extundelete工具,例如:`extundelete /dev/sda1 restore-file /path/to/deleted/file` - 针对分区丢失,利用TestDisk执行“Analyze”和“Quick Search”等功能搜索丢失分区并尝试恢复。

euleros 格式化磁盘指令

euleros 格式化磁盘指令

euleros格式化磁盘指令在计算机系统中,磁盘是存储数据的重要设备之一。

磁盘的格式化是指对磁盘进行初始化,以便于存储数据和使用操作系统。

euleros是一个流行的操作系统,它提供了一系列的格式化磁盘指令,帮助用户对磁盘进行管理和维护。

本文将介绍euleros的格式化磁盘指令,帮助读者了解如何使用这些指令来管理磁盘。

一、查看磁盘信息在进行磁盘格式化之前,首先需要了解磁盘的相关信息。

euleros提供了一些命令来帮助用户查看磁盘的信息,包括磁盘的大小、分区信息等。

用户可以使用以下命令来查看磁盘信息:1. fdisk -l:这个命令可以列出系统中所有的磁盘信息,包括磁盘的名称、大小、分区情况等。

用户可以通过这个命令来了解系统中磁盘的整体情况。

2. df -h:这个命令可以列出系统中已挂载的文件系统的信息,包括文件系统的大小、已用空间、可用空间等。

用户可以通过这个命令来了解系统中已挂载的文件系统的情况。

二、格式化磁盘当用户了解了磁盘的相关信息之后,就可以对磁盘进行格式化操作了。

euleros提供了一些命令来帮助用户对磁盘进行格式化,包括创建文件系统、设置文件系统的参数等。

用户可以使用以下命令来格式化磁盘:1. mkfs.ext4:这个命令可以创建ext4文件系统,用户可以将其用于磁盘的格式化操作。

用户可以通过指定参数来设置文件系统的相关属性,比如inode大小、块大小等。

2. mkfs.xfs:这个命令可以创建xfs文件系统,用户可以将其用于磁盘的格式化操作。

用户可以通过指定参数来设置文件系统的相关属性,比如inode大小、块大小等。

三、挂载磁盘在格式化磁盘之后,用户还需要将其挂载到系统中,以便系统可以对其进行读写操作。

euleros提供了一些命令来帮助用户挂载磁盘,包括挂载点的设置、挂载参数的设置等。

用户可以使用以下命令来挂载磁盘:1. mount:这个命令可以将格式化好的磁盘挂载到指定的挂载点上。

蓝梦科技数据恢复技术

蓝梦科技数据恢复技术

FAT/NTFS/exFAT文件系统数据恢 复
FAT/NTFS/exFAT 是Windows下的文件系统, 按理说是比较容易的,但是看完NTFS文件 系统以后,觉得微软的设计也不是那么简 单。 NTFS文件系统已经完成了研究工作。这些恢 复是数据恢复的基础,必须得弄清楚。 FAT 与 exFAT 恢复技术类似,几乎都是通过 FAT表和目录区进行恢复
手机数据恢复
当前恐怕已经是每人好几个手机的年代了,
误删除,刷机,初始化等造成文件丢失的 情况太多了。技术难点也许就是如何让我 们的电脑能识别到手机存储设备和提取通 讯录/短信箱中信息了。蓝梦科技研发了 BestRecoverForPhone解决了此类问题。
监控数据恢复
监控录像运用的场所太多了。但是此类设
Oracle数据文件提取恢复技术
数据恢复最有意思的恢复方法,恐怕就是
Oracle 数据文件的提取技术了。这种恢复 技术将数据恢复技术发挥到了极致。比如 说:在JFS、UFS、VxFS等文件系统下删 除文件,特别是多个大的文件,理论上是 不可能恢复的。但是如果你删除的是oracle 数据文件,那就是有可能恢复。这是因为 oracle 数据文件本身特征很明显,弄清楚 oracle数据文件结构,整个卷扫描,就能提
MAC HFS/HFS+文件系统数据恢复
苹果系统MAC采用HFS/HFS+/HFSX 文件系 统,蓝梦科技花费了不少精力去读懂这个 比较复杂的文件系统,最后实现了数据恢 复方法。它采用的是B+Tree的方式存储文 件,结构非常复杂,恢复技术难度系数高。 可以用BestRecoveryForMac来进行数据恢复。
目前蓝梦科技的 RAID 功能可以涵括所有的 阵列组合方式,如RAID0、RAID1、 RAID5、RAID10、ADG、RAID6、 RAID5E 、 RAID5EE 、 JBOD 、HP 双循环 等组合方式。

linux数据恢复

linux数据恢复

linux数据恢复Linux数据恢复引言在日常使用计算机过程中,数据丢失是一个常见的问题,可能是由于误操作、病毒感染、文件系统损坏等原因导致。

针对这些问题,我们需要一种可靠的数据恢复方法来帮助我们找回丢失的数据。

Linux作为一种开源操作系统,其数据恢复工具的丰富性和强大性使其成为很多人首选的操作系统。

本文将介绍在Linux系统下进行数据恢复的常见方法和工具,帮助用户快速恢复数据。

一、文件恢复方法1. 备份恢复在进行任何文件恢复操作之前,我们强烈建议首先查看您的备份,并尝试从备份中恢复丢失的数据。

如果您定期备份您的数据,您可以轻松地恢复丢失的文件。

备份通常可以通过使用备份工具,如rsync,tar等实现。

备份恢复是一种非常有效的数据恢复方法,因为它可以准确地恢复您需要的文件,而不会丢失任何数据。

2. 使用恢复工具如果没有备份,还有其他方法可以尝试恢复丢失的数据。

Linux系统提供了一些强大的数据恢复工具,可以帮助您找回已删除、格式化或损坏的文件。

以下是一些常用的数据恢复工具:- TestDisk:TestDisk是一个免费的开源工具,可以帮助您恢复丢失的分区和修复损坏的引导扇区。

它支持多个文件系统,包括FAT、NTFS、ext2/ext3/ext4等。

- PhotoRec:PhotoRec是TestDisk的一部分,它专门用于恢复丢失的文件。

它可以从格式化的硬盘、临时分区、CD-ROM等设备中恢复各种类型的文件。

- Scalpel:Scalpel是一种高效的文件恢复工具,它可以通过扫描二进制文件内容来恢复已删除的文件。

它支持各种文件系统,并可以通过配置文件来进行高级恢复操作。

- extundelete:如果您使用的是ext2/ext3/ext4文件系统,并且需要恢复已删除的文件,extundelete是一个非常有用的工具。

它可以查找并还原被删除文件的inode,并将其恢复到原来的位置。

这些工具都支持命令行操作,并且有详细的文档和示例,您可以根据需要选择合适的工具使用。

Linux系统ext2与ext3文件系统的区别与转换

Linux系统ext2与ext3文件系统的区别与转换
ext2与ext3文件系统的区别与转换
ext2和ext3是Linux比较旧的文件系统, 在Linux 7中支持的文件系统已经是 “xfs”,但是为了知识的衔接性,也为 了更深的认识文件系统之间的差别有必 要认识一下这两个文件系统。 这两个文件系统的格式是相同的,不 同的是在ext3文件系统中在硬盘的后面 留出一块磁盘空间来存放日志(journal) 记录。
全部消失。 如果你接手一个很重要的Linux系统, 而这个Linux系统的文件系统还是很老的 ext2,而为了提高性能还要保留原来的 数据就只能使用命令tune2fs命令(在线 转换文件系统ext2→ext3)了。
除了使用“-j”选项创建ext3文件系 统之外,可以直接使用mkfs.ext3 设备名
在开机时Linux系统都会检查每个文件 系统的Valid bit,值如为1则直接挂载该 文件系统,而如果为0值,则系统会扫描 这个文件系统(硬盘分区)查找损坏的 数据,如果这个硬盘分区很大,扫描时 间会很长。 1扫描
0不扫描 由于ext3文件系统有日志机制,开机 时系统会先检查日志中的信息,检查日
创建ext3文件系统。
journal=”日志”
使用命令dumpe2fs /dev/sdc1 | more 可以看到成功创建ext3文件系统。
二、在ext3格式文件系统上,数据写 入硬盘的操作过程为: ⑴数据同样先写 入缓冲区 ① ⑵当数据写入 缓冲区 (内存) 缓冲区满时,先通知 ③ 日志 ext3 文件 ⑶通知日志之后 ② ④ 系统 数据才会写入硬盘中 日志 ⑷数据写入硬盘后,系统 再通知日志数据已经写入硬盘。
三、日志机制 在ext2和ext3中,文件系统的格式是 一样的,不一样的地方是ext2没有日志 机制,而ext3有日志机制。 对于ext2,由于它没有日志机制,在 Linux使用Valid bit标志位来记录系统在 关机之前该文件系统是否已经卸载。因 每一个文件系统都有一个自己的Valid bit 。并且,Valid bit的值为1,则表示这个 文件系统已经卸载,而其值为0,则表示 这个文件系统没有正常关机。

电脑重装系统后怎么恢复原来的文件方法

电脑重装系统后怎么恢复原来的文件方法

电脑重装系统后怎么恢复原来的文件方法电脑重装系统后怎么恢复原来的文件?计算机文件(或称文件、电脑档案、档案),是存储在某种长期储存设备上的一段数据流。

所谓“长期储存设备”一般指磁盘、光盘、磁带等。

其特点是所存信息可以长期、多次使用,不会因为断电而消失。

下面就由店铺来给大家说说电脑重装系统后怎么恢复原来的文件吧,欢迎大家前来阅读!电脑重装系统后恢复原来的文件方法建议你使用DiskGenius软件来恢复你失去的文件。

DiskGenius 是一个硬盘分区、数据恢复软件,操作界面完全图形化,非常直观,一看就会,操作简便。

你到网上通过搜索“DiskGenius”就可以找到下载地址。

运行DiskGenius程序,打开程序窗口,你会看到硬盘的分区情况,主分区和逻辑分区一目了然。

你选中要恢复文件的分区,点击工具栏上的“恢复文件”按钮,即可将文件恢复到其他盘。

下面店铺就给大家介绍下什么是DiskGenius吧。

DiskGeniusDiskGenius是一款硬盘分区及数据恢复软件。

它是在最初的DOS 版的基础上开发而成的。

Windows版本的DiskGenius软件,除了继承并增强了DOS版的大部分功能外(少部分没有实现的功能将会陆续加入),还增加了许多新的功能。

如:已删除文件恢复、分区复制、分区备份、硬盘复制等功能。

另外还增加了对VMWare、Virtual PC、VirtualBox虚拟硬盘的支持。

更多功能正在制作并在不断完善中。

功能介绍DiskGenius软件的主要功能及特点如下:1、支持传统的MBR分区表格式及较新的GUID分区表格式。

2、支持基本的分区建立、删除、隐藏等操作。

可指定详细的分区参数;3、支持IDE、SCSI、SATA等各种类型的硬盘。

支持U盘、USB 硬盘、存储卡(闪存卡);4、支持FAT12、FAT16、FAT32、NTFS文件系统;5、支持EXT2/EXT3文件系统的文件读取操作。

支持Linux LVM2磁盘管理方式;6、可以快速格式化FAT12、FAT16、FAT32、NTFS分区。

恢复linuxext4分区上误删除的文件。

恢复linuxext4分区上误删除的文件。

恢复linuxext4分区上误删除的⽂件。

我是使⽤ Xmanager Enterprise 4 来连接CentOS Linux 6.4 的。

可恶的XManager有⼀个恶⼼的bug,时不时的出现焦点问题:2012年10⽉15⽇星期⼀,14:44:01==============================================温馨提⽰: Xmanager有个⽑病就是时不时的出现窗⼝之间焦点的切换必须点击菜单栏上⾯的 title 才可以,⽽且不能⽤alt拖动窗⼝了.有时⼜可以..解决⽅法:打开后,按住 win+D 再win+D焦点的切换就会发⽣变化了...可以点击内容切换⽽且,也可以使⽤alt 移动窗⼝了....2013年5⽉25⽇今天,14:09:40==============================================键盘上按p键也会失效。

需要win+D 多次才会解决这个问题不知道有⼈遇到过这个问题没,使⽤ XMing 来连接xdmcp 倒是没问题,⽽且xmanager⽆法hook快捷键,⽤起来快捷键使⽤起来不⽅便,这个就不说了,但是上⾯的我确认是⼀个 BUG。

很恶⼼。

这次我要删除⼀个桌⾯的⽂件,点击后,shift+del 回车,快速删除,⼀看⽂件,没删除,难道。

看看另⼀个nautilus 窗⼝,正在浏览⾃⼰的ftp服务,缺少了⼀个⽂件夹,我勒个去啊。

如果是ntfs分区,windows下的,我可以diskgenius + winhex 速度恢复⽂件。

但是ext4分区下,我真没⼲过这种事情啊。

搜索⼀下,/Qunero/blog/8607今天⼀时⼿快 rm -rf .* ,删除了⼀个重要邮件⽬录,幸好通过extundelete恢复了。

记下操作流程:1.准备⼯作主要通过 extundelete 0.2.0完成恢复https:///projects/extundelete/files/latest/download需要依赖两个包sudo aptitude install e2fsprogs e2fslibs-dev下载页⾯/快速下载: download extundelete编译三部曲./configuremakesudo make install2.如果分区已经挂载,先umount,并且在将要恢复的地⽅查看空间⼤⼩df -h ./如果你要恢复的是根⽬录或者系统⽬录就只有拿硬盘挂到另外⼀台电脑上操作了。

D-Recovery For Linux Manual达思Linux系统数据恢复软件使用说明书

D-Recovery For Linux Manual达思Linux系统数据恢复软件使用说明书

达思Linuxs数据恢复软件说明文档达思凯瑞技术(北京)有限公司2010-9-20D-Recovery for Linux使用说明目录1、D-Recovery for Linux介绍___________________________________ 31.1 分区表损坏_____________________________________________________ 3 1.2 删除文件_______________________________________________________ 3 1.3 高级格式化_____________________________________________________ 3 1.4 文件系统损坏____________________________________________________ 32、D-Recovery for Linux安装___________________________________ 32.1 安装环境要求____________________________________________________ 3 2.2 软件获取方式____________________________________________________ 4 2.3软件安装步骤___________________________________________________ 43、D-Recovery for Linux分区表恢复_____________________________ 83.1 分区表备份_____________________________________________________ 8 3.2 分区表恢复_____________________________________________________ 9 3.3 分区表重建____________________________________________________ 104、D-Recovery for Linux数据恢复_______________________________124.1 删除数据恢复___________________________________________________ 124.1.1 Ext2文件系统删除恢复 _________________________________________________ 124.1.2 Ext3,Ext4文件系统删除恢复_____________________________________________ 14 4.2 格式化数据恢复 _________________________________________________ 174.2.1 Ext2文件系统格式化或目录损坏恢复_____________________________________ 174.2.2 Ext3,Ext4文件系统格式化或目录损坏恢复_________________________________ 20 4.3 文件系统损坏数据恢复___________________________________________ 234.3.1 全盘扫描 ____________________________________________________________ 235、D-Recovery for Linux存储介质镜像 ___________________________265.1 创建磁盘镜像,打开磁盘镜像,关闭磁盘镜像 _________________________ 266、D-Recovery for Linux创建区域_______________________________316.1 创建区域______________________________________________________ 317、D-Recovery for Linux手动提取文件 ___________________________317.1 手动提取文件三种方式___________________________________________ 338、D-Recovery for Linux Lvm(逻辑卷管理)跨盘管理 _______________31 8.1 物理磁盘,镜像文件,物理盘分区,镜像文件分区的任意组合 ____________ 331、D-Recovery for Linux介绍D-Recovery for Linux是由达思凯瑞技术(北京)有限公司自主研发的一款数据恢复软件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ext2文件系统下数据进行数据恢复摘要ext2文件系统下数据进行数据恢复---------------------------------------------------------------------本系的 BBS 系统真是多灾多难 (嗯 .... 其实是因为我的疏忽,才会这么多灾多难 ....) ,继这几日系统时间不正确,造成许多人的 ID 被误砍后,又一次因系统设定上的问题,将 BBS 的重要备份档给杀了。

这件事是学弟发现后告诉我的,当我上站来一见到他的mail, 当真是欲哭无泪,差点没去撞墙。

那时已是周六晚 11:00 左右,我一边想着要编一套说辞向大家解释无法替大家进行数据恢复旧信件与设定了,一边还在想是否能够挽回局面。

大家知道, UNIX like 的系统是很难像 M$ 的系统一样,做到 undelete 的,所有网管前辈都曾再三警告我们,要小心! 小心! 砍档之前三思而后行,砍了之后再后悔也没用。

虽然我已渐渐做到砍档三思而后行,但之次误砍事件是系统在背景中定时执行的,等到我找出原因时已是数据被砍后一个多小时。

我凭着一点点的印象,想起在网络上,有人讨论过在 Linux ext2 filesystem中 undelete 的可能性,但我所见到的多半是负面的答案,但好象真的有人做过这件事,于是我第一个所做的,就是马上将该数据原来所在的 partition mount成 read-only, 禁止任何的写入动作,不是怕再有数据被误砍 (因为已没什么可砍的了) ,而是怕有新数据写进来,新资料可能会覆盖到旧资料原本存在的磁区 (block) 。

我们现在唯一个指望,就是企图将数据原来存在的磁区一个个找回来,并且「希望」这些磁区上的旧资料都还在,然后将这些磁区串成一个数据。

终于被我找到了!! 原来这方面的技术文件就存在我自己的系统中 :-))/usr/doc/HOWTO/mini/Ext2fs-Undeletion.gz于是我就按照这份文件的指示一步步来,总算将一个长达 8MB 的压缩档数据恢复了 99%, 还有一个长达 1.1 MB 的压缩档完整无缺地救了回来。

感谢上帝、 Linux 的设计者、写那篇文件的作者、曾经讨论过此技术的人、以及 Linux 如此优秀的 ext2 filesystem, 让我有机会抢救过去。

现在,我将我的抢救步骤做一个整理让大家参考,希望有派得上用场的时候 (喔! 不,最好是希望大家永远不要有机会用到以下的步数 :-)))在此严正声明!! 写这篇文章的目的,是给那些处于万不得已情况下的人们,有一个挽回的机会,并不意味着从此我们就可以大意,砍档不需要三思。

前面提到,我有一个数据无法100% 救回,事实上,长达 8MB 的数据能救回 99% 已是幸运中的幸运,一般的情况下若能救回 70% - 80% 已经要愉笑了。

所以,不要指望 undelete 能救回一切。

预防胜于治疗! 请大家平时就养成好习惯,砍档前请三思!!!理论分析我们能救回的机会有多大? 在kernel-2.0.X 系列中(本站所用的kernel 是2.0.33) ,取决以下两点:数据原来所在的磁区是否没有被覆写?数据是否完全连续?第一点我们可以与时间竞赛数据恢复,就是当一发现数据误砍时,要以最快的速度umount 该 filesystem, 或将该 filesystem remount 成唯读。

就这次的情况而言,数据误砍是在事发一个小时后才发现的,但由于该 filesystem 写入的机会很少 (我几乎可确定一天才只有一次,做 backup),所以第一点算是过关了。

第二点真的是数据恢复要听天由命了,就本站所使用的 kernel, 必须要在假设「长数据」所占的 block 完全连续的情况下,才有可能完全救回来! 一个 block 是 1024 bytes,长达8 MB 的数据就有超过 8000 个 block。

在经常读写的 filesystem 中,可以想见长数据很难完全连续,但在我们的系统中,这一点似乎又多了几分指望。

同时,Linux ext2 如此精良的filesystem, 能做到前 7950 多个 block 都连续,这一点也功不可没。

好了,以下我就讲一下我的步骤。

数据恢复,抢救步骤 I - mount filesystem readonly该数据的位置原来是在 /var/hda/backup/home/bbs 下,我们系统的 filesystem 组态是:root@bbs:/home/ftp/rescue# dfFilesystem 1024-blocks Used Available Capacity Mounted on/dev/sda1 396500 312769 63250 83% //dev/sda3 777410 537633 199615 73% /home/dev/hda1 199047 36927 151840 20% /var/hda/dev/hda2 1029023 490998 485710 50% /home/ftp因此 /var/hda 这个 filesystem 要马上 mount 成 readonly (以下请用 root 身份):mount -o remount,ro /var/hda当然也可以直接 umount 它,但有时候可能有某些 process 正在此 filesystem下运作,您可能无法直接 umount 它。

因此我选择 mount readonly。

但您也可以用:fuser -v -m /usr看一下目前是那些 process 在用这个 filesystem, 然后一一砍掉,再 umount。

数据恢复,抢救步骤 II执行echo lsdel | debugfs /dev/hda1 | less看一下该 filesystem 最近被砍的 inode (数据) 有那些 (为什么是 /dev/hda1? 请见上头的 df 列表)? 在这奶F数据的重要资讯,如大小、时间、属性等等。

就我们的系统而言,其列示如下:debugfs: 92 deleted inodes found.Inode Owner Mode Size Blocks Time deleted ....................................................................29771 0 100644 1255337 14/14 Sat Jan 30 22:37:10 199929772 0 100644 5161017 14/14 Sat Jan 30 22:37:10 199929773 0 100644 8220922 14/14 Sat Jan 30 22:37:10 199929774 0 100644 5431 6/6 Sat Jan 30 22:37:10 1999请注意!我们必须要在数据大小、被砍时间等资讯中判断出要救回的数据是那一个。

在此,我们要救回 29773 这个 inode。

数据恢复,抢救步骤 III执行echo "stat <29773>" | debugfs /dev/hda1列出该 inode 的所有资讯,如下:debugfs: stat <29773>Inode: 29773 Type: regular Mode: 0644 Flags: 0x0 Version: 1User: 0 Group: 0 Size: 8220922File ACL: 0 Directory ACL: 0Links: 0 Blockcount: 16124Fragment: Address: 0 Number: 0 Size: 0ctime: 0x36b31916 -- Sat Jan 30 22:37:10 1999atime: 0x36aebee4 -- Wed Jan 27 15:23:16 1999mtime: 0x36adec25 -- Wed Jan 27 00:24:05 1999dtime: 0x36b31916 -- Sat Jan 30 22:37:10 1999BLOCKS:123134 123136 123137 123138 123140 131404 131405 131406131407 131408 131409 131 410 131411 131668TOTAL: 14现在的重点是,数据恢复必须将该 inode 所指的数据,所指的 block 全部找回来。

在这它?14 个 block? 不对啊! 应该要有 8000 多个 block 才对啊! 在这卯ilesystem 的「奥密」了。

上头所列的前 12 个 block 是真正指到数据资料的 block, 称之为 direct block 。

第 13 个称为第一阶 indirect block, 第 14 个称为第二阶 indirect block 。

什么意思? 该档的资料所在的 block 位置如下:各位明白吗? 第 13 个 (131411) 与第 14 个 block 其实不是 data, 而是 index,它指出接下来的 block 的位置。

由于一个 block 的大小是 1024 bytes, 一个 int 在 32 位系统中是 4 bytes, 故一个 block 可以记录 256 笔资料。

以 131411 block 为例,它所记录的资料即为 (在数据未砍前):131412 131413 131414 .... 131667 (共 256 笔)而这 256 个 block 就真正记录了数据资料,所以我们称为第一阶。

同理,第二阶就有两个层 index, 以 131668 来说,它可能记录了:131669 131926 132182 .... (最多有 256 笔)而 131669 的 block 记录为:131670 131671 131672 .... 131925 (共 256 笔)而这 256 个 block 才是真正储存数据资料的。

而我们要的,就是这些真正储存数据资料的 block 。

理论上,我们只要将这些 index block 的内容全部读出来,然后照这些 index把所有的 block 全部读到手,就能 100% 数据恢复 (假设这些 block 全部没有被新数据覆写的话)。

工程很大,但是可行。

不幸的是,在 kernel-2.0.33, 其设计是,如果该数据被砍了,则这些 index block 全部会规零,因此我所读到的是0 0 0 0 0 ..... (共 256 笔)哇! 没办法知道这些 data block 真正所在的位置。

相关文档
最新文档