![更改文件系统如何工作?](https://linux22.com/image/119178/%E6%9B%B4%E6%94%B9%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
免责声明:我不太确定该把它放在哪里,但由于上下文主要是 Unix,所以就到此结束了。
关于最近发布的 Mac OS High Sierra 和 APFS 的引入,我对从一种文件系统更改为另一种文件系统的过程感到好奇。我想最复杂的事情是符号链接和硬链接从旧系统到新系统的转换,因为仍然需要指向正确的文件(有效的节点)。做这样的事情需要在原始文件系统中创建一个索引节点图,该文件系统可能有数十亿个节点,并尝试用新的文件系统重新创建它,可能会引入不同的定位算法、关联的元数据和其他东西。
我愿意看看我的假设有多现实,如果不现实,有人可以解释一下这个过程吗?
更新:我不是询问任何特定的操作系统/文件系统。我想知道更改文件系统的过程以及底层发生了什么。
答案1
符号链接不指向 inode。硬链接只需指向同一个 inode 即可;如果 inode 号改变也没有问题。
在某些情况下,您可以转换文件系统(例如,有一个工具可以将 etx4 转换为 btrfs)。但通常您会备份数据,使用新文件系统格式化卷并恢复备份。您只需要一个能够正确处理硬链接的备份。