2013-05-05 72 views
1

我正在阅读关于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)在Block Group的运营期间得到更新吗? http://www.virtualblueness.net/Ext2fs-overview/Ext2fs-overview-0.1-7.html注意到

每个块组包含组描述符的整个表中 其第二块,超级块之后。(???)但是,内核实际只使用第一个 副本(在组0中)。其他副本为 用于备份目的,如果主副本受损 可用。

如果你已经看过的Group Descriptor源它没有entire table of group descriptors的第一句话是试图暗示。(也许我错过了)?

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

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

+0

嗨,我只是想知道如果你为你解答第二个问题。具体而言,当一个组描述符更改时将会更新多少组描述符表副本? – fengye87 2015-12-15 08:59:03

回答

2

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

备份类型:包含超级块和块组描述符表PLUS一切正常型 (下面)。

正常类型:块位图,Inode位图,Inode表和数据块。

备份块组是组0和1,并且是3,5权力所有组,和7

每个块组描述符表包含几个块组描述符。每个块组有一个块组描述符。所以,如果有450个块组,则将有450个块组描述符,在一个块组描述符中彼此紧挨在一起

inode表的目的是创建几个可供文件系统稍后使用的空闲inode。在创建ext2/3文件系统后,您不能创建新的inode。创建文件系统时,它是一个固定数字集。

这是如何创建一个目录:选择一个空闲的inode,并选择该目录以保存目录信息。接下来,选择一个空闲数据块来保存目录条目信息。即使是一个空目录,也包含数据块中的两个目录条目;它自己的目录的目录条目,以及其父目录的目录条目。所以,对于一个新的目录,将会挑选一个inode,并且将挑选一个数据块来保存前两个目录条目。随着新文件或目录的创建,更多的目录条目将被添加到其数据块中。

0

Unix兼容的文件系统需要有inodes,这是这种文件系统的核心。

回想一下,Unix文件系统可能会通过link(2)系统调用添加硬链接。某些文件可以有多个名称,所有这些名称都是等效的。 即使所有文件的名称后来都是unlink(2) -ed,文件仍然存在于磁盘上。特别是,这是制作临时文件的方法。

所以其实的inode是真正的文件(文件系统)和目录条目包含他们(关联索引节点号在磁盘上)。

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