Customizando LiveCD do Ubuntu 7.04
De gutocarvalho.net
[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
- http://www.debuntu.org/how-to-customize-your-ubuntu-live-cd
- https://help.ubuntu.com/community/LiveCDCustomization
alterando/customizando o inirtd
squashfs

