Agora concluí o processo, graças à dica valiosa do @ Thomas Schmitt .
Aqui está o processo completo.
Visão geral
Você deve modificar três arquivos no DVD original da Red Hat:
-
isolinux/isolinux.cfg
-
EFI/BOOT/grub.cfg
-
images/efiboot.img
Decida em um rótulo de volume que você deseja usar. O rótulo do volume deve ter menos de 14 caracteres.
Em seguida, use genisoimage para criar o novo ISO com esse rótulo de volume, use isohybrid --uefi para torná-lo compatível com UEFI e use implantisomd5 para atualizar a soma de verificação correta
Passo a passo
Eu escrevi isso, mas o script é muito específico para a nossa situação, então não adianta postar isso.
- Monte o DVD original da Red Hat usando
fuseiso .
- Defina uma variável de ambiente
VOLUMELABEL para o rótulo de volume escolhido.
- Copie os três arquivos que você precisa modificar para outro local.
Edite o arquivo isolinux.cfg . Este arquivo será usado para inicialização do BIOS.
- Edite o arquivo
isolinux.cfg , adicionando o argumento às duas primeiras linhas que começam com append : ks=hd:LABEL=$VOLUMELABEL:/ks.cfg .
- Atualize o argumento
inst.stage2 em todos os lugares que você encontrar (provavelmente quatro lugares) para ler: inst.stage2=hd:LABEL=$VOLUMELABEL .
- Você também pode querer remover a entrada
menu default para que a sua imagem seja padronizada como Install em vez de Test & Install .
Edite o arquivo grub.cfg . Este arquivo será usado para inicialização via EFI. Observe que esse arquivo (e tudo em EFI/BOOT ) existirá duas vezes: uma vez na imagem normal do DVD e também dentro do arquivo efiboot.img .
- Adicione o mesmo argumento às duas primeiras linhas que começam com
linuxefi .
- Atualize o argumento
inst.stage2 em todos os lugares que você encontrar (provavelmente quatro lugares) para ler: inst.stage2=hd:LABEL=$VOLUMELABEL .
- IMPORTANTE E FÁCIL DE EXIBIR: também edite a linha que começa com
search em grub.cfg .
Edite o arquivo efiboot.img . Isso realmente será inicializado pelo EFI.
- Monte sua cópia do arquivo
efiboot.img . Infelizmente, eu não encontrei uma maneira de fazer isso com fusermount , então você tem que ser root para fazer isso.
- Copie o
grub.cfg modificado no arquivo efiboot.img em EFI/BOOT
- Montar sua cópia do arquivo
efiboot.img .
Agora você pode gerar a imagem ISO.
Os argumentos para genisoimage são sensíveis à posição. Pontos principais: Baseio a imagem no arquivo ISO montado original (montado como $TMPDIR ), depois uso -m para excluir os três arquivos modificados e uso pontos de enxerto para inserir as modificações, bem como o arquivo de kickstart, em a imagem. Na minha imagem, eu também removi os addons do diretório.
genisoimage \
-untranslated-filenames \
-graft-points \
-rational-rock \
-v \
-translation-table \
-input-charset "default" \
-J \
-joliet-long \
-V $VOLLABEL -A $VOLLABEL -volset $VOLLABEL \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-efi-boot images/efiboot.img \
-no-emul-boot \
-quiet \
-o $THISDIR/$VOLLABEL.iso \
-m $TMPDIR/EFI/BOOT/grub.cfg \
-m $TMPDIR/isolinux/isolinux.cfg \
-m $TMPDIR/images/efiboot.img \
-m addons \
$TMPDIR \
EFI/BOOT/grub.cfg=$TMPGRAFT/grub.cfg \
isolinux/isolinux.cfg=$TMPGRAFT/isolinux.cfg \
images/efiboot.img=$TMPGRAFT/efiboot.img \
$KICKSTARTFILE=$KICKSTARTDIR/$KICKSTARTFILE
Em seguida, use isohybrid --uefi e implantisomd5 :
isohybrid --uefi $THISDIR/$VOLUMELABEL.iso
implantisomd5 $THISDIR/$VOLUMELABEL.iso