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.895 ]

Por: Xerxes em 15/09/2022


Zram, Encriptação da home e conclusão



Instalação e configuração do Zram

Abra o terminal e execute o seguinte para instalar zram:

sudo apt install zram-tools

Depois acrescente ao final do arquivo "/etc/default/zramswap" as linhas ALGO=zstd e PERCENT=60.

echo -e "ALGO=zstd PERCENT=60" | sudo tee -a /etc/default/zramswap

A linha "PERCENT=60" configura o zramswap para usar até 60% da memória RAM disponível como memória virtual comprimida. A linha "ALGO=zstd" configura o algoritmo de compressão a ser usado pelo zramswap.

Habilite e inicie o serviço zramswap:

systemctl enable --now zramswap.service

Verifique sua swap com:

sudo swapon -s
$ free -h


O comando "sudo swapon -s" mostra os dispositivos de swap em uso, bem como o tamanho e o status de cada um. O comando "free -h" mostra o uso atual da memória RAM e da memória swap em formato humano legível.

Encriptação do diretório home

O diretório home encriptado não irá exigir nenhuma senha extra além da senha do login do usuário, como é feito normalmente. Mas mesmo que alguém tenha acesso ao sistema como root, e altere a senha do seu usuário, não conseguirá acessar os seus arquivos. É necessário saber a senha original.

Instale os softwares necessários:

# sudo apt install ecryptfs-utils cryptsetup lsof

Os três pacotes são utilizados para criptografia de arquivos no sistema Debian. O ecryptfs-utils fornece um conjunto de ferramentas para gerenciar o sistema de arquivos criptografado e cryptsetup fornece um utilitário para configurar e gerenciar dispositivos de criptografia. O lsof é um utilitário que pode ser usado para listar os arquivos que estão sendo usados pelo sistema.

Para realizar o processo é preciso ter privilégio de administrador. Crie uma senha de root, se não tiver:

# sudo su
# passwd


Reinicie o computador, e quando estiver na tela de login, NÃO logue.

Abra um novo tty, por exemplo: Ctrl+Alt+F2.

Faça login com usuário root.

Ative o módulo:

# modprobe ecryptfs

O comando "modprobe ecryptfs" carrega o módulo ecryptfs, que é um sistema de criptografia de arquivos para o Linux. Ele permite que os usuários criptografem arquivos e pastas pessoais para protegê-los de acesso não autorizado.

Criptografe o diretório do usuário:

# ecryptfs-migrate-home -u SEU-USUÁRIO

Logue como seu usuário:

# su SEU-USUÁRIO

Vá para sua home:

# cd

Monte o diretório privado do usuário:

ecryptfs-mount-private

Depois:

ecryptfs-unwrap-passphrase

Armazene esse valor em algum lugar seguro, e mesmo se você esquecer sua senha de login, ou algo der errado, você poderá recuperar seus arquivos criptografados com o ecryptfs-recover-private. Para isso certifique-se de que o diretório encriptado está montado. Se não estiver, você poderá montá-lo usando o comando ecryptfs-mount-private. Execute o comando ecryptfs-recover-private. Será perguntado se sabe a senha, como esqueceu/perdeu, responda NO. Insira aquela outra senha, anotada em lugar seguro e pressione enter. O comando ecryptfs-recover-private irá criar um diretório chamado "recovered" no diretório atual. Esse diretório conterá os arquivos que foram recuperados.

Desmonte o diretório privado:

ecryptfs-umount-private

Saia:

exit

Se logar como root, novamente, poderá ver que no diretório home haverá uma cópia do diretório do seu usuário seguido de "." e algumas letras, exemplo: xerxes.c2jNmEle. Se tudo deu certo, delete este diretório: ele tem seus arquivos sem criptografia, e reinicie.

Se, ao invés de logar, abrir um tty (Ctrl+Alt+F2), logar como root (ou outro usuário) e olhar o diretório encriptado, perceberá que não terá acesso aos arquivos.

Conclusão

Debian é a distribuição "mãe" da grande maioria das distribuições existentes, incluindo todas aquelas derivadas do Ubuntu. Ele é oferecida de diversas formas: netinstall, live-cd/usb, DVD, CD, com ou sem programas livres etc. Pode ser instalada de várias maneiras, inclusive através de "debootstrap" (uma forma de instalar bem manual, que lembra a instalação Arch Linux sem script). Sua versão estável pode não ter pacotes tão novos (o que é melhor para alguns casos), mas se o usuário quiser pacotes mais recentes, pode usar o repositório "testing" e obter uma espécie de Debian "rolling release". Significa que Debian é uma das distros mais flexíveis existentes.

Outra opção para instalar o Debian com Btrfs compatível com Timeshift é usando uma imagem Live (já carrega um ambiente gráfico e tem o instalador Calamares), com ele os subvolumes "@" e "@home" são criados automaticamente.

O artigo serve para mostrar que apesar das limitações de um dos instaladores gráficos do Debian, o usuário não fica impossibilitado de fazer o que quiser. Sempre há outras maneiras, ainda mais se tratando de uma distribuição robusta, amplamente utilizada, que conta com quase 30 anos de vida.

Fontes:
Página anterior    

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

Instalação do Gentoo em HD Externo para dual boot com Windows

Acesso remoto para principiantes

Porque eu uso Linux Mint

Introdução ao Arch Build System

Fresh Player no Slackware (sim, FRESH)

Leitura recomendada

Configuração do Compiz Fusion pós instalação

Red Hat e Fedora - Um guia básico de configuração

Instalando o Zabbix no CentOS

Instalando Servidor ELASTIX (PABX-IP)

coLinux - Linux dentro do Windows

  
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