2011-01-12 177 views
4

我遇到inode编号问题。当我装入一个USB磁盘(比方说usb-a),然后挂载另一个USB磁盘(usb-b)时,usb-a中的inode号码会改变。Inode数量正在变化

这是正常的吗?什么可能导致这个问题?我正在使用Linux Kernel 2.6。 usb-a是vfat,usb-b是ntfs。

在此先感谢你们。

+0

你的意思是索引节点号码在系统重启时不会持久? – shahir 2012-02-28 10:59:04

回答

6

FAT(和类似的VFAT)文件系统实际上并不在磁盘上存储inode编号。相反,Linux在发现文件时即时创建inode数字。这些生成的inode编号存储在缓存中,以尝试保持它们的一致性,但该缓存具有固定的大小;一旦它满了,旧的条目将被丢弃。

假设挂载第二个文件系统的行为足以导致VFAT文件系统上的inode号码缓存遗忘了您的文件,从而导致分配新的inode号码并呈现您观察到的问题。

的更多信息:

  • Discussion约有关的的findutils这个问题的邮件列表中的错误
  • Linux内核源:fs/fat/inode.c(特别是在fat_build_inode调用iunique执行的inode编号分配)。