Abaixo os procedimentos que utilizamos para fazer uma distribuição personalizada a partir do CentOS 7. Os procedimentos para criar a mídia foram escritos para serem executados dentro de um sistema operacional CentOS 7 (sugerimos usar a o DVD versão mínima do SO para personalização). O objetivo desse post é poder criar realmente uma distribuição personalizada, baseada em CentOS 7.
Caso queira uma versão mais simples de automatizar uma instalação de Linux, leia nosso post Automatizando uma instalação de linux com o Anaconda Kickstart (CentOS/Fedora/RedHat)
Primeiro, instale os seguintes pacotes:
yum install anaconda-runtime createrepo rsync geniso mkisofs squashfs-tools -y
Agora, coloque o DVD de instalação do CentOS 7 e copie todo o conteúdo para a pasta /tmp/dvd
mkdir /tmp/dvd
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
rsync -av /media/cdrom/ /tmp/dvd/
umount /media/cdrom
Altere o DVD do jeito que deseje, por exemplo:
cd /tmp/dvd
sed -i "s/timeout 600/timeout 10/g" /tmp/dvd/isolinux/isolinux.cfg
sed -i "s/menu title CentOS 7/menu title SUA EMPRESA/g" /tmp/dvd/isolinux/isolinux.cfg
vim /tmp/dvd/isolinux/isolinux.cfg
Dentro desse arquivo, faça o seguinte:
- Adicione o menu default no label linux e retire os outros “label”s;
- Caso queira ainda usar um arquivo de resposta:
- Leia nosso post Automatizando uma instalação de linux com o Anaconda Kickstart (CentOS/Fedora/Redhat)
- Na sessão append desse menu, adicione ao final ks=cdrom:/isolinux/anaconda-ks.cfg
- Copie a nova configuração para nossa imagem
- cp /root/anaconda-ks.cfg /tmp/dvd/isolinux/
Para alterar os menus e pacotes da instalação, execute:
cd /tmp/dvd
compdata=`find repodata -name *comps*xml`
mv $compdata repodata/c7-x86_64-comps.xml
rm -rf repodata/*.gz
rm -rf repodata/*.bz2
vim repodata/c7-x86_64-comps.xml
Para alterar a lista de pacotes da instalação, rode o seguinte:
- Remova todas as linguagens (para reduzir 90% da lista e do trabalho), em seguida altere o que achar necessário;
- Se quiser adicionar algum pacote rpm novo adicione o pacote no nesse arquivo .xml
- Se colocou algum pacote na lista xml, lembre-se de baixá-lo também com o comando yum install –downloadonly –downloaddir=/tmp/dvd/Packages/NOME_DO_PACOTE
Com a nova lista criada, gere as novas configurações com o comando:
createrepo -v -g repodata/c7-x86_64-comps.xml .
Opcional: altere as imagens da instalação
Para desmontar o conteúdo, execute os comandos:
cd /tmp
mkdir -p /tmp/squashfs
mkdir -p /tmp/rootfs
mkdir -p /tmp/LiveOS/LiveOS
mkdir -p /tmp/rootfs_editavel
fallocate -l 2G /tmp/LiveOS/LiveOS/rootfs.img
mke2fs -F /tmp/LiveOS/LiveOS/rootfs.img
mount /tmp/dvd/LiveOS/squashfs.img /tmp/squashfs
mount /tmp/squashfs/LiveOS/rootfs.img /tmp/rootfs
mount -o loop /tmp/LiveOS/LiveOS/rootfs.img /tmp/rootfs_editavel
rsync -av /tmp/rootfs/ /tmp/rootfs_editavel
umount /tmp/rootfs
umount /tmp/squashfs
rm -rf /tmp/squashfs
rm -rf /tmp/rootfs
Altere o que desejar, dicas:
- A pasta /tmp/rootfs_editavel/usr/share/anaconda é a instalação gráfica
- Na pasta /tmp/rootfs_editavel/usr/share/anaconda/pixmaps/rnotes/en – estão as propagandas que aparecem durante a instalação
- No arquivo /tmp/rootfs_editavel/usr/share/anaconda/anaconda-gtk.css – está o css da instalação (cores, imagens das telas)
Com tudo alterado, execute o seguinte para criar um novo arquivo squashfs.img:
cd /tmp
umount /tmp/rootfs_editavel
rm -rf /tmp/rootfs_editavel
rm -rf /tmp/dvd/LiveOS/squashfs.img
mksquashfs /tmp/LiveOS /tmp/dvd/LiveOS/squashfs.img -comp xz
rm -rf /tmp/LiveOS
Recriando a ISO
Para recriar a ISO, execute:
rm -rf /tmp/custom*.iso
cd /tmp/dvd
mkisofs -o /tmp/custom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -V 'CentOS 7 x86_64' -boot-load-size 4 -boot-info-table -R -J -v -T --joliet-long .
cd /tmp
rm -rf dvd
Agora copie e teste sua nova ISO.
Fontes/Referências
NVLAN – Automatizando uma instalação de linux com o Anaconda Kickstart (CentOS/Fedora/RedHat)
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-howto
https://anaconda-installer.readthedocs.io/en/latest/kickstart.html
Mais Informações
Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.
Entre em contato conosco pelo e-mail equipe@nvlan.com.