加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_马鞍山站长网 (https://www.0555zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

好文分享:EXT文件系统机制原理详解

发布时间:2019-09-18 22:15:12 所属栏目:建站 来源:骏马金龙
导读:副标题#e# 文章有些长,但是作者总结的非常好,能学到很多技术细节知识。请大家耐心阅读。 将磁盘进行分区,分区是将磁盘按柱面进行物理上的划分。划分好分区后还要进行格式化,然后再挂载才能使用(不考虑其他方法)。格式化分区的过程其实就是创建文件系统

之所以会这样,是因为挂载文件系统后,挂载点原来的inode记录暂时被标记为不可用,关键是没有指向该inode记录的inode指针了。在卸载文件系统后,又重新启用挂载点原来的inode记录,"/"目录下的mnt的inode指针又重新指向该inode记录。

(3).挂载后,挂载点的元数据和data block是分别存放在不同文件系统上的。

(4).挂载点即使在挂载后,也还是属于源文件系统的文件。

7.3 多文件系统操作关联

假如下图中的圆代表一块硬盘,其中划分了3个区即3个文件系统。其中根是根文件系统,/mnt是另一个文件系统A的入口,A文件系统挂载在/mnt上,/mnt/cdrom也是一个文件系统B的入口,B文件系统挂载在/mnt/cdrom上。每个文件系统都维护了一些inode table,这里假设图中的inode table是每个文件系统所有块组中的inode table的集合表。

好文分享:ext文件系统机制原理详解

如何读取/var/log/messages呢?这是和"/"在同一个文件系统的文件读取,在前面单文件系统中已经详细说明了。

但如何读取A文件系统中的/mnt/a.log呢?首先,从根文件系统找到/mnt的inode记录,这是单文件系统内的查找;然后根据此inode记录的block指针,定位到/mnt的data block中,这些block是A文件系统的data block;然后从/mnt的data block中读取a.log记录,并根据a.log的inode指针定位到A文件系统的inode table中对应a.log的inode记录;最后从此inode记录的block指针找到a.log的data block。至此,就能读取到/mnt/a.log文件的内容。

下图能更完整的描述上述过程。

好文分享:ext文件系统机制原理详解

那么又如何读取/mnt/cdrom中的/mnt/cdrom/a.rpm呢?这里cdrom代表的文件系统B挂载点位于/mnt下,所以又多了一个步骤。先找到"/",再找到根中的mnt,进入到mnt文件系统中,找到cdrom的data block,再进入到cdrom找到a.rpm。也就是说,mnt目录文件存放位置是根,cdrom目录文件存放位置是mnt,最后a.rpm存放的位置才是cdrom。

(编辑:网站开发网_马鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!