Как сделать снимок btrfs доступным для записи?

37

В соответствии с патчем моментальных снимков btrfs Readonly можно «установить моментальный снимок только для чтения / записи на лету». Так что я должен btrfs snapshot -rкаким-то образом сделать свой снимок только для чтения (созданный с помощью ) доступным для записи.

Но ни справочная страница btrfs subvolume, ни какая-либо другая часть этой справочной страницы, похоже, не способ сделать это.

derobert
источник
В качестве обходного пути вы можете сделать shapshot для записи из вашего снимка только для чтения. (Я делаю это, если у меня нет Интернета, чтобы найти этот вопрос)
matega

Ответы:

42

Man-страница btrfs не в состоянии документировать propertyподкоманду, которую я нашел путем поиска источника. Это также в 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-propertyman-страница, документирующая эту подкоманду, хотя она вообще не упоминается на главной man-странице. Он также доступен на странице свойств btrfs в вики .

(Примечание: для этого требуется достаточно новый btrfs-tools. По-видимому, в Debian Wheezy вам придется установить обновленный из wheezy-backports; спасибо artfulrobot ).

derobert
источник
2
Вы также обнаружите, что, хотя API ядра развиваются и дистрибутивы поставляются с новыми и новыми ядрами, btrfs-toolsнайденные в одних и тех же дистрибутивах не всегда выровнены. Так что иногда вы сталкивались с необходимостью скомпилировать последние btrfs-tools из git-репозитория upstreams, чтобы иметь возможность использовать функции btrfs вашего ядра (по крайней мере, так было несколько лет назад).
Стефан Шазелас
@ StéphaneChazelas Да, определенно. Хотя в этом случае я нахожусь на тестировании Debian, у которого есть btrfs-tools 3.14, так что не настолько безумно старый.
Дероберт,
1
@mikeserv Действительно, кажется, 3.14.2 разделил их. У меня 3.14.1, которая всего на несколько месяцев старше, согласно kernel.org git . Но даже текущая страница руководства не упоминает свойства. Я проверил (и связался с) текущий вики тоже. Оказывается, это отдельная, не связанная с этим справочная страница .
Дероберт
Мне нужно было установить btrfs-tools из Wheezy-backports, чтобы это работало.
artfulrobot
@artfulrobot спасибо, примечание добавлено к ответу.
Дероберт