Instalação avançada do Debian com Btrfs + timeshift-autosnap-apt + Zram + home encriptado (UEFI/GPT)

Um simples manual com o passo a passo para instalar Debian de forma que seja compatível com o Timeshift e crie pontos de restauração de forma automática, aproveitando as opções do sistema de arquivos Brtfs. Também inclui o uso de zram e encriptação do diretório "home" do usuário.

[ Hits: 24.878 ]

Por: Xerxes em 15/09/2022


Instalação - subvolumes



Um subvolume do sistema Btrfs é um conjunto lógico de dados que pode ser montado e gerenciado separadamente do volume principal. Ele fornece um meio para dividir um único volume em vários compartimentos lógicos, cada um com suas próprias propriedades e permissões. Isso pode ser útil para gerenciar diferentes conjuntos de dados com diferentes níveis de acesso ou para criar pontos de restauração individuais para diferentes partes do sistema.

Timeshift só aceita os subvolumes com os nomes "@" e "@home". Por tanto, teremos que criá-los antes de instalar o sistema básico.

Para isso teremos que abrir um novo terminal com Ctrl+Alt+F2.

Então pressione Ctrl+Alt+F2.

Verá a seguinte mensagem:
Pressione Enter para iniciar.
Este é o BusyBox. O busybox é um programa que fornece um conjunto básico de comandos Unix em um único executável. Ele foi criado com o objetivo de fornecer uma alternativa mais leve para os programas de linha de comando padrão, como o GNU coreutils.

Poderá ver as partições que foram criadas e montadas com o comando:

# df -h

O comando "df -h" do busybox mostra o tamanho total, o tamanho livre e o tamanho ocupado de todos os dispositivos de armazenamento montados no sistema, incluindo discos rígidos, discos SSD, unidades flash USB e cartões SD. Ele também mostra a porcentagem de espaço livre e ocupado de cada dispositivo.
Obs.: para este artigo, feito em máquina virtual, as partições estão identificadas como vda1 e vda2. No seu caso pode ser diferente, como sda1 e sda2 ou até mesmo nvmen0n1p1 e nvmen0n1p2. Mas o procedimento é igual.

Antes de criarmos os subvolumes compatíveis com Timeshift, devemos desmontar as partições que estão em "/target" com o comando:

# umount -rl /target

O comando "umount -rl /target" força o sistema a desmontar o sistema de arquivos montado em /target e, se for necessário, também desmonta todos os sistemas de arquivos que estejam montados no /target.

Se quiser, execute "df -h" novamente para confirmar que não há mais partições montadas em /target:
Agora, precisaremos montar a partição raiz em outro lugar, para trabalharmos nelas. Usaremos o diretório "/mnt".

# mount /dev/vda2 /mnt

O objetivo, relembro, é termos dois subvolumes: "@" e "@home".

Ao entrarmos no diretório /mnt com:

# cd /mnt

Poderemos ver um subvolume já criado (@rootfs), com o comando:

# ls

Vamos renomeá-lo simplesmente para @:

# mv @rootfs @

Conferindo:

# ls

Em seguida crie o subvolume @home:

# btrfs su cr @home

Confira:

# ls

Em seguida, teremos que montar o subvolume "@" em target novamente, mas aplicando as opções desejadas para o sistema Btrfs:

# mount -o subvol=@,ssd,defaults,noatime,space_cache,autodefrag,discard,compress-force=zstd:15 /dev/vda2 /target

O parâmetro "-o" é usado para especificar as opções que serão usadas ao montar o dispositivo. No comando acima, as opções especificadas são "subvol=@", "ssd", "defaults", "noatime", "space_cache", "autodefrag" e "discard".

Em resumo este comando monta o sistema de arquivos em /dev/vda2 com as opções escolhidas, que são:
  • subvol=@ - Especifica que a unidade deve ser montada como um subvolume. No nosso caso, com o nome "@".
  • ssd - otimiza a montagem para discos SSD.
  • defaults - Utiliza as opções padrão de montagem.
  • noatime - Noatime é uma opção de montagem que evita a atualização do timestamp quando um arquivo é acessado. Isso pode ser útil para aumentar o desempenho em sistemas de arquivos que fazem muito uso do timestamp, como o btrfs.
  • space_cache - A opção de montagem space_cache faz com que o sistema de arquivos use um cache de espaço para as operações de leitura e gravação. Isso pode melhorar o desempenho do sistema de arquivos em algumas situações.
  • autodefrag - Habilita a defragmentação automática. A opção de montagem autodefrag é uma ferramenta que pode ser usada para otimizar o desempenho do sistema e reduzir o tempo de inicialização. Ele analisa o disco rígido e, em seguida, reorganiza os arquivos para que eles sejam carregados mais rapidamente.
  • discard - Descarta os blocos não utilizados, força o sistema a ignorar as áreas não utilizadas do disco e, portanto, não as aloca. Isso pode ser útil para alguns dispositivos de armazenamento, como unidades de estado sólido, que podem se beneficiar de um maior desempenho se as áreas não utilizadas do disco rígido não forem alocadas.
  • compress-force=zstd:15 - Força a compressão do sistema de arquivos com o algoritmo zstd e nível de compressão 15. Faz com que os arquivos sejam compactados para economizar espaço.

Com excessão do "ssd" e do "compress-force=zstd:15", as outras opções eu copiei de uma instalação do Debian em Live CD, que adiciona tais opções automaticamente. Fiz uma dica sobre isso em:
Crie o diretório "efi" em "/boot", onde será montado a partição de boot:

# mkdir -p /target/boot/efi

Crie o diretório "home" onde será montado o subvolume @home:

# mkdir /target/home

Monte o "@home" em /target/home. O comando é quase igual ao comando anterior para o subvolume "@":

# mount -o subvol=@home,ssd,defaults,noatime,space_cache,autodefrag,discard,compress-force=zstd:15 /dev/vda2 /target/home

E monte a partição de boot:

# mount /dev/vda1 /target/boot/efi

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação - download, localidade e rede
   3. Instalação - nome da máquina, usuário e relógio
   4. Instalação - discos
   5. Instalação - subvolumes
   6. Instalação - fstab
   7. Instalação - finalização
   8. Timeshift-autosnap-apt
   9. Zram, Encriptação da home e conclusão
Outros artigos deste autor

Três distros inspiradas no Mac OS

Aprendendo Inglês em casa usando o Android

Porque eu uso Linux Mint

O mínimo que você precisa saber sobre o terminal (parte 1)

Roubando bits - Receita para cálculo de sub-redes

Leitura recomendada

Configuração da rede no Conectiva 10

Balanceamento de links + redundância + acesso remoto + sites de bancos

Bacula no Debian Lenny

Zenwalk Core: Para quem só quer o essencial

Placa de rede wireless (RT61STA) com SuSE

  
Comentários
[1] Comentário enviado por hiltongil em 16/09/2022 - 12:19h


Bacana.
O Spiralllinux acho que já é basicamente esse Debian pronto (sem a parte de criptografia).
Outro ponto a pensar é o uso do LUKS com LVM que em tese oferece melhor desempenho do que a criptografia apenas da pasta.

[2] Comentário enviado por xerxeslins em 16/09/2022 - 12:57h


[1] Comentário enviado por hiltongil em 16/09/2022 - 12:19h


Bacana.
O Spiralllinux acho que já é basicamente esse Debian pronto (sem a parte de criptografia).
Outro ponto a pensar é o uso do LUKS com LVM que em tese oferece melhor desempenho do que a criptografia apenas da pasta.


Interessante! Ainda testarei esse SpiralLinux!

[3] Comentário enviado por Gustavo_fm em 17/09/2022 - 18:05h

Olá, parabéns pelo artigo.

Só um adendo, quando você colocou "Suporte para discos de até 2 TB" nas vantagens da GPT creio que seria "Suporte para discos maiores que 2 TB", não?

[4] Comentário enviado por xerxeslins em 18/09/2022 - 13:40h


[3] Comentário enviado por Gustavo_fm em 17/09/2022 - 18:05h

Olá, parabéns pelo artigo.

Só um adendo, quando você colocou "Suporte para discos de até 2 TB" nas vantagens da GPT creio que seria "Suporte para discos maiores que 2 TB", não?


Exato! Corrigi. Obrigado.

[5] Comentário enviado por maurixnovatrento em 23/10/2022 - 12:38h


Muito bom o artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10

[6] Comentário enviado por removido em 01/01/2023 - 09:50h

Excelente artigo!

Instalei o Mint com btrfs e ele já cria automaticamente os subvolumes @ (/) e @home (/home), provavelmente no Ubuntu e outros derivados também seja assim por default.
Só tive que editar o fstab para adicionar o compress=zstd na pós-instalação.

Sobre o timeshift-autosnap, um complemento que vale mencionar é que no repositório tem referência sobre o projeto "grub-btrfs", que cria automaticamente as entradas no menu do grub ao fazer snapshots. Acho ideal para esse tipo de configuração.

[7] Comentário enviado por caslubas em 11/03/2023 - 20:12h


Excelente artigo, mas tem uma opção para ter um "auto-apt" para servidores, que não tem interface gráfica?
A ideia seria eles gerar um backup antes de executar o apt...
Como funciona no opensuse, sempre que utilizamos o zypper.

Carlos Alberto

[8] Comentário enviado por xerxeslins em 20/07/2023 - 23:09h

Fui seguir o artigo hoje, para Debian 12 e vi que está desatualizado. Detalhes mudaram.

No fstab tem que colocar "space_cache=v2" e não apenas "space_cache".



--
Chega uma hora na vida que você só quer bater o prego e não perder tempo estudando a ciência da construção de um martelo.

[9] Comentário enviado por caslubas em 02/09/2023 - 20:39h


[8] Comentário enviado por xerxeslins em 20/07/2023 - 23:09h

Fui seguir o artigo hoje, para Debian 12 e vi que está desatualizado. Detalhes mudaram.

No fstab tem que colocar "space_cache=v2" e não apenas "space_cache".



Pra mim, só deu certo, depois de substituir "defaults" por "rw", além da dica acima, o sistema iniciava somente em modo de leitura,,,

Mais uma vez obrigado pelo conhecimento compartilhado...

[10] Comentário enviado por xerxeslins em 10/11/2023 - 10:41h


[9] Comentário enviado por caslubas em 02/09/2023 - 20:39h


[8] Comentário enviado por xerxeslins em 20/07/2023 - 23:09h

Fui seguir o artigo hoje, para Debian 12 e vi que está desatualizado. Detalhes mudaram.

No fstab tem que colocar "space_cache=v2" e não apenas "space_cache".



Pra mim, só deu certo, depois de substituir "defaults" por "rw", além da dica acima, o sistema iniciava somente em modo de leitura,,,

Mais uma vez obrigado pelo conhecimento compartilhado...


Bom saber! Obrigado! No futuro, quando for fazer isso de novo, eu refaço o teste.

[11] Comentário enviado por mariojuniorjp em 22/07/2024 - 01:18h

Na parte da @home, dá o seguinte erro aqui:

mount: mounting /dev/sda1 on /target/home failed: invalid argument.

[12] Comentário enviado por xerxeslins em 22/07/2024 - 09:38h


[11] Comentário enviado por mariojuniorjp em 22/07/2024 - 01:18h

Na parte da @home, dá o seguinte erro aqui:

mount: mounting /dev/sda1 on /target/home failed: invalid argument.


Assim que eu puder vou refazer os passos aqui e se achar algo pra atualizar, eu atualizo.

[13] Comentário enviado por xerxeslins em 23/07/2024 - 12:44h


[11] Comentário enviado por mariojuniorjp em 22/07/2024 - 01:18h

Na parte da @home, dá o seguinte erro aqui:

mount: mounting /dev/sda1 on /target/home failed: invalid argument.


Olá! Eu segui os passos do artigo com Debian 12. Nessa parte aí funcionou normalmente, mas como é máquina virtual, ficou vda2 e não sda2. Você mostrou um erro usando sda1. Não deveria ter usado sda2? Tente novamente com sda2. Talvez seja esse o problema.


[14] Comentário enviado por Velho008 em 01/11/2024 - 21:49h

gente, sou novo no linux e decidi começar direto aqui, enfim, segui todos os passos corretamente, mas ao fazer o passo "/mnt # mount -o subvol=@home,ssd,rw,noatime,space_cache=v2,autodefrag,discard,compress-force=zstd:15 /dev/sda2 /target/home"
recebo apenas a mensagem "mount: mounting /dev/sda2 on /target/home failed: invalid argument"
as mudanças no codigo foram por eu estar usando a versão Debian 12, e nos comentarios recomendavam as alterações ("defaults" para "rw" e "space_cache" para "space_cache=v2"
tambem me lembrei de usar sda2 ao invés de vda2 por eu não estar em uma maquina virtual
inclusive acabei tentando todas as combinações possiveis das mudanças(default/rw, space_cache/=v2), nenhuma retornou algo diferente de "mount: mounting /dev/sda2 on /target/home failed: invalid argument"

[15] Comentário enviado por xerxeslins em 02/11/2024 - 15:06h


[14] Comentário enviado por Velho008 em 01/11/2024 - 21:49h

gente, sou novo no linux e decidi começar direto aqui, enfim, segui todos os passos corretamente, mas ao fazer o passo "/mnt # mount -o subvol=@home,ssd,rw,noatime,space_cache=v2,autodefrag,discard,compress-force=zstd:15 /dev/sda2 /target/home"
recebo apenas a mensagem "mount: mounting /dev/sda2 on /target/home failed: invalid argument"
as mudanças no codigo foram por eu estar usando a versão Debian 12, e nos comentarios recomendavam as alterações ("defaults" para "rw" e "space_cache" para "space_cache=v2"
tambem me lembrei de usar sda2 ao invés de vda2 por eu não estar em uma maquina virtual
inclusive acabei tentando todas as combinações possiveis das mudanças(default/rw, space_cache/=v2), nenhuma retornou algo diferente de "mount: mounting /dev/sda2 on /target/home failed: invalid argument"


Olá! Acabei de refazer usando virtualbox e debian 12.

Faz tempo que não realizo um procedimento assim... openSUSE tem tudo isso automático.

Edit: não exatamente, mas recursos semelhantes.

Engraçado que dessa vez apareceu SDA ao invés de VDA. Talvez uma atualização do Virtualbox. Mas tirando isso, funcionou.

Vou gravar o trecho e colocar no YouTube.

Avisarei aqui.

[16] Comentário enviado por xerxeslins em 02/11/2024 - 15:27h

Segue vídeo para quem está encontrando o erro "failed: invalid argument".

Eu não explico o motivo dessa falha que alguns encontram, pois desconheço.

Mas o vídeo serve para quem quiser seguir por ele, os mesmos passos do artigo. A diferença é que usei Debian 12. Fora isso eu segui o artigo, me guiei por ele.

https://www.youtube.com/watch?v=4O9GWUJkPzU

A página 5 começa no minuto 6:00.

Obs.: não gravei tudo (referente ao artigo inteiro), pois quando comecei a gravar, minha intenção era gravar apenas a parte da página 5, (não pensei) e fiz a máquina virtual só com uma CPU e estava demorando muito para instalar o KDE Plasma. Mas serve para, talvez tirar a dúvida do procedimento da página 5, que aparentemente é a parte crucial.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts