Android文件系统和inode

时间:2012-09-07 17:33:27

标签: android linux filesystems inode

我最近了解了Unix inode及其用途。特别是,我了解到an.inode在文件系统中是唯一的。

我的问题是:如果用户将Micro SD卡插入其Android设备,该卡是否会成为现有文件系统的一部分,还是会成为单独的文件系统?

或者,换句话说:可以在内部和外部存储中复制索引节点吗?

非常感谢, P

2 个答案:

答案 0 :(得分:1)

这是一个单独的文件系统。所以,是的,内部存储上的文件可以与外部存储上的文件具有相同的inode编号,即使它们是不同的文件。

如果您的真正问题是如何唯一标识文件,则需要inode编号和设备ID编号。两者都可以使用* stat()系列调用来检索,特别是stat结构的st_dev和st_ino字段。

答案 1 :(得分:1)

Micro SD卡通常使用FAT32,一个不存储inode的文件系统。 Linux内核创建的随机inode编号与访问新文件时的其他编号不同。

在FAT32文件系统上,路径名足以唯一地标识文件,与文件可以包含任意数量的路径名的其他文件系统不同。

这些FAT32伪造的inode号码被删除了:

  • 卸载文件系统时
  • 当操作系统重新启动时
  • 当存储它们的固定大小缓存已满时

如果您想要一种可靠的方法来识别FAT32上的文件,请不要使用它们的inode。

我建议使用路径名的哈希值,如果你想确保避免碰撞,可以使用它们的大小。