TL;DR
Meu pendrive personalizado do Ubuntu Live Installer mostra a opção de menu personalizado no modo Legacy BIOS no meu laptop antigo, mas não no modo UEFI BIOS no meu novo laptop.
Por que e como faço para corrigir isso?
Pergunta e contexto
Eu peguei o ISO original do Ubuntu 18.04 Desktop e o modifiquei para conter alguns scripts, uma imagem de fundo diferente, meu arquivo de preseeding e um script python ligeiramente modificado. Duvido que meu problema tenha a ver com isso, mas esse é o contexto e, se você quiser saber mais, veja meu artigo aqui .
O ponto importante é: eu modifiquei isolinux/isolinux.cfg
para que a primeira tela que vejo quando inicializo a partir do pendrive me mostre uma opção de instalação adicional que é selecionada por padrão e tem alguns argumentos de inicialização adicionais.
Funcionou bem no meu laptop antigo com BIOS legado, mas não foi reconhecido como inicializável pelo meu novo laptop com BIOS UEFI. Como o uso do modo Legacy BIOS pode causar problemas com os sistemas operacionais já instalados, recriei meu iso para que ele funcione com os dois modos usando o xorriso conforme descrito aqui :
sudo apt-get -y install isolinux xorriso
sudo xorriso -as mkisofs \
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
-c isolinux/boot.cat \
-b isolinux/isolinux.bin \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-e boot/grub/efi.img \
-no-emul-boot \
-isohybrid-gpt-basdat \
-o /path/to/tmp.iso \
/path/to/tmp
Eu executei isso no sistema ao vivo de um stick Ubuntu 18.04 Desktop limpo. E então dd
fiz isso em um pendrive diferente:
sudo umount /dev/sdb1
sudo dd bs=4M if=/path/to/tmp.iso of=/dev/sdb
Agora, depois de definir o BIOS do novo laptop para o modo UEFI Only, ele inicializa bem no grub, embora pareça bastante diferente quando comparado com a aparência do laptop BIOS legado. Mais importante: minha opção personalizada está ausente .
Estou ciente de que essas imagens são bastante granuladas, mas as diferenças são claras:
Quando pressiono e
e edito os Install Ubuntu
argumentos de inicialização da opção, ela faz (principalmente) o que eu esperava. Aqui estão esses argumentos conforme especificado em isolinux.cfg
.
# D-I config version 2.0
# search path for the c32 support libraries (libcom32, libutil etc.)
path
include menu.cfg
#default vesamenu.c32
default install
prompt 1
timeout 50
ui gfxboot bootlogo
label install
menu label ^LucidBrot 18.04 v72 (prod)
kernel /casper/vmlinuz
append auto=true file=/cdrom/preseed/my.seed boot=casper debug-ubiquity automatic-ubiquity initrd=/casper/initrd DEBCONF_DEBUG=5 debian-installer/locale=de_CH.UTF-8 keyboard-configuration/layoutcode=ch languagechooser/language-name=English countrychooser/shortlist=CH localechooser/supported-locales=en_US.UTF-8 ---
Como posso fazer minha opção personalizada aparecer na tela de seleção de inicialização do modo UEFI?
Notas Adicionais
Eu simplifiquei minha história acima um pouco. É possível que algumas permissões nos arquivos antes de criar a iso tenham sido alteradas enquanto eu copiava coisas de uma máquina para outra. Menciono isso no caso de que poderia ser um culpado.
Quando pressiono
e
e edito osInstall Ubuntu
argumentos de inicialização da opção, ela faz (principalmente) o que eu esperava.principalmente o que eu esperava, mas não completamente: adicionei um script que substitui o plano de fundo laranja biônico-beaver original do instalador ao vivo (não o sistema de destino) por uma versão azul dele para fins de teste. Isso funciona bem no BIOS Legado no meu laptop antigo e no meu novo, mas no novo laptop em execução no modo UEFI, ele é mostrado como um plano de fundo azul de uma única cor.
Até onde eu sei, qualquer outra pré-configuração que fiz funciona conforme o esperado quando executado com os argumentos de inicialização adicionados manualmente.A inicialização segura está desativada no momento
Escrever esta pergunta assim fez com que as " Perguntas Semelhantes " sugeridas de repente ajudassem muito.
Para quem tiver o mesmo problema:
Edite
boot/grub/grub.cfg
para conter a mesma entrada que você tem,isolinux/isolinux.cfg
mas use uma sintaxe diferente:set gfxpayload=keep
significa que não modificará a escolha de texto versus gráficos de vídeo.Coloque quaisquer argumentos de inicialização adicionais na linha que começa com
linux
.Coloquei minha entrada personalizada no topo, logo abaixo da linha que define o tempo limite. Ele agora se tornou automaticamente a opção padrão.