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