分区里的inode号是0号和1号的block,ext3上误操作删除的数量

  EXT3文件系统是日前LINUX平台使用最多的文件系统,原起自EXT2,在其基础上到场日志成效(主要改造),EXT3当做广大LINUX系统暗许的文件系统,误操作也不免。最常见的,基于LINUX
EXT3上误删除操作的数据恢复生机就老大首要了。加上现在LINUX平台平时并不是作娱乐,全体来讲,数据较WINDOWS平台重要;相同的时候,基于LINUX平台的数据复苏软件及回复原理方面包车型客车稿子都较WINDOWS少得多。鉴于此,写此著作。

分区里的inode号是0号和1号的block

 

自己相信大家在利用Linux的时候都遇到过误删文件系统数据的图景,不管是和谐误删照旧帮人家回复误删

于今用的可比多的东山再起工具差相当少是ext3grep 、extundelete 那五个

当然本文不是要说那八个工具的运用方法,而是介绍各样分区里的inode号为0或1号的block到底是怎么

 

在使用ext3grep 、extundelete 的时候,基本上都会有这么一个步骤

在Linux下能够经过“ls-id”命令来查阅某分区目录的inode值,能够输入:

[root@localhost /]#ls –id /2 /[root@steven ~]# ls -id /boot2 /boot

 

能够见到,无论是哪个分区,它的inode值都以2,并不是0,亦不是1

再者当你用find命令来索求一下0或1号inode的时候也是怎么也找不到

 find / -inum 0find: `/proc/1461/task/1461/fd/5': No such file or directoryfind: `/proc/1461/task/1461/fdinfo/5': No such file or directoryfind: `/proc/1461/fd/5': No such file or directoryfind: `/proc/1461/fdinfo/5': No such file or directory

那么inode为0或1的block去何地了?

 

 

boot sector 与 superblock
的关系

block 为 1024 bytes (1K) 时:

如若 block 大小刚好是 1024 的话,那么 boot sector 与 superblock
各会占用掉三个 block , 也代表boot sector 是独自于 superblock 外面包车型客车。

[root@www ~]# dumpe2fs /dev/hdc1dumpe2fs 1.39 (29-May-2006)Filesystem volume name: /boot....(中间省略)....First block: 1Block size: 1024....(中间省略)....Group 0: (Blocks 1-8192) Primary superblock at 1, Group descriptors at 2-2 Reserved GDT blocks at 3-258 Block bitmap at 259 (+258), Inode bitmap at 260 (+259) Inode table at 261-511 (+260) 511 free blocks, 1991 free inodes, 2 directories Free blocks: 5619-6129 Free inodes: 18-2008

拜见最后一个非常字体的地点呢? Group0 的 superblock 是由 1  号 block
开始的

地点结果能够窥见 0 号 block 是保存下去留给 boot sector 用的

图片 1

 

block 大于 1024 bytes (2K, 4K) 时:

如果 block 大于 1024 的话,那么 superblock 将会在 0 号!

[root@www ~]# dumpe2fs /dev/hdc2dumpe2fs 1.39 (29-May-2006)....(中间省略)....Filesystem volume name: /1 ....(中间省略)....Block size: 4096....(中间省略)....Group 0: (Blocks 0-32767) Primary superblock at 0, Group descriptors at 1-1Reserved GDT blocks at 2-626Block bitmap at 627 (+627), Inode bitmap at 628 (+628)Inode table at 629-1641 (+629)0 free blocks, 32405 free inodes, 2 directoriesFree blocks:Free inodes: 12-32416

可以窥见 superblock 就在率先个 block (第 0 号) 上,不过 superblock
其实就唯有 1024bytes 

为了怕浪费越来越多空间,因而首先个 block 内就含有 boot sector 与 superblock

地点结果展现,因为各类 block 据有 4K ,可是 superblock 其实就只有1024bytes

所以在第多少个 block 内 superblock 只占领 1024-2047 ( 由 0 号起算的话),而
0-1023 就封存给 boot sector 来使用。

而背后的2048bytes 的半空中保留

图片 2

 

 

现行反革命也亮堂了为什麽df命令那麽快了啊,它是读取各类分区inode为0的superblock里面的新闻,

而superblock里面就保存了分区文件系统类型、大小、已选拔大小、可用大小

图片 3

 

 

 

 

咱俩得以选用tune2fs命令查看某一分区的块大小等新闻

tune2fs -l /dev/sdb1tune2fs 1.41.12 (17-May-2010)Filesystem volume name: <none>Last mounted on: <not available>Filesystem UUID: 4814e6f2-6550-4ac5-bf2d-33109fc53061Filesystem magic number: 0xEF53Filesystem revision #: 1 (dynamic)Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isizeFilesystem flags: signed_directory_hash Default mount options: (none)Filesystem state: cleanErrors behavior: ContinueFilesystem OS type: LinuxInode count: 65280Block count: 261048Reserved block count: 13052Free blocks: 252525Free inodes: 65269First block: 0Block size: 4096Fragment size: 4096Reserved GDT blocks: 63Blocks per group: 32768Fragments per group: 32768Inodes per group: 8160Inode blocks per group: 510Flex block group size: 16Filesystem created: Thu Jun 2 12:23:23 2016Last mount time: Thu Jun 2 12:24:06 2016Last write time: Thu Jun 2 12:24:06 2016Mount count: 1Maximum mount count: 20Last checked: Thu Jun 2 12:23:23 2016Check interval: 15552000 (6 months)Next check after: Tue Nov 29 12:23:23 2016Lifetime writes: 32 MBReserved blocks uid: 0 (user root)Reserved blocks gid: 0 (group root)First inode: 11Inode size: 256Required extra isize: 28Desired extra isize: 28Journal inode: 8Default directory hash: half_md4Directory Hash Seed: fad5ad24-52ef-482c-a54b-367a5bb4f122Journal backup: inode blocks

 

透过地方的音信就足以知晓superblock是在block 0依旧block 1

那么地方的音信又是从何地读抽出来的

答案是:还是superblock

 

superblock如此首要,所以系统也对superblock做了有的爱惜措施

文件系统会有部分备用拔尖块,备用一流块平时创立于块 8193、16384 或 32768

ext类文件系统会把block分成一组一组来治本简称为块组,能够见到Blocks per
group这一行,就是各种group都含有了32766个block

各样group都会有二个备用superblock,所以备用超级块日常创制于块
8193、16384 或 32768,根据格式化时的block size而定

tune2fs -l /dev/sda4 |grep group
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Reserved blocks gid: 0 (group root)

 

 

在意:非ext类文件系统是不能够用tune2fs命令的,何况原理和里面格式跟ext类文件系统不同!!

tune2fs -l /dev/sdb1tune2fs 1.41.12 (17-May-2010)tune2fs: Bad magic number in super-block while trying to open /dev/sdb1Couldn't find valid filesystem superblock.

 

 

参谋资料:

EXT4是Linux kernel 自 2.6.28
初始正式支持的新的文件系统,近年来已经分布应用在新发行的LINUX版本中。移动终端方面包车型地铁Android私下认可系统分区也已成为EXT4。随着LINUX系统的不断更新,相信EXT4将便捷取代EXT3,成为下一代LINUX上的规范文件系统。
比较EXT3来说,EXT4最大的转移是文件系统的空间分配形式。暗中认可情状下,EXT4不再使用EXT3的block
mapping分配格局,而改为Extent情势分配。从业内的数据恢复生机理论看,基于block
mapping的EXT3在数据删除后就很难复苏,借使基于Extent,可参照的音信就更加少,怎么样有效的复苏EXT4误删除的数码,是个公认的技艺难点。
多年来,笔者集团由此持续地品尝和考订,终于完结了对EXT4数量误删除复苏的本事攻关,产生了一套完整的技术应用方案,并成功开垦出了基于EXT4的正儿八经数据恢复系统。
上面为北亚数据恢复生机大旨对EXT4误删除数据的回复方案简要介绍。
1、关于EXT4的结构特征:
EXT4在完全布局上与EXT3貌似,大的抽成方向都以依照同样大小的块组,种种块组内分配一定数量的INODE,也许的一流块(或备份),及大概的块组描述表。
EXT4的INODE
结构做了首要改动,为扩张新的音信,大小由EXT3的128字节增添到暗中认可的256字节,同期块索引不再使用EXT3的12直接块+1个1次直接块+1个2次直接块+1个3次间接块的目录形式,而改为4个Extent片断流,每一个片断流设定片断的初始块号及连接的块数量(有非常的大只怕直接针对数据区,也会有非常大或者指向索引块区)。
2、EXT4删减数据的布局改动:
EXT4剔除数据后,会相继释放文件系统bitmap空间位、更新目录结构、释放inode空间位。而INODE空间的放飞不像WINDOWS
NTFS或FAT同样保留数据的方方面面或局部索引,五个更干净的操作是直接铲除全体节点中的索引项。
清除了文件的存款和储蓄索引,意味着就是能够拿走文件的称号、日期等元新闻,也无从直接明白文书原来存款和储蓄在怎么岗位,而基于Extent的积累方式更紧凑,删除之后,很难保障能够很轻巧还原原先的仓储索引。

 

块组是block group
block group包蕴备用super block,inode,block group description

INODE
结构做了重在变动,为扩张新的消息,大小由EXT3的128字节扩展到暗中同意的256字节
Inode size:              256 byte

EXT4删减数据后,会挨个释放文件系统bitmap空间位
Block bitmap at 259 (+25, Inode bitmap at 260 (+259)

 

如上内容针对于ext类文件系统,不对的地方迎接拍砖

部分参考了鸟哥作品:

  EXT3文件系统原理方面包车型地铁稿子相当多,同临时候丰硕LINUX的开源性及EXT3自己的简洁性,平常掌握EXT3文件系统并非难点。作为误删除,我们须求领悟文件的积累结构与删除所做的实操。

相关文章

Comment ()
评论是一种美德,说点什么吧,否则我会恨你的。。。