关于EXT2文件系统的几个问题



我正在阅读有关EXT2文件系统的资料,有很多问题。

主要依靠以下资源:
http://e2fsprogs.sourceforge.net/ext2intro.html
http://www.virtualblueness.net/Ext2fs-overview/Ext2fs-overview-0.1.html toc7
http://www.nongnu.org/ext2-doc/ext2.html
http://www.tldp.org/LDP/tlk/fs/filesystem.html

  1. 块组具有以下结构:|Super Block(backup)|Group Descriptors(backups)|Block Bitmap|Inode Bitmap|Inode Table|Data Blocks|(如第一个链接所述)这是否意味着索引节点不能声明比Data Block中可用的数据更多的数据?
  2. Super Block(backup)Group Descriptors(backups)是否在块组操作过程中得到更新?http://www.virtualblueness.net/Ext2fs-overview/Ext2fs-overview-0.1-7.html注意到

每个block组包含了表中的组描述符(???)然而,只有第一个Copy(在组0中)实际上由内核使用。其他的副本是用于备份,如果主副本丢失,也可以使用损坏。

如果你看过Group Descriptor的源代码,它没有 entire table of group descriptors ,正如第一句话试图暗示的那样。(也许我错过了)??

整个备份系统没有任何意义。正确的备份必须保留所有的副本,我不明白这是怎么发生的。
3.Inode Table的目的是什么?
4. Directories如何创建子目录?目录表中的每个表项都指向Inode Table中的表项。

谢谢!(我可能还有其他问题。)

有两种类型的块组:备份类型正常类型:

备份类型:包含超块和块组描述符表加上中正常类型(如下)的所有内容。

普通类型:块位图、Inode位图、Inode表和数据块。

备份块组为组0和组1,以及所有为3、5、7的幂的组。

每个块组描述符表包含多个块组描述符。每个块组有一个块组描述符。因此,如果有450个块组,那么就会有450个块组描述符,在一个块组描述符TABLE中彼此紧挨着。

创建inode表的目的是创建几个空闲的inode,供文件系统稍后使用。ext2/3文件系统创建完成后,不能再创建新的inode。

创建文件系统时设置的固定数字。

创建目录的方式如下:选择一个空闲的inode,并选择它来保存目录信息。接下来,选择一个空闲数据块来保存目录条目信息。即使一个空目录在数据块中也包含两个目录条目;一个目录条目用于它自己的目录,另一个用于它的父目录。因此,对于一个新目录,将选择一个inode,并选择一个数据块来保存前两个目录条目。当新的文件或目录被创建时,更多的目录条目将被添加到它的数据块中。

兼容Unix的文件系统需要有索引节点,这是此类文件系统的核心内容。

回想一下,Unix文件系统可能有由link(2)系统调用添加的硬链接。有些文件可以有多个名称,所有这些名称都是等效的。当一个文件被某些进程打开(2)-ed时,它仍然存在于磁盘上,即使该文件的所有名称后来都被取消链接(2)-ed。特别地,这是创建临时文件的方法。

所以实际上,inode是真正的文件(在文件系统中),目录条目包含名称(与磁盘上的inode编号相关联)。

实际上,Ext2已经过时了,已经演变为Ext4。阅读这两个维基百科页面

最新更新