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

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

Como transformar Salix OS em Slackware

Entendendo o boot-update

Elementary OS Freya

Incrementando os efeitos do Ubuntu

Acesso remoto pela Internet de forma simples usando TeamViewer

Leitura recomendada

Assistindo vídeos no XMMS

Instalando o Zabbix no CentOS

Criando um mirror LVM nível 1

Montando um Servidor de FTP

Guia pós-instalação do Fedora 18 (Spherical Cow)

  
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