首页 > 解决方案 > ext4 目录条目如何存储在 i 节点中?

问题描述

我正在对 ext4 文件系统的内部进行一些实验,当我在尝试实现按路径读取文件时偶然发现了这个问题。

根目录 i-node,根据内核文档的特殊 i-node 表编号为 2,根据块组描述符和超级块中的指针,很容易在 i-node 表中找到。

据我了解,按路径查找文件的过程是

  1. 查找根目录 i-node
  2. 遍历它的目录条目,直到找到我们要查找的子目录的名称
  3. 取我们找到的目录条目指向的 i-node 编号
  4. 转到(2.),重复直到我们找到文件。
  5. 通过解析范围树来读取文件

这个对吗?

如果是这样,struct ext4_dir_entrys 是如何从 i 节点存储/引用的?我认为i_node.i_block[]与此有关,但我并不完全清楚如何从那里读取目录条目。它们是否存储在 i 节点中?或者数组是否包含指针?

标签: linuxfilesystemskernelinodeext4

解决方案


推荐阅读