linux - ext4 目录条目如何存储在 i 节点中?
问题描述
我正在对 ext4 文件系统的内部进行一些实验,当我在尝试实现按路径读取文件时偶然发现了这个问题。
根目录 i-node,根据内核文档的特殊 i-node 表编号为 2,根据块组描述符和超级块中的指针,很容易在 i-node 表中找到。
据我了解,按路径查找文件的过程是
- 查找根目录 i-node
- 遍历它的目录条目,直到找到我们要查找的子目录的名称
- 取我们找到的目录条目指向的 i-node 编号
- 转到(2.),重复直到我们找到文件。
- 通过解析范围树来读取文件
这个对吗?
如果是这样,struct ext4_dir_entry
s 是如何从 i 节点存储/引用的?我认为i_node.i_block[]
与此有关,但我并不完全清楚如何从那里读取目录条目。它们是否存储在 i 节点中?或者数组是否包含指针?
解决方案
推荐阅读
- c# - .NET/C#:使用 IN OUT 参数调用存储过程时,Oracle.ManagedDataAccess.Client.OracleCommand 内部出现 NullReferenceException
- android - “gpg:无法检查签名:没有公钥”从代码极光初始化回购
- java - 带有 HttpURLConnection 的 PostRequest 的 401
- angular - Angular 升级 9 到 10 - i.Subscription 不是构造函数构建错误
- php - 使用 PHP-FFmpeg 将多个输入合并为一个
- hibernate - Hibernate 5.4 - 无法持久化 Java Instant
- c++ - 对巨大的文本文件进行排序 - 如何从跨平台代码中找出卡盘大小
- html - CSS 帮助 - 随着屏幕变小,响应式 2 列变为单列
- python - 为什么我不能使用 month_ret.rolling(36).std()*np.sqrt(12) ?(蟒蛇金融)
- firebase - 如何在颤动中显示和更新多个图像