File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -777,7 +777,7 @@ $ sudo btrfs subvolume get-default /media/btrfs
777777ID 259 gen 11 top level 256 path subvol1/nestedvol1
778778$ sudo umount /media/btrfs
779779$ # 重新挂载文件系统,可以看到挂载的 subvolume 已经改变
780- $ sudo mount btrfs.img /media/btrfs
780+ $ sudo mount btrfs.img /media/btrfs
781781$ sudo btrfs subvolume show /media/btrfs
782782subvol1/nestedvol1
783783 Name: nestedvol1
@@ -841,6 +841,22 @@ $ sudo umount /media/btrfs
841841
842842我们可以定时执行快照,以便在文件被误操作时能够恢复。例如 snapper 等软件可以在后台自动执行快照任务。
843843
844+ !!! tip "使用快照将 top-level subvolume 的文件迁移到 ` @ ` 或其他 subvolume"
845+
846+ 如果你在配置系统时直接在 top-level subvolume 下安装了系统,或者需要处理使用 [`btrfs-convert`](#btrfs-convert) 转换得到的 Btrfs,那么根据上面所描述的快照的原理,可以比较方便地迁移,而不需要再手动复制或移动:
847+
848+ ```shell
849+ # 假设 top-level subvolume 在 /mnt
850+ mount -o subvolid=5 /dev/your-device /mnt
851+ btrfs subvolume snapshot /mnt /mnt/@
852+ # 如果有其他的 subvolume,删除空目录
853+ rmdir /mnt/@/@example
854+ # 删除 top-level subvolume 的文件
855+ rm -rf /mnt/example_file /mnt/example_dir
856+ ```
857+
858+ 当然,如果是根分区要这么处理,那么可能无法在线处理(不能现场更换某个挂载点对应的 subvolume),需要引导到其他环境再挂载操作。
859+
844860#### 传输 {#btrfs-send}
845861
846862Btrfs 支持文件系统层面的流式发送和接收,允许以字节流的形式将一个** 只读** subvolume(以下简称快照)的内容拷贝到另一个文件系统上,比如下面这样:
You can’t perform that action at this time.
0 commit comments