A alternativa - Instantâneos do LVM - Você pode ler sobre os instantâneos do LVM aqui: Ссылка
Em suma - os instantâneos são uma maneira de congelar os setores usados no disco rígido, dizendo ao sistema para gravar qualquer alteração / exclusão / adição em uma parte reservada do disco rígido, chamada de volume instantâneo, adiando assim a decisão de manter / descartar as alterações na unidade para algum tempo futuro, na medida em que o espaço do volume da captura instantânea forneça. E assim, quando você decide reverter as alterações (ou mantê-las), você pode fazer isso com uma linha.
Pode parecer complexo no começo, mas posso garantir que após o primeiro esforço, tudo o que é necessário para usar o mecanismo de snapshot é apenas 2 scripts de linha (downloads fornecidos!)
Garantia - Nenhuma garantia é dada para as instruções abaixo. Use a seu próprio risco!
Como?
Se você não tiver um grupo de volumes pré-configurado, provavelmente precisará instalar um novo Ubuntu limpo. Então, você terá que se esforçar para configurar o sistema corretamente pela primeira vez, mas, a partir daí, o instantâneo se tornará sem esforço . E sem esforço eu quero dizer um comando, usando scripts pré-configurados.
- Inicialize o ubuntu live cd (sem instalação ainda .. apenas o live cd)
- Acessórios abertos - & gt; Terminal
-
Estaremos limpando o disco rígido! Por favor, faça backup de qualquer coisa importante antes de passar por este estágio.
Primeiro, vamos remover as partições existentes:
# fdisk /dev/sda Enter 'd' to delete - enter for as many partitions you have > d > <enter> ... Enter 'w' to write down changes > w
-
Crie a partição de inicialização e o restante da unidade como a outra partição
# fdisk /dev/sda > n To create a new partition. > p For Boot Primary partition. > 1 Press <enter> to accept the default start sector. Enter: > +512M To give the boot partition a size of 512MB > n To create (another) new partition. > p Should be Primary too. > <enter> To accept the default value of 2 (the second partition) > <enter> To accept the default start sector > <enter> To accept the whole disk > t To change the type of the second partition to LVM > 2 To choose the second partition > 8e To set the type to 'LVM Linux' > w To write changes and exit.
Para verificar se as alterações funcionaram bem, execute:
# fdisk --list
Você deve receber algo assim:
Device Boot Start End Blocks Id System /dev/sda1 2048 524287 261120 83 Linux /dev/sda2 524288 488397167 243936440 8e Linux LVM
-
Remova todos os grupos de volumes / volumes lógicos anteriores:
# lvdisplay
Exibirá os volumes lógicos que você pode ter no sistema
# lvremove <existing_logical_volume_name>
Se qualquer instalação de volume que possa interferir nesta instalação precisar ser removida.
# vgdisplay
mostrará qualquer grupo de volumes existente no sistema
# vgremove <existing_volume_group>
O mesmo que para os grupos de volumes.
-
Crie o grupo de volume 'vgsnap'
# vgcreate vgsnap /dev/sda2
Deve resultar em:
Volume group "vgsnap" successfully created
-
Crie o volume lógico
# lvcreate --extents 100%FREE --name lvroot vgsnap
O volume lógico raiz, começando com 100% do dispositivo.
# lvresize --size -30G /dev/mapper/vgsnap-lvroot
Isso tirará 30G para swap & amp; volumes de instantâneos. Claro que você pode escolha tamanhos menores para o swap / instantâneo.
> 'y' for the warning shown.
E crie o volume de troca:
# lvcreate --size 15G --name lvswap vgsnap
Observação: deixamos agora 15G de espaço em disco não utilizado, reservado para o instantâneo futuro.
-
Instalando o Ubuntu
Feche o terminal e inicie o instalador.
Escolha "Usar LVM ..." (Você também pode optar por habilitar toda a criptografia de disco - mas eu não testei ..)
Selecione "Algo mais" e pressione continuar. Neste estágio, você encontrará um conjunto de volumes / dev / mapper / ... definidos. Alguns deles são gerados automaticamente (lvsnap- *) - você pode ignorá-los por enquanto.
Selecione: / dev / mapper / volume de vgsnap-lvroot. Escolha "ext4" como formato e monte como "/"
Selecione: / dev / mapper / vgsnap-lvswap volume e escolha "área de troca"
Se você for criar uma unidade criptografada (não tenho idéia se isso funcionaria com os instantâneos?), provavelmente você desejará selecionar / dev / sda2 e marcar o "volume para criptografia". Não testei embora ..
Nota: O 15G não usado é deixado livre para o volume do instantâneo.
Selecione: partição / dev / sda1. Formate-o como 'ext2' e monte-o como '/ boot'
Abaixo - escolha: / dev / sda1 partição como boot
Instale!
Usando o instantâneo
Os passos seguintes mostram como usar o instantâneo a qualquer momento:
-
Montando o instantâneo:
Crie o volume do instantâneo
# lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
Crie o diretório de montagem
# mkdir /mnt/vgsnap-lvsnap
Monte o instantâneo como montagem somente leitura
# mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
O instantâneo está ativado!
Neste ponto, você pode começar a bagunçar o sistema, instalar drivers beta e até mesmo (não! Isso é inapropriado).
De agora em diante, você pode a qualquer momento (até onde o tamanho do instantâneo fornece ...) retornar ao estado anterior ou, se estiver satisfeito com o novo visual - mantenha-o.
-
Monitoramento automático de espaço em disco livre de volume de instantâneo: Usando uma versão ajustada do script fornecida aqui: Ссылка Criei o script monitor_snapshot .
Como usar / instalar? - Muito parecido com o link acima:
# cd /etc/cron.hourly # copy /home/<user>/Downloads/monitor_snapshot # chmod +x monitor_snapshot
Antes de executá-lo pela primeira vez, edite os valores nele, como o seu endereço de e-mail (para onde as notificações serão enviadas, etc.) Se configurado corretamente, o daemon do cron executará o script a cada X horas / dias - conforme você decidir - e o notificará quando o instantâneo estiver prestes a ficar cheio.
Para testar a execução do script:
# sh /etc/cron.hourly/monitor_snapshot
Ele imprimirá a porcentagem (número) de espaço livre no instantâneo.
Importante! Depois de concluir os testes / instalações - reverter ou manter as alterações - e umount do instantâneo!
-
Reverter as alterações: (Veja o script rollback_snapshot , com as seguintes instruções nele, link no final do documento )
# lvconvert --merge /dev/vgsnap/lvsnap
Isso também desmontará o instantâneo, mas descartará qualquer alteração. Além disso - Você verá um aviso que sugere que a reversão ocorrerá somente na próxima ativação, portanto:
# reboot
Observação: se você pular a mesclagem, suas alterações serão confirmadas assim que você montar o instantâneo.
-
Confirmando alterações - desmontando o instantâneo: (Veja o script commit_snapshot , com as seguintes instruções nele - link no final do documento )
# umount /mnt/vgsnap-lvsnap Will unmount (commit0 the snapshot # lvremove /dev/mapper/vgsnap-lvsnap # rm -rf /mnt/vgsnap-lvsnap/ # rm /etc/cron.hourly/monitor_snapshot Remove the cron daemon script (that is unused)
-
Reinstalar o instantâneo: (Veja o script remontar , com as seguintes instruções nele - link no final do documento ) Praticamente como antes:
# lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot # mkdir /mnt/vgsnap-lvsnap # mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
Se você salvou o monitor_snapshot no seu diretório home, poderá restaurá-lo novamente:
# cp /home/<user>/monitor_snapshot /etc/cron.hourly/ # chmod +x /etc/cron.hourly/monitor_snapshot
Isso é tudo pessoal! As seguintes instruções são apenas para desistentes;)
-
Descartar o volume do instantâneo (se não for mais necessário)
# rmdir /mnt/vgsnap-lvsnap # lvremove /dev/vgsnap/lvsnap
(Você também pode querer redimensionar a partição raiz ou trocar para ocupar os 15G perdidos reservados para swap)
-
Descartando o grupo de volumes - Possível apenas removendo os volumes do grupo de volumes, o que provavelmente significa excluir a instalação do sistema operacional. Mas, claro, não há necessidade real de remover o grupo de volumes ...
Para remover o grupo de volumes:
# vgremove vgsnap
Nota Importante! - a formatação / execução do fdisk e a remoção de todas as partições NÃO removerão os volumes nem o grupo, já que eles estão escritos em uma parte diferente da unidade ... remova as instruções fornecidas acima e remova os volumes e o grupo, se necessário.