如何创建具有特定inode编号的文件?

| 如何在ext3文件系统中创建文件 特定的inode号? (例如:我想创建一个inode-number = 12253的文件)     
已邀请:
我认为从用户空间创建文件时,没有任何编程方式可以请求特定的inode编号。除了在“ 0”结果中可见之外,索引节点号在用户空间中没有任何意义。它们是文件系统内部簿记数据的一部分,就像分配文件内容的块号一样。 通过将一个索引节点的内容复制到另一个索引节点,然后更新任何目录条目以指向新的索引节点并取消分配旧的索引索引,您可能会使用ѭ1来“更改”现有文件的索引节点号。因此,您可以使用任何inode编号创建文件,然后将其“更改”为所需的编号。但是,由于错误可能会导致文件系统损坏和数据丢失,因此必须格外小心。您还必须考虑到所需的索引节点号已被另一个文件使用的可能性。     
这是一个相当低的数字,因此很有可能已经被使用。如果没有,您可以运行一个Bash脚本来创建数千个文件:类似于
for i in $(seq 1 12000); do touch $i.txt; done
。然后找到您想要的一个:
find / -inum 12253
,并将其重命名为您想要的任何名称,然后将您想要的内容放入其中。如果您不覆盖分配的空间,则在这种情况下很可能会创建一个新的inode,应该这样做。但是,这是一个草率的解决方案,必须有更好的方法。     
索引节点编号由系统分配。创建文件时,用户代码无法指定它。     

要回复问题请先登录注册