Customizando LiveCD do Ubuntu 7.04

De gutocarvalho.net

Conteúdo

[editar] quais as vantagens de se customizar uma distro?

Você leva horas ou as vezes dias para instalar sua distro Ubuntu até arrendodá-la definitivamente, instala vários programas, customiza arquivos de configuração, compila um kernel específico, configura um LTSP ou algum outro serviço, que tal fazer isto apenas uma vez e depois fechar esta imagem em um LIVECD, na próxima vez que for instalar seu Ubuntu já estará tudo lá configurado, pronto para usar, do jeito que você gosta, sem perder tempo :)

Vamos para um outro exemplo, você se você usa o Ubuntu 7.04 com LTSP, vamos supor que você instalou um Ubuntu e deseja aplicar o tutorial LTSP Pantaneiro nele, essa configuração leva um tempo e depois você ainda precisa instalar alguns outros programas que vão ser utilizados no telecentro. Customizando um Ubuntu você pode aplicar o tutorial LTSP, instalar todos os programas que necessita, configurar a identidade visual, fechar a distro e quando for instalar um novo telecentro poderá fazer isto em apenas 25 minutos.

As vantagens são evidentes e reais, e o processo bem simples.

O segredo para isto tudo é o sistema de arquivos squashfsFS. O SquashFS é um sistema de arquivos somente leitura, compactado, para uso em linux, ele é geralmente utilizado nos LiveCDs. O Squashfs comprime os arquivos, os inodes e os diretórios, além disto suporta block sizes maiores que 1024 KB para uma melhor compressão dos dados. Site do projeto http://squashfs.sourceforge.net/

Procure tirar dúvidas deste tutorial no fórum apropriado: http://gutocarvalho.net/phpBB3


[editar] iniciando trabalhos: se tornando root

sudo su


[editar] preparando o sistema

aqui vamos preparar o sistema para customização


[editar] instalando pré-requisitos

apt-get install squashfs-tools mkisofs


[editar] copiando distro da internet

wget ubuntu-desktop-7.04-i386.iso


[editar] criando diretórios

mkdir /diretorio
mkdir  -p /diretorio/mnt
mkdir  -p /diretorio/custom
mkdir  -p /diretorio/isos
mkdir -p /diretorio/mnt/cd
mkdir -p /diretorio/mnt/squashfs
mkdir -p /diretorio/custom/cd
mkdir -p /diretorio/custom/squashfs


[editar] montando cd

mount -o loop ubuntu-desktop-7.04-i386.iso /diretorio/mnt/cd


[editar] copiando dados do cd para diretorio local

rsync --exclude=/casper/filesystem.squashfs -a /diretorio/mnt/cd/ /diretorio/custom/cd


[editar] copiando conteúdo do squashfs

modprobe squashfs
mount -t squashfs -o loop /diretorio/mnt/cd/casper/filesystem.squashfs /diretorio/mnt/squashfs
cp -av /diretorio/mnt/squashfs/* /diretorio/custom/squashfs

pronto agora podemos iniciar o processo de customização

não se esqueça de desmontar /diretorio/mnt/squashfs e depois /diretorio/mnt/livecd


[editar] customizando a distro

agora vamos mexer na imagem da distro e alterar o que precisarmos


[editar] abrindo chroot para customizar o livecd

antes vamos copiar arquivos necessários

sudo cp /etc/resolv.conf /etc/hosts /diretorio/custom/squashfs/etc/

agora vamos abrir a distro

chroot /diretorio/custom/squashfs


[editar] montando pseudo-filesystem

precisamos montar estes sistemas de arquivos

mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root

[editar] removendo idiomas desnecessários (vai ficar somente PT, PT_BR e EN_US)

apt-get remove --purge `dpkg-query -W --showformat='${Package}\n' | grep language-pack | egrep -v '\-en'| egrep -v '\-pt'`


[editar] instalando pacotes

vamos instalar os pacotes

apt-get install inkscape mozilla-locale-pt-br broffice.org

cuidado para não instalar muita coisa para não passar do tamanho do CD ai terá que usar um DVD para queimar a ISO, mas de qualquer forma não será problema, o DVD vai bootar e instalar normalmente.

ajuste as configurações que forem necessárias


[editar] ajustando identidade visual

[editar] icone do menu do gnome

se quiser alterar o ícone padrão do menu do GNOME o caminho para ele é:

/usr/share/pixmaps/gnome-logo-icon-transparent.png


[editar] wallpapers

se quiser alterar o wallpaper padrão e os wallpapers disponíveis por padrão no gnome, coloque os arquivos em

/usr/share/backgrounds

e ajuste o arquivo

/usr/share/gnome-background-properties/ubuntu-wallpapers.xml


[editar] splash de inicializacao do liveCD

Sabe aquela imagem que aparece na hora de escolher como vai instalar, depois das mensagens da BIOS, então vou mostrar aqui como customizá-la.

Se você for na raiz do LIVECD vai encontrar um diretório chamado ISOLINUX, lá temos 2 imagens, uma chamada splash.pcx e outra chamada splash.rle , são elas responsável por aquela tela inicial de instalação, abaixo vamos apreder a recriá-la.

Criando a SPLASH.PCX

O nome da imagem deve ser splash.pcx 

Você precisa criar sua tela no Inkscape com o tamanho 640x480. 

Salve como PNG normalmente. 
 
Vamos abrir no GIMP

Vá em Imagem/Modo/Indexar

Selecionar 16 cores, mande converter.

Agora salve a imagem como PCX, vai converter novamente.

Criando a SPLASH.RLE

Você precisa criar sua tela no Inkscape com o tamanho 640x400, apenas redimensione o primeiro SVG, é mais fácil.
 
Salve como PNG

Vamos abrir no GIMP

Vá em Imagem/Modo/Indexar

Selecionar 14 cores, 

agora vá em Retícula, marque a opção Floyd-Steinberd (normal),

Mande converter

Salve como PPM modo CRÚ.

instale o pacote SYSLINUX

apt-get install syslinux

ele é necessário por que traz um programa que vamos usar para converter a imagem PPM para RLE.

depois de instalado rode o comando

ppmtolss16 '#d0d0d0=7' < splash.ppm > splash.rle

pronto agora é só mover os arquivos splash.pcx e splash.rle para o diretório ISOLINUX do CD a ser gerado.

[editar] finalizando configurações e fechando o cd

Abaixo os procedimentos para fechar a imagem e gerar a nova ISO.


[editar] limpando o cache de pacotes

apt-get clean


[editar] removendo arquivos de configuração perdidos no sistema

for i in `dpkg --list|grep ^rc|awk '{ print $2 }'`;do dpkg -P $i;done


[editar] removendo arquivos do diretorio /tmp

rm -rf tmp/*


[editar] removendo arquivos copiados no /etc

rm -r /etc/resolv.conf
rm -r /etc/hosts


[editar] agora vamos desmontar os pseudo-filesystems que montamos

umount /proc
umount /sys
umount /dev/pts

[editar] saindo do chroot

exit


[editar] limpando histórico de comandos

rm /diretorio/custom/squashfs/root/.bash_history


[editar] removendo arquivos filesystem e md5sum antigos

rm /diretorio/custom/cd/casper/filesystem.*
rm /diretoriom/custom/cd/md5sum.txt


[editar] gerando lista de pacote instalados

chroot /diretorio/custom/squashfs \
           dpkg-query -W --showformat='${Package} ${Version}\n' > /diretorio/custom/cd/casper/filesystem.manifest
cp /diretorio/custom/cd/casper/filesystem.manifest /diretorio/custom/cd/casper/filesystem.manifest-desktop
sed -ie '/ubiquity/d' /diretorio/custom/cd/casper/filesystem.manifest-desktop

[editar] gerando o squashfs definitivo

cd /diretorio
mksquashfs /diretorio/custom/squashfs /diretorio/custom/cd/casper/filesystem.squashfs

[editar] gerando md5sum

(cd /diretorio/custom/cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)

[editar] gerando iso

entrando no diretório livecd-custom

vamos setar uma variável

DATE=$(date +%Y.%m.%d-%H.%M)

depois exportamos

export DATE
cd /diretorio/custom/cd
mkisofs -r -V "Ubuntu-Live-Custom" -b isolinux/isolinux.bin -c isolinux/boot.cat -cache-inodes \
        -J -l -no-emul-boot -boot-load-size 4 \
        -boot-info-table -o ../../isos/Ubuntu-Live-Custom-$DATE.iso .

[editar] queimando iso

cd ..
cdrecord -eject dev=1,0,0 Ubuntu-Live-7.10-custom.iso


[editar] agradecimentos

  • chicofedora
  • marcelosoaressouza


[editar] referências

customização da distro

alterando/customizando o inirtd

squashfs

Ferramentas pessoais