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:

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.

NVLAN - Consultoria