`
音频数据
  • 浏览: 36769 次
文章分类
社区版块
存档分类
最新评论

ext2文件系统

阅读更多

Ext2设计思想:

 

Ext2 features

 

1, 支持4TB大文件。

2, 支持255字符的文件名,并可扩展到1012字节。

3, 为root用户预留一些块。

Advanced ext2 features

 

1, 支持多种块大小,1024,2048,4096.

2, 快速的符号链接实现(小于60个字符的连接名时不需要额外分配块)。

3, 追踪文件系统状态,是否为dirty,是否一致等,设置最大检查间隔,最大挂载计数等

Tune2fs可改变文件系统的参数

 

1, 出错行为。

2, 最大检查间隔。

3, 最大挂载计数。

4, 为超级用户预留块数。

Mount option

 

1, secure deletion,删除文件后,随机内容覆盖原来块的内容。

2, immutable files(Read-only)

3, Append-only

 

Performance optimizations

 

1, readahead buffer-cache management

2, group inode and block management

3, preallocate 8 adjacent blocks

Comparsion with ext3 filesystem

 

1, Availability(各种日志模式)

2, DataIntegrity(保证文件系统一致性,数据正确性的日志模式)

3, Speed(优化的日志写操作,不会带来很大的额外开销)

 

一些细节:

 

1,ext2文件的属性与实际文件数据分开存放,分别存在inode块和数据块中。

2,新建目录时,ext2会给该目录分配一个inode与至少一个块:inode记录目录的属性,并指向分配的那个块,数据块记录目录下相关文件的关联性。

 

3,新建文件时,ext2会给该文件分配至少一个inode与相对文件大小的数据块。

4,块与inode的大小和数量在一开始格式化时就已经确定。

5,一个inode的大小为128KB。

6,块越大,损耗的硬盘空间也越大。

7,inode的数量小于块的数量,大于毫无意义。

8,文件系统组成:超级块 + 块组(n个)

   块组(超级块 + 组描述 + 块位图 + inode位图 + inode表 + 数据块)

   超级块:记录整个文件系统相关信息的地方;

   组描述:记录块组的inode,块数量等信息;

   块位图:记录快是否可用;

  inode位图:记录inode分配情况;

   inode表项:inode的数据存放区;

   数据块:每个块的数据存放区;

   注:使用dumpe2fs 分区 可查看ext2文件系统的详细情形。

 

9,访问文件步骤:

   A: 根据inode位图/块位图的信息,找到对应的inode,进而将文件的属性与数据记录在相应的inode与块中。

   B:将刚刚使用的inode与块的号码告知超级块,inode位图,块位图等以更新这些信息。

 

   当某一访问过程中A发生了,但B未发生,则会造成文件系统的不一致,ext3在ext2的基础上引入日志功能来解决这一问题。

 

10, 日志的记录

     A:当系统要写一个文件时,先在日志记录块中记录,这个文件将要被写入。

     B:开始写入文件的权限与数据。

     C:开始更新元数据的数据。(超级块,inode位图,块位图)

     D,完成BC的更新后,在日志块中完成该文件的记录。

 

     当出错时,只需检查日志块就可以知道那些文件可能存在不一致性,而不需要对整个文件系统进行检查。

 

使用dumpe2fs查看ext2文件系统获得的信息(部分):

 

dumpe2fs 1.35 (28-Feb-2004)

Filesystem volume name:   /

Last mounted on:

Filesystem UUID:          ffb44792-1b52-4f4f-87c9-dd4e6c4f3e7

b

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal ext_attr resize_inode d

ir_index filetype needs_recovery sparse_super large_file

Default mount options:    (none)

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              3842720

Block count:              7679070

Reserved block count:     383953

Free blocks:              6517957

Free inodes:              3681243

First block:              0

Block size:               4096

Fragment size:            4096

Reserved GDT blocks:      1022

Blocks per group:         32768

Fragments per group:      32768

Inodes per group:         16352

Inode blocks per group:   511

Filesystem created:       Tue Jul 31 02:09:18 2007

Last mount time:          Mon Mar 16 09:15:19 2009

Last write time:          Mon Mar 16 09:15:19 2009

Mount count:              27

Maximum mount count:      -1

Last checked:             Tue Jul 31 02:09:18 2007

Check interval:           0 ()

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:          128

Journal inode:            8

Default directory hash:   tea

Directory Hash Seed:      8c08c4c6-0d28-49ba-be38-e109a3fa011

7

Journal backup:           inode blocks

 

Group 0: (Blocks 0-32767)

  Primary superblock at 0, Group descriptors at 1-2

  Block bitmap at 1025 (+1025), Inode bitmap at 1026 (+1026)

  Inode table at 1027-1537 (+1027)

  22031 free blocks, 16340 free inodes, 2 directories

  Free blocks: 10737-32767

  Free inodes: 13-16352

Group 1: (Blocks 32768-65535)

  ......

分享到:
评论

相关推荐

    EXT2文件系统

    EXT2文件系统存取结构详细介绍 EXT2文件系统是 Linux 系统中的标准文件系统,由 Minix 文件系统扩展而来,具有高效的存取性能。在 EXT2 文件系统中,文件由 inode 进行唯一标识,每个文件可能对应多个文件名,只有...

    制作ext2文件系统的方法 .

    它最初是为了解决当时存在的MINIX和EXT文件系统的局限性而设计的,特别是在处理大文件和大量小文件方面。EXT2文件系统在Linux社区中广泛使用,直到后来被EXT3和EXT4等更先进的文件系统所取代。本文将详细介绍如何...

    linux ext2 文件系统模拟 c语言实现

    Linux的EXT2(第二扩展文件系统)是早期广泛使用的文件系统之一,特别是在嵌入式系统和Linux服务器上。EXT2的C语言实现是一项技术性极强的任务,涉及到对操作系统底层机制的理解,包括文件系统的结构、inode、超级块...

    认识ext2文件系统

    它比早期的ext文件系统更为高效和稳定,支持大容量存储设备,是Linux环境下的主流文件系统之一。ext2文件系统的特点包括了对分区进行格式化的操作,格式化会指定一个特定的文件系统,并且一个分区通常只能有一个文件...

    模拟Linux ext2文件系统

    Linux的ext2(第二扩展文件系统)是早期广泛使用的文件系统之一,它的设计简洁,适合小型设备和资源有限的环境。这个C语言实现的工程旨在模拟ext2文件系统,为学习者提供一个直观的平台来理解和研究其工作原理。下面...

    模拟EXT2文件系统.zip

    EXT2,全称为“Extended File System 2”,是Linux操作系统早期广泛使用的日志文件系统之一。这个压缩包“模拟EXT2文件系统.zip”包含了几个关键的源代码文件,如`init.c`、`main.c`、`init.h`和`main.h`,这暗示着...

    Linux内核源代码导读-陈香兰-ext2文件系统

    Linux内核源代码导读-陈香兰-中国科学技术大学-ext2文件系统

    Linux EXT2 文件系统介绍和实例分析

    Linux EXT2 文件系统是Linux操作系统中的一个重要组成部分,它是由Rey Card设计的,旨在为Linux提供一个强大且可扩展的文件系统。EXT2是Linux早期广泛使用的文件系统,它的成功在于其简洁的设计和高效的性能。EXT3...

    Linux下Ext2文件系统的精剪与优化设计.pdf

    本文主要介绍了 Linux 下 Ext2 文件系统的精剪与优化设计,提出了基于 Linux 系统的 Ext2 文件系统的精剪和优化设计,通过精细剪裁和优化设计,构建了一个 Linux 多级用户的 Ext2 二级文件系统,以作 GPS 等专业...

    本科毕业论文(EXT2文件系统的磁盘布局)

    EXT2是EXT文件系统的扩展,而EXT3则是EXT2的扩展,它们在硬盘布局上基本相同,主要区别在于EXT3引入了日志功能以提高文件系统的稳定性和性能。然而,本文主要关注EXT2的磁盘布局,其内容同样适用于EXT3。 在EXT2...

    ext2文件系统 linux 下的文件系统说明

    **EXT2文件系统详解** EXT2,全称是Second Extended File System,是Linux操作系统中最早广泛使用的日志文件系统之一。它由法国程序员Rene Rebeau开发,并于1992年首次引入Linux内核。EXT2在当时是作为EXT...

    ext2文件系统.pdf

    Ext2. The reader should have a good understanding of the purpose of a file system as well as the associated vocabulary (file, directory, partition, etc). Implementing file system drivers is already ...

    ext2 and ext3文件系统

    ### ext2 和 ext3 文件系统详解 #### 一、概述 `ext2` 和 `ext3` 是广泛应用于 Linux 操作系统中的文件系统格式。它们的设计目标是在保持高性能的同时提供可靠性和稳定性。`ext2` 是第二扩展文件系统,而 `ext3` ...

    ext2_2.1.rar_ext2_ext2文件系统_文件模拟磁盘

    EXT2(Second Extended File System)是Linux操作系统中广泛使用的文件系统之一,主要设计于1992年,作为EXT文件系统的扩展。EXT2文件系统在Linux社区中具有重要的地位,因为它提供了一种可靠且高效的存储数据的方式...

    Ext2 文件系统简要介绍(高清英文电子书)

    Ext2(Extended File System 2)是Linux早期广泛使用的文件系统之一,它作为Ext文件系统的后续版本,在保持兼容性的同时,引入了许多改进和新特性,旨在提高性能和稳定性。Ext2的设计重点在于提供快速的数据访问和...

    EXT2文件系统的分析与研究

    俺花了两块的大洋在论文网载的,希望你们喜欢。很不错的,和Fat文件系统比照收获更大啊!查看需要特殊阅读器,需要的mailto:gwx324@126.com

    linux类EXT2文件系统源码

    用文件仿硬盘的C语言程序——模仿linux下的EXT2文件系统,类EXT2文件系统

    ext2文件系统模拟

    用C语言写的,非常好的代码~~直接解压,然后gcc main.c就可以了

Global site tag (gtag.js) - Google Analytics