从树中卸载 btrfs 子卷

从树中卸载 btrfs 子卷

在 btrfs 卷上,我有一个文件夹snapshots/,我会不时地在其中存储整个卷的快照。

btrfs 自动挂载所有子卷,例如,在挂载顶部卷后,snapshots/将填充所有曾经完成的快照。

现在我喜欢卸载 中的子卷snapshots,将其snapshots留空(当然不会删除快照)。如果我对卷进行备份、索引或搜索,这将非常有用,否则总是需要以依赖于工具的方式进行限制以排除snapshots/,这并不总是容易的。

由于子卷未由内核挂载,因此我无法使用 卸载它们mount。如何卸载它们?

答案1

你可以组织你的 btrfs 卷以另一种方式避免这种自动挂载(不是将 btrfs 挂载/到您的系统上/,而是将 btrfs 子卷挂载/rootfs到您的系统上/。只有命名的 btrfs 子卷/rootfs/foo/bar才会自动挂载,就像/foo/bar在这种情况下一样)。但这不是一项非常容易的任务,如果您失败一步,您可能会很难重新启动计算机。

作为一种 umount 解决方法,我认为更简单的方法是隐藏子卷的内容,snapshot并通过在其上安装一个哑挂载点。您可以通过 fstab 自动执行此操作,如下所示:

none    /snapshot   tmpfs   defaults,size=1M,ro 0 0

要再次访问您的/snapshot子卷,一个简单的方法是添加一个特定的非自动挂载点(在此示例中为只读,因为您很少需要更改我们的快照):

/dev/sda2   /mnt/snapshots  btrfs   defaults,noauto,ro,subvol=/snapshot 0 2

注意:您也可以不隐藏快照子卷,而是为其设置特定的安全挂载选项:

/dev/sda2   /snapshots  btrfs   defaults,noexec,nodev,ro,subvol=/snapshot   0 2

相关内容