Primeiro, é CRITICAL que você entende seu modo de inicialização. Computadores modernos podem inicializar de duas maneiras:
- BIOS - Este é o jeito antigo de inicializar, que foi usado na maioria dos computadores lançados antes de 2011. Computadores modernos suportam o modo de inicialização do BIOS através de um recurso chamado Compatibility Support Module (CSM), também conhecido como " suporte de inicialização no modo legado "ou um termo semelhante. Assim, esse método pode ser referido por três nomes: BIOS, CSM ou legado. Envolve o código do carregador de inicialização de 16 bits no Splat Master Record (MBR) e em vários outros lugares. É um método deselegante mas maduro de inicialização, e a maioria dos sites que não mencionam explicitamente o modo de inicialização descrevem a inicialização no modo BIOS. Se o seu computador veio com o Windows 8 ou posterior, no entanto, é provável que não use este método de inicialização.
- EFI / UEFI - Este é o modo de inicialização nativo para a maioria dos computadores introduzidos desde meados de 2011, e é completamente diferente da inicialização via modo BIOS, então você deve > ignorar qualquer aviso que afirme explicitamente que seja para inicialização no modo BIOS, ou qualquer coisa que não mencione o modo de inicialização (já que é provável que seja antigo ou escrito por alguém que não saiba a diferença). Uma exceção: confusamente, muitas pessoas e até fabricantes de computadores referem-se a suas EFIs como "BIOSes". Essa prática cria muita confusão.
Como você mencionou o Windows 10, provavelmente o seu computador é baseado em EFI e inicializa no modo EFI. Eu vou prosseguir com essa suposição. Se isso estiver incorreto, ignore o restante desta resposta.
Para inicializar um disco interno no modo EFI, o sistema operacional normalmente armazena um carregador de inicialização como um arquivo na partição do sistema EFI (ESP) no disco. Este nome de arquivo pode ser qualquer coisa legal, mas para o Ubuntu será EFI/ubuntu/shimx64.efi
, que por sua vez lança EFI/ubuntu/grubx64.efi
. O instalador do sistema operacional registra o nome do carregador de boot com o gerenciador de inicialização interno da EFI, que armazena esse nome na NVRAM. Se a EFI funcionar corretamente (nem todos), isso resulta em um processo de inicialização funcional.
O problema desse processo, aplicado a um disco removível, é triplo:
- O instalador do Ubuntu instalará o GRUB no "ESP" - mas você pode ter vários ESPs disponíveis (quase certamente um no disco rígido e talvez um na unidade USB). Controlar onde o GRUB é instalado pode ser complicado. Não é feito usando a opção marcada com o título óbvio sobre onde instalar o GRUB. Em vez disso, pode ser feito (AFAIK) apenas a partir da opção de instalação "Algo mais" marcando o ESP que você deseja usar como "partição de inicialização EFI" ou "partição de sistema EFI" (cujo nome depende da versão do Ubuntu). / li>
- Se você instalar o GRUB no ESP na unidade USB, quando remover a unidade USB, a EFI poderá perceber que tem uma entrada registrada do carregador de boot inválida e excluir essa entrada. Muitas EFIs fazem isso, e isso significa que, se você instalar o GRUB em um disco externo e, em seguida, desconectá-lo, perderá a capacidade de inicializar a partir desse disco, mesmo quando conectar o disco novamente.
- A maneira como o Ubuntu configura o GRUB faz com que ele dependa dos arquivos de configuração que estão no diretório
/boot/grub
do Ubuntu, o que não provavelmente estará no ESP. Assim, se o Ubuntu instalar o GRUB no ESP em seu disco interno, você evitará o primeiro problema, mas se deparará com outro porque, quando você iniciar com a unidade USB desconectada, o GRUB será iniciado e não conseguirá localizar seus arquivos de configuração. O resultado é um aviso degrub>
que irá mistificar a maioria dos usuários.
Existem várias soluções para esses problemas, incluindo:
-
Instalação manual do GRUB no nome de arquivo de fallback no disco externo - Os instaladores do SO são inicializados usando um nome de arquivo de fallback de
EFI/BOOT/bootx64.efi
. Se você copiar Shim (que inicia o GRUB) para esse nome de arquivo (copiandoEFI/ubuntu
paraEFI/BOOT
no ESP e renomeandoshimx64.efi
parabootx64.efi
emEFI/BOOT
), seu firmware poderá iniciar seu USB com base no GRUB, assim como o instalador do Ubuntu. Isso funcionará após os dois problemas que acabei de identificar, mas você precisará usar o gerenciador de inicialização interno do computador para selecionar o sistema operacional a ser inicializado. Esse gerenciador de inicialização integrado varia de inutilizável a tolerável, portanto, isso pode ou não ser uma solução aceitável. Você também pode precisar ajustar sua ordem de inicialização depois de instalar o Ubuntu para evitar que ele execute o GRUB do ESP do disco interno ou do ESP do disco externo por padrão. -
Coloque uma partição
/boot
em seu disco interno - Se você instalar o GRUB no disco interno, também poderá colocar uma partição/boot
no disco interno. Isso permitirá que o GRUB funcione normalmente em todas as inicializações; no entanto, a opção Ubuntu aparecerá o tempo todo, mesmo quando o disco USB estiver desconectado. Isso pode ser indesejável, especialmente se o Ubuntu for o padrão.Além disso, essa solução significa que sua unidade USB externa será inicializável somente no computador em que você a preparou. Se você quiser usar esse disco em outros computadores, evite essa solução. -
Use um gerenciador de boot mais inteligente - Um gerenciador de inicialização oferece uma opção de SOs para inicialização, enquanto um carregador inicializa um kernel na memória. O GRUB faz as duas tarefas e o gerenciador de inicialização interno da EFI faz apenas o primeiro trabalho. Existem outros gerenciadores de inicialização disponíveis, alguns dos quais podem ajudá-lo a evitar os problemas que identifiquei. O meu próprio rEFInd, por exemplo, se instalado no ESP do disco interno e feito o programa de inicialização padrão, detectará e apresentará um Ubuntu opção se e somente se GRUB ou um kernel Linux estiver presente - isto é, quando a unidade USB estiver conectada. Definindo a opção
default_selection
emrefind.conf
apropriadamente, você pode configurar o rEFInd para inicializar o Ubuntu automaticamente se o seu Ubuntu USB A unidade está conectada e inicializa diretamente no Windows se a unidade USB do Ubuntu não estiver conectada. Minha resposta para essa questão fornece mais detalhes sobre esse tipo de configuração, embora em um Mac em vez de em um PC.
Com alguma sorte, uma dessas abordagens fará com que você comece a trabalhar.