Neste artigo vamos criar uma imagem personalizada do CentOS 7. Vamos personalizar o menu incluindo opções de instalação usando arquivos kickstart (veja como criar seu próprios arquivos kickstart neste artigo e também buscando os pacotes de instalação num repositório local (veja como criar um repositório local neste artigo.
Para finalizar, nós também iremos alterar a imagem de fundo do menu, fazendo uma imagem personalizada. Vamos lá!!!
Primeiro iremos criar um diretório de trabalho para podermos personalizar nossa imagem do CentOS 7:
# mkdir -pv ~/centos/{centos7,centos7-custom}
Antes, alguns pacotes serão necessários, então vamos instalar com o comando:
# yum install -y vim wget rsync genisoimage ImageMagick
Agora, acessamos nosso diretório e vamos baixar a imagem do CentOS 7:
# cd ~/centos
# wget http://linorg.usp.br/CentOS/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
Após finalizado o download da imagem, vamos montá-la na pasta ~/centos/centos7 com o comando abaixo:
# mount -o loop -t iso9660 CentOS-7-x86_64-*.iso ~/centos/centos7
Após termos montado a imagem, precisamos copiar toda a estrutura de pastas da iso para nosso diretório de trabalho centos7-custom. Vamos usar o rsync para isso:
# rsync -avHl ~/centos/centos7/ ~/centos/centos7-custom/
Pronto, com todos os arquivos e pastas da imagem copiados, já não é mais necessário a imagem montada e nem o diretório de montagem. Então já podemos desmontá-la e excluir a pasta:
# umount ~/centos/centos7/
# rmdir -v ~/centos/centos7/
Pronto! Já podemos iniciar a configuração do syslinux.
O DVD de instalação do CentOS utiliza o syslinux como boot loader, é nele que iremos trabalhar. Para isso vamos entrar no diretório de trabalho que contém os arquivos da instalação:
# cd ~/centos/centos7-custom
Dentro do diretório existe a pasta isolinux, é nela que vamos adicionar os arquivos que iremos utilizar e o arquivo de configuração do syslinux.
Primeiramente vamos copiar um arquivo kickstart (veja exemplo nesse artigo, no diretório isolinux:
# cp /root/centos-ks.cfg isolinux/
Vamos renomear o arquivo isolinux.cfg e depois criar um novo. Esse arquivo é utilizado pelo syslinux para exibir as opções do menu. Abaixo temos o arquivo que criei com as alterações já comentadas:
# mv -v isolinux/isolinux.cfg isolinux/isolinux.bkp
# vim isolinux/isolinux.cfg
####S Utiliza o modo gráfico do syslinux default vesamenu.c32
menu background splash.png
menu title CentOS 7 - Linux na Web
menu vshift 3
menu rows 8
menu margin 6
menu helpmsgrow 13
menu color border * #00000000 #00000000 none
menu color title 0 #ff7ba3d0 #00000000 none
menu color sel 0 #ffffffff #00000000 none
menu color unsel 0 #84b8ffff #00000000 none
menu color help 0 #ff7ba3d0 #00000000 none
label linux
menu label Instalacao do CentOS 7
default
text help
Instale o sistema normalmente pelo DVD fazendo suas escolhas
de forma manual.
endtext
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
label memtest
menu label Teste de memoria
text help
Utilize a ferramenta de teste para identificar problemas
nos pentes de memorias do sistema.
endtext
kernel memtest
menu separator
menu begin Personalizadas
menu title Personalizadas
label kickstart1
menu label Instalacao kickstart (via dvd)
text help
Instale o CentOS de forma personalizada utilizando o arquivo
de kickstart (centos-ks.cfg) que se encontra dentro do DVD.
endtext
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 inst.ks=hd:LABEL=CentOS\x207\x20x86_64:/isolinux/centos-ks.cfg quiet
label kickstart2
menu label Instalacao kickstart (via rede)
text help
Instale o CentOS de forma personalizada utilizando o arquivo
de kickstart (centos-ks.cfg) que se encontra num servidor web.
endtext
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 inst.ks=https://linuxnaweb.com/cfg/centos-ks.cfg quiet
label repo
menu label Instalacao kickstart (repositorio local)
text help
Instale o CentOS de forma personalizada utilizando o arquivo
de kickstart e baixando os pacotes de um repositorio local.
endtext
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 inst.ks=hd:LABEL=CentOS\x207\x20x86_64:/isolinux/centos-ks.cfg inst.repo=https://linuxnaweb.com/base/ quiet
menu separator
label returntomain
menu label Retornar
menu exit
menu end
Antes de mais nada, explicaremos alguns comandos usados no itens do menu:
label: Define um nome para o item do menu.
menu label: Exibe o nome do item do menu.
text help … endtext: Define o texto de ajuda quando um item é selecionado.
kernel vmlinuz: Inicia o executável vmlinuz para iniciar o sistema de boot e está ligado ao kernel.
append: Acrescenta parâmetros ao iniciar o kernel. E algumas opções de append são:
➡ initrd: Imagem inicial para instalação do sistema;
➡ inst.stage2: Especifica o local da imagem de instalação;
➡ inst.ks: Especifica o local do arquivo de kickstart;
➡ inst.repo: Especifica o repositório local onde se encontram os pacotes.
Após adicionado nosso arquivo de configuração, vamos criar a imagem customizada. Primeiro voltamos para pasta ~/centos/:
# cd ~/centos/
E executamos o comando mkisofs abaixo, para criar a imagem personalizada do CentOS 7:
# mkisofs -o centos7-custom.iso \
-V 'CentOS 7 x86_64' \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-R -J -v -T centos7-custom/
Enfim, para maiores informações sobre o comando mkisofs, deixarei um link no final do artigo.
Após finalizado o comando mkisofs, será gerado na pasta ~/centos/ a nossa imagem com o nome centos7-custom.iso.
Dessa forma, já podemos utilizar nossa imagem personalizada para instalar o CentOS. Veja como ficou o menu de instalação:
E também nosso submenu:
Deixaremos nossa iso ainda mais customizada alterando o fundo preto por uma imagem. Primeiramente, criei a imagem utilizando o GIMP, mas você pode encontrar no google algumas opções.
Para ser utilizado pelo o syslinux a imagem deverá ter o tamanho de 640×480, ter 16 bits e utilizar apensa 14 cores. Bem, esse foi o formato que funcionou para mim.
Após criar a imagem convertemos utilizando o comando abaixo:
# convert -resize 640x480 -depth 16 -colors 14 linuxnaweb.png linuxweb.png
Então, copiamos a imagem para o diretório isolinux/:
# cp -v linuxweb.png ~/centos/centos7-custom/isolinux/
Agora para finalizar temos que mudar alguns parâmetros no arquivo de configuração do syslinux, para utilizar a nossa imagem e também melhorar um pouco o visual.
Vamos mudar os comando abaixo:
# cd ~/centos/centos7-custom
# vim isolinux/isolinux.cfg
# Define uma imagem de fundo.
menu background linuxweb.png
# Define a cor da borda em volta menu
menu color border 0 #ffffffff #00000000
# Define a cor do titulo
menu color title 0 #ff000000 #ffffffff none
# Define as cores do item selecionado
menu color sel 7 #ffffffff #ff000000
# Define a cor dos itens não selecionados
menu color unsel 0 #ff000000 #ffffffff none
E geramos a imagem iso novamente com os comando abaixo:
# cd ~/centos/
# mkisofs -o centos7-custom.iso \
-V 'CentOS 7 x86_64' \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-R -J -v -T centos7-custom/
Pronto! Adicionamos nossa imagem, e temos como resultado:
Do mesmo modo, temos o submenu:
Agora você já pode criar sua iso personalizada com diversas opções de instalações.
Assim finalizamos o artigo, para maiores informações ou se aprofundar no tema:
https://wiki.syslinux.org/wiki/index.php?title=Menu
https://linux.die.net/man/8/mkisofs
Se una com os assinantes de nossa Newsletter, sempre que tiver postagem nova você será notificado.