我想将 LUKS 加密的 btrfs 卷移到右侧。GParted 告诉我它知道如何将 LUKS 层移到右侧,但不知道如何将 btrfs 层移到右侧。我是否可以只将 LUKS 层移到右侧,而 btrfs 仍能正常工作,还是 btrfs 中是否有与位置相关的数据?
答案1
移动分区实际上没有什么特别之处,无论它是 LUKS 还是 Btrfs 还是其他什么。
分区的工作方式是文件系统完全不知道“真实”地址;如果 Btrfs 被告知使用 /dev/sdb3 分区,那么 Btrfs 看到的扇区 0 只是该分区的开头,即使分区物理移动到其他地方,它仍然保持这种状态。
因此,分区内所有与位置相关的数据都相对于分割而不是整个磁盘。因此,GParted 仅对调整分区大小有特殊支持,但移动所有分区都是一样的。
(就此而言,如果文件系统被告知使用 LUKS 映射器设备,那么它甚至不知道下面的分区 - 数据实际上是偏移的,以便在开头为 LUKS 标头腾出空间,但这也对文件系统是隐藏的。)
这也是为什么向左调整大小比向右调整大小慢得多的原因;它移动参考点,因此所有数据都必须随之移动。