ext4 文件系统如何在幕后响应检索文件请求?

ext4 文件系统如何在幕后响应检索文件请求?

假设我已经将硬盘安装到/var/data/我的 Linux 服务器的位置,并且我想要打印一个文件的内容。

cat /var/data/foo.txt

在此输入图像描述

Ext4 由几个部分组成,例如:

  • 超级块
  • 文件系统描述
  • 块位图
  • 索引节点位图
  • ETC。

我的问题是:

  1. ext4 是如何在底层将文件名转换为 inode 的?
  2. 文件名保存在哪个部分?
  3. inode 保存在哪个部分?
  4. 数据保存在哪个部分?

参考

超级用户:操作系统如何在文件系统中查找文件? [关闭]

答案1

Ext4在内核中有详细记录;我将简要回答您的问题,但您会在那里找到更多信息。

  1. 从已知的 inode 开始(2 表示文件系统的根目录,在您的示例中对应/var/data,或者用于调用的打开文件描述,例如openat),目录条目指向路径组件的每个连续索引节点,最后指向您感兴趣的文件。

  2. 文件名保存在目录条目中。目录条目存储在数据块中。

  3. 索引节点存储在索引节点表中。

  4. 数据存储在数据块中。

相关内容