Customizando LiveCD do Ubuntu 7.04
De gutocarvalho.net
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
iniciando trabalhos: se tornando root
sudo su
preparando o sistema
aqui vamos preparar o sistema para customização
instalando pré-requisitos
apt-get install squashfs-tools mkisofs
copiando distro da internet
wget ubuntu-desktop-7.04-i386.iso
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
montando cd
mount -o loop ubuntu-desktop-7.04-i386.iso /diretorio/mnt/cd
copiando dados do cd para diretorio local
rsync --exclude=/casper/filesystem.squashfs -a /diretorio/mnt/cd/ /diretorio/custom/cd
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
customizando a distro
agora vamos mexer na imagem da distro e alterar o que precisarmos
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
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
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'`
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
ajustando identidade visual
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
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
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.
finalizando configurações e fechando o cd
Abaixo os procedimentos para fechar a imagem e gerar a nova ISO.
limpando o cache de pacotes
apt-get clean
removendo arquivos de configuração perdidos no sistema
for i in `dpkg --list|grep ^rc|awk '{ print $2 }'`;do dpkg -P $i;done
removendo arquivos do diretorio /tmp
rm -rf tmp/*
removendo arquivos copiados no /etc
rm -r /etc/resolv.conf rm -r /etc/hosts
agora vamos desmontar os pseudo-filesystems que montamos
umount /proc umount /sys umount /dev/pts
saindo do chroot
exit
limpando histórico de comandos
rm /diretorio/custom/squashfs/root/.bash_history
removendo arquivos filesystem e md5sum antigos
rm /diretorio/custom/cd/casper/filesystem.* rm /diretoriom/custom/cd/md5sum.txt
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
gerando o squashfs definitivo
cd /diretorio
mksquashfs /diretorio/custom/squashfs /diretorio/custom/cd/casper/filesystem.squashfs
gerando md5sum
(cd /diretorio/custom/cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)
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 .
queimando iso
cd .. cdrecord -eject dev=1,0,0 Ubuntu-Live-7.10-custom.iso
agradecimentos
- chicofedora
- marcelosoaressouza
referências
customização da distro
- http://www.debuntu.org/how-to-customize-your-ubuntu-live-cd
- https://help.ubuntu.com/community/LiveCDCustomization
alterando/customizando o inirtd
squashfs

