重启后的Inode编号

时间:2014-01-14 19:41:49

标签: linux unix filesystems posix inode

重启,重新安装后,甚至在所有进程关闭后再次打开后,保证(例如标准)的inode编号是否相同?例如。可以在打开文件时自动生成,而不是存储在文件系统上。应用程序可以依赖它吗?文件系统实现是否需要保证特定的语义?

1 个答案:

答案 0 :(得分:4)

inode不是每个文件系统的一般概念。 Ext文件系统和Linux VFSinode视为存储有关文件信息的数据结构。但是,例如,FAT32NTFS并不知道inode是什么,因为他们根本就不使用这个概念。

说完这些,我会尽力回答你的问题:

  

重启,重新安装后,甚至在所有进程关闭然后再次打开之后,保证(例如标准)的inode编号是否相同?

取决于,如果文件系统属于Ext种类,则inode号码存储在i_ino内的struct inode文件中,写入磁盘,所以是的,在这种情况下,如果文件相同(不是具有相同名称的其他文件),则inode号码保证相同。

否则,如果文件系统不是Ext,则inode编号由文件系统驱动程序定义的inode operations生成,因为它们没有什么概念inode是,他们必须模仿所有inode的内部字段以符合VFS,因此重启后这个数字可能会有所不同,即使在关闭并再次打开文件之后也许强>(理论上)。

  

E.g。它可以在打开文件时自动生成,而不是存储在文件系统中。

是的!非Ext文件系统的驱动程序(FAT32NTFS)只要访问其中一个文件就会生成inode结构。

  

应用程序可以依赖它吗?

不太安全,应用程序依赖文件路径,这些文件路径更易于阅读。必须通过其inode查找文件将意味着遍历分区中的所有inodes(许多)。通过解析文件的路径,优化搜索,它只检查目录中的文件。

  

文件系统实现是否需要保证特定的语义?

我不太了解这个问题,但我认为是的,文件系统是非常复杂的结构,它们需要很好地建立它需要的数据类型以及它们的含义。

例如:Ext定义blockinodedentry以及这些数据结构上的函数列表。

希望这有帮助!