Criando um Ubuntu personalizado

Esta contribuição está participando do sorteio da Mochila Targus Matrix. Envie seu texto e participe você também, você contribui com outros usuários e ainda pode faturar uma mochila novinha em folha para o seu laptop. Saiba mais sobre como participar.

Sobre o Autor:

Renan Brasil
http://www.renanbrasil.blogspot.com/

Serão necessários pelo menos 3.5GB de espaço em seu disco. Com tudo isso correto, vamos a instalação de pacotes necessários para a customização.

O primeiro pacote é o squashfs-tools (sistema de arquivos do Ubuntu);

O segundo pacote é o mkisofs (cria a imagem ISO da nossa distro).

O terceiro pacote é qemu (opcional, somente para verificar se a nossa distro está funcionando);

No Ubuntu, para instalar um pacote utilizo o seguinte comando:

# apt-get install squashfs-tools mkisofs qemu

Após tudo instalado, vamos agora carregar o módulo squashfs (nesse passo precisamos de senha de root).

$ sudo modprobe squashfs

Agora vamos criar o diretório onde iremos colocar nossa distro:

$ mkdir ~/live
$ mv ubuntu-versão.iso ~/live
$ cd ~/live

O ambiente está pronto!

Montando e extraindo a ISO

Criaremos um diretório para montarmos e extrair nossa distro, isso tudo dentro do diretório que criamos no começo (~/live):

$ mkdir mnt
$ mkdir extract-cd

Agora montaremos nossa distro:

$ sudo mount -o loop ubuntu-versão.iso mnt

Extrairemos a imagem ISO

$ rsync –exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

Vamos extrair o tipo de arquivo do sistema (squashfs). Criaremos o diretório (ainda dentro de ~/live):

$ mkdir squashfs

Montaremos o arquivo do sistema dentro de squashfs

$ sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs

criaremos um outro diretório para extrairmos o arquivo de sistema:

$ mkdir edit

Copiaremos tudo do diretório squashfs/ para edit/ com o seguinte comando

$ sudo cp -a squashfs/* edit/

Preparar o chroot

Para preparar o chroot precisamos de conexão com a net.

Copiaremos o resolv.conf do nosso sistema que estamos rodando na nossa máquina para a distro-personalite

$ sudo cp /etc/resolv.conf edit/etc/

Agora entraremos como chroot na distro-personalite (lembrando isso tudo dentro de ~/live)

$ sudo chroot edit/squashfs

(Se tudo estiver certo estamos dentro da distro-personalite)

Agora antes de mexer em qualquer coisa iremos montar o /proc e o /sys, com o seguinte comando

# mount -t proc none /proc
# mount -t sysfs none /sys

Vamos configurar umas variáveis do ambiente

# export HOME=/root
# export LC_ALL=C

Estamos com a distro pronta para ser alterada conforme sua necessidade.

Os pacotes padrões veremos da seguinte maneira

$ dpkg-query -W –showformat=’${Installed-Size} ${Package}\n’ | sort -nr | less

Caso queira remover pacotes use o seguinte comando

# apt-get remove –purge nomedospacotes

Se quiser adicionar pacotes

# apt-get install nomedospacotes

Se somente desejar atualizar os pacotes

# apt-get update e apt-get upgrade

Como a maioria já sabe a distro normalmente é de 698MB e em um CD cabe somente 700MB. Para não termos problemas de espaço iremos limpar algumas coisinhas,
como o apt e os arquivo /tmp e retiraremos o /etc/resolv.conf que usamos para a conexão com net.

# apt-get clean
# rm -rf /tmp/*
# rm /etc/resolv.conf

Agora iremos desmontar o sistema e sair do chroot:

# umount /proc
# umount /sys
# exit

DICA:

Caso você queira mudar o idioma de inicialização do gfxboot, depois de sair do chroot faça o seguinte:

$ touch extract-cd/isolinux/lang (no 7.04 é lang-list eu acho)
$ echo “pt_BR.UTF-8” > extract-cd/isolinux/lang

Finalizando a ISO

Aqui regêramos o mainfest:

$ chmod +w extract-cd/casper/filesystem.manifest
$ sudo chroot edit dpkg-query -W –showformat=’${Package} ${Version}\n’ > extract-cd/casper/filesystem.manifest
$ sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
$ sudo sed -ie ‘/ubiquity/d’ extract-cd/casper/filesystem.manifest-desktop

Aqui criaremos a imagem compactada do sistema

$ sudo rm extract-cd/casper/filesystem.squashfs
$ sudo mksquashfs edit extract-cd/casper/filesystem.squashfs (isso demora….)

Caso queira ajustar o nome da imagem

$ sudo vim extract-cd/README.diskdefines

Calcularemos o md5 da imagem

$ sudo -s
# cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt
# exit

Iremos agora compactar pra imagem ISO

$ cd extract-cd
$ sudo mkisofs -r -V “$IMAGE_NAME” -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../nome_do_CD.iso

Quem baixou o qemu e gostaria de ver se está funcionando, use o seguinte comando:

$ qemu -cdrom nome_do_CD.iso -boot d

Enxugado da versão original e de alguém que fez esse tutorial (só não me lembro onde peguei esse tutorial para colocar o nome do autor):

https://help.ubuntu.com/community/LiveCDCustomization