![我们可以指定索引节点和数据块的数量吗?](https://linux22.com/image/86006/%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E6%8C%87%E5%AE%9A%E7%B4%A2%E5%BC%95%E8%8A%82%E7%82%B9%E5%92%8C%E6%95%B0%E6%8D%AE%E5%9D%97%E7%9A%84%E6%95%B0%E9%87%8F%E5%90%97%EF%BC%9F.png)
我了解到索引节点和数据块的数量是在创建时分配的,
但例如,如果我们希望“text.txt”这个文件存储在索引节点号20或数据块号20中,我们可以这样做吗?
答案1
这将使用原始设备(对于给定的块号)。
打开特定的索引节点是另一回事。这既不是传统的原始设备操作,也不是文件系统操作。你可能想要这样做恢复已删除的文件;有一些工具可以做到这一点。但写作到给定的索引节点并不是一件好事(除非您正在编写设备驱动程序),因为这会绕过系统的其余部分及其完整性检查。
进一步阅读:
- Linux:C语言直接访问硬盘
- 第 11 章 原始设备(Linux 2.4 SCSI 子系统 HOWTO)
- 文件可以通过其索引节点检索吗?
- 如果我知道索引节点号,则重新创建已删除的文件硬链接
提到一个工具:
使用lsof确定文件的inode号 安装icat(Google icat-sleuthtools)...对于ubuntu,它是apt-get install sleuthtools 然后使用 icat 将文件复制到新位置: icat -hf ext /dev/xxx > /path/to/copy.file