Artigo atualizado em 04/06/2016, pois a distribuição Sabayon descontinuou o suporte à arquitetura x86 e removeu o suporte ao pacote media-gfx/digikam.
1. INTRODUÇÃO
1.1) No artigo anterior falei do Sabayon e de suas vantagens, agora vou explicar passo a passo como remasterizá-lo, ou seja, como criar uma nova imagem ISO pronta para instalar, com vários programas adicionais pré-instalados, a partir da imagem oficial. Isso é bastante útil tanto para se ter um sistema personalizado instalado em um pendrive ou DVD, quanto para fazer instalações em vários computadores, como em um laboratório de informática, em uma escola ou até mesmo em uma empresa. Economiza-se tempo e largura de banda.
Para tal tarefa existe o molecule, um programa que automatiza essa tarefa, mas nós não vamos usá-lo, primeiro para aprendermos mais a fundo o processo e depois por que ele não reaproveita a estrutura criada e cada vez que ele é executado, refaz tudo do zero. Todos os comandos seguintes devem ser dados como root. Lembre-se de que esse procedimento pode ser feito em qualquer distribuição, mas depende de alguns pacotes, como cdrtools, por exemplo.
2. PREPARANDO O AMBIENTE
2.1) Se estiver usando o Sabayon, instale o pacote molecule, apenas para satisfazer essas exigências.
equo i molecule
2.2) Crie um diretório chamado sabayon_remaster.
mkdir sabayon_remaster
2.3) E baixe dentro desse diretório a imagem diária, que é a mais atualizada, e fica em
ftp://sabayon.c3sl.ufpr.br/sabayon/iso/daily/Sabayon_Linux_DAILY_amd64_MATE.iso
Escolha a imagem adequada para o seu gosto. Eu escolhi o Mate.
cd sabayon_remaster wget ftp://sabayon.c3sl.ufpr.br/sabayon/iso/daily/Sabayon_Linux_DAILY_amd64_MATE.iso
2.4) Agora vai começar a brincadeira. Monte essa imagem.
mkdir imagem mount -o loop Sabayon_Linux_DAILY_amd64_MATE.iso imagem
2.5) Vamos copiar a estrutura da imagem de forma que possamos alterá-la. Note que aqui não precisaremos copiar o arquivo livecd.squashfs, pois ele vai ser gerado novamente. Então para evitarmos isso copiaremos todos os outros, um a um. Crie um diretório chamado cdroot.
mkdir cdroot cp imagem/autorun.inf cdroot cp imagem/BUILD_INFO cdroot cp imagem/livecd cdroot cp imagem/sabayon.ico cdroot cp imagem/cdupdate.sh cdroot cp imagem/pkglist cdroot cp imagem/sabayon.bat cdroot cp -fr imagem/boot cdroot cp -fr imagem/efi cdroot cp -fr imagem/isolinux cdroot cp -fr imagem/qemu cdroot cp imagem/id* cdroot cp -fr imagem/SecureBoot cdroot
2.6) O arquivo que contem a distribuição propriamente dita é o live.squashfs. Vamos montá-lo também para termos acesso e podermos copiar o seu conteúdo. Para isso crie um diretório chamado squash.
mkdir squash mount -o loop imagem/livecd.squashfs squash
2.7) Agora vamos copiar o conteúdo dessa imagem para o diretório root, que também criaremos.
mkdir root cp -Rapv squash root
2.8) Isso demora um pouco. É hora de fazer as alterações. Para isso vamos primeiro associar o nosso diretório /proc ao /proc da estrutura que acabamos de criar. Isso é necessário principalmente para atualizar o kernel.
mount -o bind /proc root/proc
2.9) Caso você seja uma feliz usuário do Sabayon, pode aproveitar os seus pacotes já baixados, se existirem.
cp -fr /var/lib/entropy/client/packages/packages root/var/lib/entropy/packages
2.10) Vamos enganar o Linux fazendo-o acreditar que a raiz do sistema é o diretório root criado por nós.
chroot root
3. ALTERANDO O SISTEMA VIRTUAL
3.1) De agora em diante todos os comandos dados afetarão apenas a distribuição virtual que estamos alterando. Vamos atualizar o repositório e a própria distribuição completa. Lembrando que você deve estar conectado à internet.
equo up ; equo u
3.2) Isso também pode demorar, principalmente caso a imagem que estiver usando esteja defasada e se você não aproveitou os pacotes da sua própria distribuição, como descrito no tópico 2.9. Uma vez atualizada está na hora de começarmos a instalar os pacotes adicionais. Para simplificar sugiro que crie um arquivo chamado programas.txt com o seguinte conteúdo (use o editor que preferir). São apenas sugestões de programas. Você pode retirar alguns a adicionar outros.
app-emulation/wine app-emulation/winetricks net-ftp/filezilla net-im/skype net-misc/teamviewer app-office/dia app-office/scribus app-office/libreoffice app-office/libreoffice-l10n-pt_BR app-office/ooextras app-editors/vim app-text/acroread app-dicts/aspell-pt app-dicts/myspell-pt media-sound/audacity media-sound/rhythmbox media-sound/grip media-gfx/blender media-gfx/gimp media-gfx/inkscape media-gfx/librecad media-video/smplayer media-video/vlc media-video/cheese app-cdr/k3b sci-astronomy/celestia sci-geosciences/googleearth www-client/google-chrome www-client/firefox app-misc/mc
3.3) Agora rode o seguinte comando:
for pacote in `cat programas.txt`; do equo i $pacote; done
Isso também pode demorar. Nesse ponto você será perguntado sobre várias licenças de software e é preciso aceitá-las para continuar. Digite 3 para todas as perguntas. Isso significará que você já conhece o teor de todas elas. Se não conhece e deseja conhecer pode escolher a opção 1 para cada uma delas.
3.4) Se quiser instalar o VirtualBox, tem um pequeno detalhe, os módulos são relativos ao kernel em uso. Digite os seguintes comandos:
equo i virtualbox-bin equo i virtualbox-modules#`uname -r` equo i virtualbox-guest-additions#`uname -r` echo vboxdrv > /etc/modules-load.d/virtualbox.conf echo vboxnetadp >> /etc/modules-load.d/virtualbox.conf echo vboxnetflt >> /etc/modules-load.d/virtualbox.conf
3.5) Se instalou o Teamviewer convém criar um arquivo para carregar o seu daemon automaticamente.
echo “/opt/teamviewer8/teamviewerd” > /etc/local.d/teamviewerd.start chmod 775 /etc/local.d/teamviewerd.start
3.6) Esta etapa está quase acabando. Vamos configurar e atualizar o clamav, ele pode ser útil para checar mídias que vieram do Windows e podem voltar pra lá.
cp /etc/freshclam.conf.sample etc/freshclam.conf freshclam
3.7) E por último vamos liberar espaço em disco apagando os pacotes que foram baixados, eles não serão mais necessários.
equo cleanup
3.8) Se quiser economizar mais espaço apague os arquivos de documentação.
rm -fr root/usr/share/doc/* rm -fr root/usr/share/man/* rm -fr root/usr/share/info/*
3.9) Para fechar com chave de ouro vamos definir um novo papel de parede. Vou dar um exemplo de como alterar o arquivo no Mate. Digite:
echo “[org/mate/desktop/background]” > /etc/dconf/db/site.d/00_site_settings echo “picture-filename='/usr/share/backgrounds/mate/papel_de_parede.jpg'” >> /etc/dconf/db/site.d/00_site_settings dconf update
3.10) Pronto, podemos sair do modo chroot.
exit
4. FINALIZANDO
4.1) Apague seus passos. Remova o arquivo .bash_history do sistema virtual.
rm root/root/.bash_history
4.2) Copie uma imagem com o nome papel_de_parede.jpg para root/usr/share/backgrounds/mate.
4.3) Vamos desmontar os sistemas de arquivos previamente montados.
umount root/proc umount squash umount imagem
4.4) E criar um arquivo livecd.squashfs novo, com o seu respectivo arquivo de checagem sha256
mksquashfs root cdroot/livecd.squashfs -noappend -comp xz -Xbcj x86 sha256sum cdroot/livecd.squashfs > cdroot/livecd.squashfs.sha256
Esse é o processo mais demorado, pois todos os arquivos são compactados. No meu caso aqui, 11G viraram 3.4G. Isso leva mais ou menos duas horas.
4.5) Por último vamos criar a nova imagem ISO. Aqui vale outra dica. Se quiser personalizar ou traduzir o menu do isolinux, que será apresentado no boot, edite o arquivo cdroot/isolinux/txt.cfg antes de rodar o próximo comando.
mkisofs -J -R -l -no-emul-boot -boot-load-size 4 -udf -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat -eltorito-alt-boot -no-emul-boot -eltorito-platform efi -eltorito-boot boot/grub/efi.img -V "Sabayon MATE (Nome Personalizado)" -o Sabayon_Linux_amd64_MATE_-`date +%Y%m%d`.iso cdroot
Sempre que quiser fazer novas alterações basta entrar no diretório sabayon_remaster e repetir o processo a partir do tópico 2.8
Por fim queime a imagem em um DVD ou use o Unetbootin para gerar um pendrive bootável.
E é só. Espero que tenha gostado e que seja útil. Até o próximo artigo.