inode存储在哪里?
Where are inodes stored at?
我最近开始学习 Linux 内核,我刚刚学习了索引节点,它们是包含文件元数据的数据结构。
现在,OS如何找到文件的关联索引节点? (比方说路径的字符串)。此外,这些 inode 存储在哪里?我的意思是,显然它们存储在磁盘上,但如何管理它们呢?
一个天真的解决方案(我能想出)是在磁盘上分配一个专为 inode 指定的区域 - 实际做了什么?
这取决于文件系统的实现。例如 ext2fs/ext3fs 选择在 Block Group 中的数据块之前存储 inode。 The Second Extended File system (EXT2)
记住存储在所有块组中的索引节点。例如,inode 1 到 32768 将存储在 Block Group-0 中,inode 32768 到 65536 存储在 Block-Group-2 中,依此类推。
所以,你的问题的答案是:inode存储在inodetables中,分区中的每个block group都有一个inodetable。
我最近开始学习 Linux 内核,我刚刚学习了索引节点,它们是包含文件元数据的数据结构。
现在,OS如何找到文件的关联索引节点? (比方说路径的字符串)。此外,这些 inode 存储在哪里?我的意思是,显然它们存储在磁盘上,但如何管理它们呢?
一个天真的解决方案(我能想出)是在磁盘上分配一个专为 inode 指定的区域 - 实际做了什么?
这取决于文件系统的实现。例如 ext2fs/ext3fs 选择在 Block Group 中的数据块之前存储 inode。 The Second Extended File system (EXT2)
记住存储在所有块组中的索引节点。例如,inode 1 到 32768 将存储在 Block Group-0 中,inode 32768 到 65536 存储在 Block-Group-2 中,依此类推。
所以,你的问题的答案是:inode存储在inodetables中,分区中的每个block group都有一个inodetable。