Histórico: a EFI usa uma variável de ordem de inicialização armazenada na NVRAM para determinar o que inicializar. (Esta é a linha BootOrder:
na saída efibootmgr
.) Essas entradas apontam para arquivos de programa EFI armazenados em uma partição do sistema EFI ( ESP), para dispositivos de rede e assim por diante. Você pode ter vários ESPs e cada ESP pode ter vários arquivos de inicialização EFI. Se um arquivo de inicialização falhar, o ESP deve retornar para o próximo em sua lista.
Seu problema é que, embora o Ubuntu esteja instalado na sua unidade flash USB, essa unidade flash não tem ESP, e parece que o GRUB foi instalado no ESP no disco rígido. Infelizmente, sua configuração do GRUB depende de arquivos de configuração na unidade USB, portanto, se a unidade USB for desconectada quando o GRUB for iniciado, o GRUB retornará para um prompt grub>
, mas não falhará no sentido de retornar ao EFI para que o EFI possa iniciar o próximo gerenciador de inicialização. Quando você instalou o Ubuntu pela primeira vez, este GRUB foi configurado como o carregador de boot padrão, então você viu o tipo de falha que descreve. Você alterou o padrão para o Windows, o que faz com que ele inicialize corretamente, mas dificulta a inicialização do Ubuntu. Existem várias maneiras de limpar isso:
- Você pode viver com ela como está e usar o gerenciador de inicialização interno do computador (a tecla F9 mencionada) para selecionar o sistema operacional a ser inicializado. Essa solução é a mais segura, já que não envolve mudanças que possam piorar as coisas.
- Você pode tentar reconfigurar o GRUB para ler seu arquivo de configuração do ESP, e não do diretório
/boot
do Ubuntu, e redefinir o GRUB como padrão. O GRUB deve então apresentar um menu de inicialização, que permitirá que você selecione o sistema operacional desejado com mais facilidade. Estou um pouco enferrujado sobre como fazer isso, no entanto. Verifique esta antiga página de documentação para todos os detalhes (e depois alguns). Observe que o GRUB não selecionará automaticamente o Ubuntu se e somente se a unidade USB estiver conectada - ou, pelo menos, se puder ser configurada para fazer isso, não sei como. - Você pode reparticionar seu disco rígido interno para incluir uma partição
/boot
do Ubuntu e copiar seus arquivos para lá. Você precisará reinstalar o GRUB. Em teoria, deve funcionar se a unidade USB está ou não conectada, mas não selecionará automaticamente o Ubuntu quando a unidade USB estiver conectada e o Windows quando não estiver conectado. Essa opção é uma das mais arriscadas, já que envolve redimensionar suas partições no disco. - Crie um ESP em sua unidade flash USB e instale o GRUB lá usando o nome de arquivo de retorno de
EFI/BOOT/bootx64.efi
. (No entanto, o procedimento de instalação pode ser um pouco confuso.) Você pode usar o gerenciador de inicialização (F9) para alternar entre a unidade USB (GRUB / Ubuntu) e o Windows. Algumas EFIs podem permitir que você configure a unidade USB como padrão se ela estiver conectada, o que permitiria a inicialização automática do Ubuntu quando estiver disponível, mas não posso prometer que esse detalhe funcionará como você deseja. Você definitivamente precisará reparticionar a unidade USB (o que acrescenta um pouco de risco), e talvez seja necessário converter o disco de MBR para GPT . Uma vantagem dessa abordagem é que a unidade USB deve ser inicializável independentemente em praticamente qualquer computador baseado em EFI da mesma arquitetura. - Você pode instalar o meu gerenciador de reinicialização no seu ESP. Com alguns ajustes de configuração (principalmente definindo
default_selection vmlinuz,Windows
ou algo semelhante em seu arquivorefind.conf
), ele deve inicializar o Ubuntu por padrão quando a unidade USB estiver conectada e o Windows quando a unidade USB não estiver conectada.
Também pode haver outras soluções possíveis, mas estas são as que vêm à mente. Os melhores provavelmente estão deixando-o como estão, criando um ESP em sua unidade USB e reinstalando o GRUB nele e usando o rEFInd.