Como tornar um instantâneo btrfs gravável?

37

De acordo com o patch de snapshots do btrfs Readonly , é possível "definir um snapshot somente leitura / gravável em tempo real". Portanto, eu deveria poder transformar meu instantâneo somente leitura (criado com btrfs snapshot -r) gravável, de alguma forma.

Mas nem a página de manual do subtrolume btrfs nem qualquer outra parte dessa página de manual parece oferecer uma maneira de fazer isso.

derobert
fonte
Como solução alternativa, você pode criar uma imagem gravável do seu instantâneo somente leitura. (I fazer isso se eu não tenho a Internet para procurar a esta pergunta)
Matega

Respostas:

42

A página de manual do btrfs falha ao documentar o propertysubcomando, que eu encontrei ao grep'ing a fonte. É também na btrfs --help.

Para definir um instantâneo para leitura e gravação, faça algo assim:

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

Altere para truepara configurá-lo como somente leitura.

Você também pode usar listpara ver as propriedades disponíveis:

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

-tespecifica o tipo de objeto no qual trabalhar, ssignifica subvolume. Outras opções são f(sistema de arquivos), i(inode) e d(dispositivo). Se você não especificar, ele mostrará todos os aplicáveis ​​(para lista) ou tentará adivinhar para obter / definir.

Edit: nas ferramentas btrfs mais recentes, há uma página de btrfs-propertymanual documentando esse subcomando, embora não seja mencionada na página de manual principal. Também está disponível como a página de propriedades btrfs no wiki .

(Nota: Isso requer ferramentas btrfs-novas o suficiente. Aparentemente, no Debian Wheezy, você precisará instalar o atualizado do wheezy-backports; obrigado artfulrobot ).

derobert
fonte
2
Você também descobrirá que, embora as APIs do kernel evoluam e as distribuições sejam enviadas com kernels cada vez mais novos, os btrfs-toolsencontrados em algumas mesmas distribuições nem sempre estão alinhados. Então, às vezes, você precisava compilar as mais recentes ferramentas btrfs do repositório git upstreams para poder usar os recursos btrfs do seu kernel (pelo menos esse foi o caso há alguns anos).
Stéphane Chazelas
@ StéphaneChazelas Sim, definitivamente. Embora neste caso eu esteja no teste do Debian, que possui o btrfs-tools 3.14, não tão insanamente antigo.
Derobert
11
@mikeserv De fato, parece 3.14.2 dividi-los. Eu tenho o 3.14.1, que é apenas alguns meses mais antigo, de acordo com o kernel.org git . Mas mesmo a página de manual atual não menciona propriedades. Também verifiquei (e vinculei) o atual no wiki. Acontece que é uma página de manual separada e não vinculada a ela.
derobert
Eu precisava instalar o btrfs-tools do Wheezy-backports para que isso funcionasse.
Artfulrobot
@artfulrobot obrigado, observação adicionada à resposta.
derobert