CRIAR PENDRIVE BOOTÁVEL COM BASE NO SISTEMA INSTALADO
Já algum tempo venho procurando uma forma de criar um pendrive com um sistema personalizado nele sem precisar usar scripts e ferramentas ao menos acompanhar todo o processo, tendo um melhor entendimento de cada etapa.
Aqui vou compartilhar com vocês uma forma de fazer que permite inclusive que o sistema possa ser ajustado antes de ser inicializado e mesmo depois de inicializado pelo pendrive. É legal para manter todo o sistema atualizado. A desvantagem é que o sistema não é descompactado no boot a partir de uma imagem ou coisa assim, sendo possível apagar ou modificar arquivos.
Uma forma de contornar isso é criptografar a partição principal. Assim, somente você teria acesso aos arquivos do sistema do seu pendrive. Chato que peça senha. Mas é melhor do que os arquivos serem montados facilmente, apagados ou adulterados. Parece que existe uma abordagem com geração de chaves e que evitaria pedir senha o tempo todo no boot e em etapa mais na frente na inicialização. Essa parte complicada não será tratada nesse tutorial.
Preparação
Primeiro vamos preparar nosso pendrive para receber nosso sistema operacional customizado.
Verifique a partição correta do pendrive alvo:
sudo fdisk -l
sudo blkid
Crie a tabela de partições mais compatível mudando X para o correto do seu pendrive. Muita atenção nessa parte. Confirme nome correto do seu pendrive. Por exemplo: /dev/sdd. Faça isso antes de prosseguir para as linhas abaixo:
sudo parted /dev/sdX mklabel msdos
sudo parted /dev/sdX mkpart primary ext4 1MiB 100%
Atenção! O procedimento acima gera perdas de dados. Se seu pendrive contém arquivos, faça backup deles antes. Só rode essas linhas se tiver certeza de que é mesmo seu pendrive.
Crie a partição do sistema, trocando o X pelo do seu pendrive alvo:
sudo mkfs.ext4 /dev/sdX1
Crie o ponto de montagem :
sudo mkdir /mnt/pendrive
Monte a partição criada do pendrive que será a partição do sistema:
sudo mount /dev/sdX1 /mnt/pendrive
Passando o sistema operacional instalado para o pendrive
Faça a cópia do sistema para o pendrive. Personalize a linha abaixo para excluir da cópia mais subdiretórios não obrigatórios para o sistema funcionar e ficar enxuto:
rsync -av --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/home/*"} / /mnt/pendrive
Depois da cópia entre no arquivo /mnt/pendrive/etc/fstab e faça as correções. Use o uiid que conseguiu através do comando sudo blkid:
exemplo:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
#entrada para raiz
UUID=uid-da-particao-pendrive / ext4 discard,noatime,errors=remount-ro 0 1
Edite o arquivo sudoers(/mnt/pendrive/etc/sudoers) para colocar o futuro usuário genérico.
Faça a mesma coisa no arquivo lxdm ou gdm, colocando o autologin para o usuário que será criado.
Mudando o sistema por dentro via chroot e instalando o grub
Preparação para o chroot. Mude o /mnt/pendrive para o ponto de montagem que utilizou para a partição do pendrive com o sistema copiado
sudo mount --bind /dev /mnt/pendrive/dev &&
sudo mount --bind /dev/pts /mnt/pendrive/dev/pts &&
sudo mount --bind /proc /mnt/pendrive/proc &&
sudo mount --bind /sys /mnt/pendrive/sys
sudo mount --bind /run /mnt/pendrive/run
Usando chroot. Na linha abaixo basta mudar para o ponto de montagem correto.
sudo chroot /mnt/pendrive
A partir daqui você pode personalizar o seu sistema novo antes do primeiro uso. Mas vamos fazer a instalação do grub.
dpkg-reconfigure grub-pc
Confirme suas opções. Muita atenção quando chegar na parte de escolher onde instalar o grub. Escolha /dev/sdX. Sendo esse exatamente o do pendrive. Aqui não selecionei adicionar outros sistemas operacionais já que o pendrive poderá ser usado em outros PC's e essas outras entradas não vão funcionar.
Aproveite que está no chroot do pendrive e remova os usuários antigos com deluser. E adicione o usuário que você vai usar para login automático no gdm ou lxdm(exemplo:/etc/lxdm/lxdm.conf e modificar a linha "autologin=usuario").
Remova as referências a usuários antigos no sudoers e adicione o que criou.
Recomendo dar uma passada também em /etc/hostname e /etc/hosts. Também /etc/timezone e /etc/adjtime.
Outra coisa que você pode fazer para evitar ficar personalizando o desktop do zero e programas comuns é deixar algumas coisas em /etc/skel. Por exemplo, .config/mpv/mpv.conf. Ficaria assim: /etc/skel/.config/mpv/mpv.conf. Assim, toda vez que um usuário novo abrir um programa pela primeira vez ele vai copiar essas configurações antes de iniciar e já vai iniciar com as personalizações. Isso também vale para o Desktop e os atalhos.
Depois de todas as mudanças e ajustes que realizou segure ctrl e digite d. Ou dê exit ou logout.
Hora de desfazer as montagens:
sudo umount -f -R /mnt/pendrive/
Testando nosso novo pendrive e finalizando
Agora é hora de reiniciar o PC e testar o pendrive. Aqui o menu de boot é acionado com F8. Verifique como é na sua BIOS. Pode ser que tenha ainda que ativar compatibilidade do boot UEFI e Legacy ou só Legacy na sua BIOS.
Aqui o pendrive funcionou de primeira e pude continuar a personalização. Ajuste de permissões(como para o usuário poder montar as partições sem ficar pedindo senha) e o horário da máquina. Assim como já citei lá em cima, trocando o hostname do sistema do pendrive. Como dependendo da versão do USB pode demorar mais para carregar eu mudei para o LXDM selecionar o LXDE para como desktop. Mas você pode deixar outro como Cinnamon e tudo bem se estiver numa porta 3.0 ou 3.1.
Com alguns ajustes que fiz o sistema está ocupando entre 17GB e 19GB. Dá para deixar ainda mais enxuto. O negócio é priorizar o que você realmente vai usar e ferramentas úteis para manutenção e recuperação de sistemas instalados, além de realizar backups de arquivos importantes em sistemas que não inicializam mais.
Espero que tenha gostado. Sugestões para atualização e melhoria desse tutorial pode me pingar lá na Mastodon.
Gostou?
Inscreva-se no meu canal:
Paga um cafezinho para mim?
https://livepix.gg/meurefugionerd
QR Code do PIX |