我在/docker/nc/data路径下创建了一个btrfs子卷。如下所示:
$ sudo btrfs subvolume list /
ID 256 gen 13908 top level 5 path docker
ID 257 gen 13877 top level 256 path docker/nc/data
是否可以将子卷移动到子卷泊坞窗内的某个位置?IE
/docker/nc/config/data
其中有近90GiB的数据。是否可以不复制就完成?
我在/docker/nc/data路径下创建了一个btrfs子卷。如下所示:
$ sudo btrfs subvolume list /
ID 256 gen 13908 top level 5 path docker
ID 257 gen 13877 top level 256 path docker/nc/data
是否可以将子卷移动到子卷泊坞窗内的某个位置?IE
/docker/nc/config/data
其中有近90GiB的数据。是否可以不复制就完成?
是的,可以在同一根目录中重新定位 Btrfs 子卷,而无需复制数据。Btrfs 提供了使用带有“-r”选项的 Btrfs subvolume set 命令执行子卷重定位的功能。以下是实现这一目标的方法:
确保目标子卷 (docker) 中有足够的可用空间来容纳要移动的子卷 (docker/nc/data) 中的数据。
在继续之前,请确保没有活动进程访问或修改要重新定位的子卷。如果当前已安装子卷,建议将其卸载。
打开终端或 shell 并运行以下命令来执行子卷重定位:
在此输入图像描述
在您的情况下,该命令将如下所示:
在此输入图像描述
执行该命令后,子卷将被重新定位到新路径,而不复制数据。值得注意的是,该过程是瞬时的,因为它只是更新子卷的元数据。
最后,您可以通过再次列出子卷来验证重定位:
在此输入图像描述
您应该看到子卷 docker/nc/data 已重新定位到新路径 docker/nc/config/data,同时保留数据。
请记住更新依赖于旧路径的所有引用或配置以反映新路径。
请注意,始终建议在对文件系统结构进行任何修改之前备份数据。