如何使btrfs快照可写?


37

根据btrfs只读快照修补程序,可以“动态设置快照为只读/可写”。因此,我应该能够以btrfs snapshot -r某种方式使我的只读快照(使用创建的快照)可写。

但是btrfs子卷手册页或该手册页的任何其他部分似乎都没有办法。


作为一种解决方法,您可以对只读快照进行可写的快照。(如果我没有互联网可以查询此问题,则执行此操作)
matega 2015年

Answers:


42

btrfs手册页未能记录该property子命令,该命令是我通过grep'ing源代码找到的。它也在btrfs --help

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

btrfs property set -ts /path/to/snapshot ro false

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

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

btrfs property list -ts /path/to/snapshot
ro                  Set/get read-only flag of subvolume.

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

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

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


2
您还会发现,尽管内核API不断发展,并且发行版附带了btrfs-tools越来越多的内核,但是在某些相同发行版中找到的并不总是对齐的。因此,您有时会发现自己必须从上游git仓库中编译最新的btrfs-tools才能使用内核的btrfs功能(至少几年前就是这种情况)。
斯特凡Chazelas

@StéphaneChazelas是的,当然可以。尽管在这种情况下,我正在进行Debian测试,该测试具有btrfs-tools 3.14,所以没有那么老。
derobert 2014年

1
@mikeserv确实,似乎3.14.2将它们分开了。根据kernel.org git的说法,我有3.14.1,仅大了几个月。但是即使当前的手册页也没有提到属性。我也在Wiki上检查了(并链接到)当前的。事实证明尽管如此,它是一个单独的,未链接的联机帮助页
derobert 2014年

我需要从Wheezy-backports安装btrfs-tools才能使它工作。
artfulrobot 2015年

@artfulrobot谢谢,注释已添加到答案中。
derobert
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.