如何使 btrfs 快照可写?

der*_*ert 44 linux btrfs

根据btrfs 只读快照补丁,可以“即时设置快照只读/可写”。所以我应该能够以btrfs snapshot -r某种方式将我的只读快照(使用)变成可写的。

但是btrfs 子卷联机帮助页联机帮助页的任何其他部分似乎都没有提供一种方法来做到这一点。

der*_*ert 53

btrfs 联机帮助页未能记录property我通过 grep'ing 源找到的子命令。它也在btrfs --help.

要将快照设置为读写,您可以执行以下操作:

btrfs property set -ts /path/to/snapshot ro false
Run Code Online (Sandbox Code Playgroud)

true将其更改为将其设置为只读。

您还可以使用list来查看可用的属性:

btrfs property list -ts /path/to/snapshot
ro                  Set/get read-only flag of subvolume.
Run Code Online (Sandbox Code Playgroud)

-t指定要处理的对象类型,s表示子卷。其他选项是f(文件系统)、i(索引节点)和d(设备)。如果您不指定,它将显示所有适用的(列表)或尝试猜测获取/设置。

编辑:在最新的 btrfs 工具中,有一个手册btrfs-property页记录了该子命令,尽管主手册页中根本没有提到它。它也可以作为wiki 上的 btrfs-property 页面使用

(注意:这需要足够新的 btrfs-tools。显然在 Debian Wheezy 上,您必须从 wheezy-backports 安装更新的工具;感谢artfulrobot)。

  • 您还会发现,虽然内核 API 不断发展并且发行版随更新的内核一起提供,但在某些相同发行版上找到的 `btrfs-tools` 并不总是一致的。因此,您有时会发现自己必须从上游 git 存储库中编译最新的 btrfs-tools,才能使用内核的 btrfs 功能(至少几年前是如此)。 (3认同)