Minha partição / home consiste em um disco físico inteiro. É formatado como btrfs. Eu quero tirar uma foto. Estou confuso em relação à nomeação de subvolume, em particular.
Estou ciente de que existem perguntas semelhantes, mas cada pergunta semelhante parece estar perguntando algo diferente do que estou perguntando (e elas são mais antigas, o que significa provavelmente desatualizadas, dado o rápido desenvolvimento do btrfs). Por exemplo, a resposta a esta pergunta aparentemente não é a resposta para a minha pergunta, porque minha partição / home é um volume separado e a página de manual do btrfs mostra um comando diferente para criar instantâneos agora.
outro problema semelhante, nenhuma solução sólida .
alguém tão confuso quanto eu sobre os problemas de nomeação
Minha pergunta:
Começando de forma simples: esse é o comando correto para tirar um instantâneo simples da minha partição pessoal?
btrfs subvolume snapshot /home/@home /home/@home_snapshot_20120421
Fiquei muito corajoso e testei e ele não funciona. O erro é error accessing /home/@home
. Como mostrado abaixo, @home está listado.
Obviamente, estou confuso com nomes de subvolume. Preciso usá-los na criação de instantâneos? Alguns exemplos mostram como tirar instantâneos de casa usando /home
como parâmetro de origem, mas com base em exemplos de volumes raiz, parece-me que preciso usar /home/@home
.
Esse comando funcionaria? E se não, por que?
btrfs subvolume snapshot /home /home/@home_snapshot_20120421
É @
apenas uma convenção de nomenclatura? É significativo?
Aqui estão alguns resultados que podem ser relevantes:
btrfs subvolume list /home
ID 256 top level 5 path @home
Não tenho certeza do que isso significa exatamente. Quando tento btrfs device scan
, ocorre um erro (por exemplo, incapaz de verificar o dispositivo / dev / sda1). Meu sistema de arquivos não possui erros. Tudo está bem.
Aqui estão minhas partições. Em resposta a uma resposta, no / home não é minha única partição btrfs.
/dev/sda1: (boot partition) TYPE="ext2"
/dev/sda2: (root partition) TYPE="btrfs"
/dev/sdb1: (home partition) TYPE="btrfs"
/dev/sdc1: (shared partition) TYPE="btrfs"
/dev/sdc2: TYPE="swap"
Respostas:
Qual é o comando correto para criar um instantâneo da minha partição pessoal no Ubuntu 12.04?
Dado o fato de que o home está em uma partição btrfs e está montado como / home, o comando correto é:
Aqui estão os meus resultados:
Antes de executar o comando hoje:
O comando:
Depois de executar o comando hoje:
O único problema com esse método é que os instantâneos são exibidos quando você é (lista) / home.
O Wiki da comunidade Ubuntu foi atualizado com uma solução para isso. Aqui está:
Como trabalhar com capturas instantâneas no layout do Ubuntu
Para trabalhar com instantâneos de / ou / home no layout do Ubuntu, é muito conveniente montar o sistema de arquivos btrfs em um local separado e trabalhar a partir da parte superior da árvore do btrfs, e não dos subvolumes montados. <- essa é a solução. Infelizmente, não é conveniente .
Para criar um instantâneo, use a mesma sintaxe que usei acima:
Isso criará um instantâneo do subvolume @ chamado @_snapshot localizado também na parte superior da árvore do btrfs. Como está no topo da árvore, não será exibido ao listar arquivos em um volume montado.
Para reverter para um instantâneo, basta alterar o nome para o nome que o ubuntu monta e reinicia. Veja como alterar o nome:
Para excluir um instantâneo, use:
Os snapshots btrfs são subvolumes em si mesmos e independentes, excluindo o subvolume @ antigo dessa maneira, desde que tenhamos uma substituição.
NOTA: O comando btrfs-tools
set-default
interromperá o layout do Ubuntu.fonte
Ok, as primeiras coisas primeiro:
O nome do subvolume que você está visualizando é
@home
mostrado porbtrfs subvolume list /home
. Está montado/home
. @home é o nome do subvolume e também possui o ID 256; portanto, provavelmente apenas sua / home está formatada como btrfs.Agora, para criar um instantâneo do @home, você deve emitir:
sudo btrfs subvolume snapshot /home/ /home/@home_snapshot_20120421
O subvolume pode ter qualquer nome. O @ é a convenção do Ubuntu no momento da instalação. (Se você usar
apt-btrfs-snapshot
o subvolume raiz, terá que ser chamado de@
btw.) O wiki da comunidade recomenda fortemente manter@
como root e@home
como home, pois é montado dessa maneira. Isso é especialmente importante se você deseja reverter: NÃO deve usar o subtrolume btrfs set-default (não sintaxe destacada por objetivo).Para
btrfs device scan
você ter que usarsudo
.Para excluir um subvolume, você pode usar
sudo btrfs subvolume delete @home_snapshot_20120421
Todos os comandos btrfs podem ser abreviados desde que não sejam ambíguos, portanto, por exemplo,
sudo btrfs device scan
podem ser truncados parasudo btrfs d s
,sudo btrfs dev sc
ou qualquer outro meio.Espero que tenha respondido suas perguntas. Existem algumas ferramentas disponíveis para fazer backups regulares, o btrfs-snapshot-rotation é um exemplo. Use aqueles com cautela, pois nenhum deles é realmente maduro ou ganhou tração suficiente, ou seja, eles podem muito bem conter bugs.
fonte
$ sudo btrfs subvolume snapshot @home home/@snapshot_20120611_1257 ERROR: error accessing '@home'
btrfs device scan
. Qualquer variante, incluindo o uso,sudo
apresenta o erro "ERRO: Incapaz de verificar o dispositivo '/ dev / sdX'", em que X é um nome válido como a, a1, b, etc.btrfs sub snap @ /mnt/random
e funcionou para mim. Então, novamente, eu estava em / mnt onde @ foi montado. Desculpe pela confusãoInstalar o
apt-btrfs-snapshot
pacote, e usar seus subcomandoslist
,snapshot
,delete
eset-default
.Este é um script que agrupa os
btrfs
comandos de nível inferior . Ele funciona primeiro montando o sistema de arquivos raiz btrfs em algum lugar. Com isso quero dizer a raiz real, em oposição ao/@
subvolume que normalmente é montado como/
. Em outras palavras, você precisa executarmount /dev/sda1 /mnt
para que possa ver os subvolumes que serão listados como/mnt/@
,/mnt/@home
e quaisquer outros que você criou. A partir daí, você podebtrfs subvolume snapshot /mnt/@home @snapshot-today
, o que criará um instantâneo de/@home
nomeado/@snapshot-today
. Compare isso com a execuçãobtrfs subvolume snapshot /home /home/@snapshot_today
, que em vez disso cria o instantâneo como filho de/@home
, portanto, ele aparece quando vocêls /home
e seu nome verdadeiro são/@home/@snapshot-today
.Revertendo um instantâneo é apenas uma operação de renomeação simples:
mv /mnt/@home @backup ; mv /mnt/@snapshot-today @home
. A próxima vez que você iniciar, quando ele vai montar/@home
em/home
, ele vai encontrar o instantâneo.É um pouco complicado de entender, porque você deve ter em mente a diferença entre como o btrfs vê as coisas e como o kernel vê as coisas, que é influenciado pelas opções de montagem (o subvol = argumento especificamente).
fonte