在Linux中,我有两个文件系统(假设分别称为文件系统X、Y)分别挂载到 / 、 /home 这两个目录下。现在我要访问 /home/a.txt 下的a.txt文件。那么根据文件系统的规则,首先根据挂载点信息,找到根目录 / 的inode,一般为2。然后根据inode的信息找到对应的block块,并找到block块中home/ 目录的inode号码。然后再根据得到的inode号码访问相应的block块,并找到a.txt文件的inode,然后根据找到的inode来读取a.txt中的内容!
现在的问题是,因为 / 和 /home 挂载的是不同文件系统,所以在 / 这个inode对应的block块中记录的 home/的inode应该是在文件系统X中才对。但是在目录/home下面挂载的是文件系统Y,它对应的inode应该属于文件系统Y的!这不矛盾了吗?
根据文件系统的最顶层目录的inode都是2,所以由于 / 和/home都是顶层目录,那么 / 对应的inode是2,/home对应的inode也应该是2。那么当读取到目录 / 的block块中的home/的inode时,那不就又回到目录 / 下了吗?这岂不是不停的循环下去了?
小弟不才,琢磨不透!请大神赐教!
jp_xy 于 2015-06-01 22:51:14发表:
那为啥proc的inode号是1呢?
[img][/img]
Cathyw 于 2015-03-26 11:02:16发表:
刚才试验了一下,每个文件系统的iNode编号确实是从头开始的
Cathyw 于 2015-03-26 10:41:51发表:
你好,请问你现在找到答案了吗?我也不明白这个问题。
书上说文件系统的最顶层inode号码一般都是2,难道这是在不同文件系统中的iNode编号?
gh131461 于 2013-12-21 20:02:20发表:
......
Osllgre 于 2013-09-07 09:12:40发表:
怎么还用着2
相思爱文 于 2013-09-06 21:17:40发表:
linux中,所有挂载的和支持的文件系统,用的是统一VFS虚拟文件系统管理。
四爷 于 2013-09-06 15:23:14发表:
有谁知道么?文件系统真是难(6)m:b懂啊!