Você se deparou com uma falha de design do modo como o Ubuntu configura o GRUB 2. Basicamente, em um sistema baseado em EFI, o binário principal do GRUB entra no EFI System Partition (ESP), mas esse binário depende de um arquivo grub.cfg
que reside no diretório /boot/grub
do Ubuntu, que no seu caso está no disco externo. Como o Ubuntu configurou o GRUB como seu carregador de boot padrão, o resultado é que o processo de inicialização falha sempre que você desconecta esse disco externo. Existem várias maneiras de corrigir este problema, incluindo:
-
Mover
/boot
- Você pode reparticionar seus discos para que você tenha uma partição ~ 500MB/boot
em seu disco interno e, em seguida, reinstale o GRUB. Dessa forma, o GRUB poderá ler seu arquivo de configuração a partir do disco interno, mesmo que a maior parte do Ubuntu seja instalada no disco externo. A desvantagem é que você verá uma entrada do Ubuntu sempre que o sistema inicializar, mesmo quando não estiver funcional porque o disco externo está desconectado. -
Re-priorize seus gerenciadores de inicialização - Você pode usar
efibootmgr
no Linux, EasyUEFI no Windows, ou outras ferramentas para reordenar as prioridades do seu gerenciador de inicialização. Normalmente, você deseja colocar o Windows no topo. Em seguida, você usaria o gerenciador de inicialização interno do seu firmware (geralmente acessado pressionando Esc, Enter ou uma tecla de função, geralmente F8 ou superior) para selecionar o Ubuntu apenas quando você quiser inicializá-lo. Isso pode ser uma solução viável se você inicializar o Ubuntu com pouca frequência, mas o constrangimento de acessar o gerenciador de inicialização torna essa solução ruim se você quiser inicializar o Ubuntu com frequência. - Use o rEFind (ou outro gerenciador de inicialização) - Você pode instalar o meu gerenciador de inicialização do rEFInd no ESP . Ele assumirá o gerenciador de inicialização padrão. Como o rEFInd constrói sua lista de inicialização em uma base boot-by-boot, o resultado será um menu de inicialização que mostra apenas o Windows quando o disco do Ubuntu está desconectado e um menu de inicialização que mostra o Windows e o Ubuntu quando o disco do Ubuntu está conectado. Se você definir o padrão de rEFInd para inicializar o Ubuntu, o resultado será o Ubuntu quando o disco estiver conectado e o Windows quando não estiver conectado. Existem outros gerenciadores de inicialização, como gummiboot / systemd-boot e rEFIt (predecessor do rEFInd) que funcionam nesta função também.