Restaure o carregador de inicialização da Apple em um (Intel) Mac após um grub de atualização ser executado por uma instalação externa do Ubuntu

6

Tenho o Ubuntu instalado em um disco rígido externo e o uso como uma instalação portátil que posso levar comigo onde quer que eu vá.

Hoje eu iniciei no iMac de um amigo e depois que o Software Updater me pediu para instalar as atualizações. Então eu fiz.

Desde então eu terminei com isso, desliguei o computador e desconectei o disco rígido externo. Imediatamente após o que eu iniciei o iMac novamente, ele iria inicializar novamente no OSX.

Para meu choque, horror e confusão, fui recebido com uma tela de resgate do GRUB!

Como isso é possível? O Ubuntu está instalado no HD externo, não no interno! Como diabos o GRUB foi parar no disco rígido interno do iMac?

Mais importante, como posso corrigir isso?

    
por Android Dev 12.08.2016 / 23:10

1 resposta

5

(Role para baixo até a correção real)

Então as coisas foram ainda mais complicadas do que pareciam no começo.

Para manter a compatibilidade com o MS-Windows, a Apple usa um modo híbrido UEFI e Legacy MBR. Aparentemente, há um valor NVRAM que informa ao firmware se deve tentar inicializar no modo UEFI (OS-X) ou no modo MBR legado (Windows). Esse valor é controlado pela sua seleção em "Preferências do Sistema > Disco de Inicialização". (Não me pergunte por que, pergunte à Apple)

Agora, para inicializar o Ubuntu a partir do meu disco rígido externo, eu iniciei pela primeira vez a partir de um DVD que eu tinha gravado um ISO de rEFInd para. (Selecionando "EFI boot" com o ícone do DVD ao segurar a tecla Option durante a inicialização). Depois de inicializar a partir desse DVD, selecionei meu disco rígido externo para inicializar a partir de dentro do rEFInd.

É aqui que as coisas começam a ficar realmente estranhas. Depois de dizer ao rEFInd para inicializar a partir do disco rígido externo, a tela roxa do GRUB nunca apareceu (sim, eu havia definido um atraso) e, além disso, não havia animação de inicialização de ponto roxo. Em vez disso, foi a inicialização do texto branco de rolagem.

Pelo que eu posso dizer olhando para rEFInd mais de perto antes de apertar boot é que a opção do Ubuntu foi realmente para carregar um kernel específico, e não apenas inicializar a partir do disco.

O que isso significa é que rEFInd é, obviamente, EFI, e funciona essencialmente como um substituto do GRUB, que mesmo que o Ubuntu tenha sido instalado no modo MBR para o disco rígido externo, acabou sendo inicializado no modo UEFI.

Esse fato é muito importante e você verá o motivo em apenas um segundo.

Então deixo o Atualizador de Software executar algumas atualizações. Observando os logs, parece que o comando update-grub foi executado durante o processo de instalação. Aqui é onde todas as coisas ruins acontecem . Agora, neste ponto, não sei exatamente o que aconteceu, mas aqui está o meu melhor palpite: O grub updater ficou confuso, pois o grub foi instalado no modo MBR, mas o Ubuntu foi inicializado no modo UEFI. Devido à confusão e ao fato de que o gerenciador de partida está instalado em um local diferente, dependendo do mod em que você está inicializado, o atualizador do grub comete um grande erro e instala o grub no modo MBR no HDD interno.

Agora para a correção real!

No meu caso particular, a partição do OS-X ainda era inicializável se eu mantivesse a tecla Option durante a inicialização e selecionasse o "Macintosh HD".

Após inicializar o OS-X, você desejará abrir as Preferências do Sistema e, em seguida, ir para o Disco de Inicialização. Selecione o volume do OS-X, clique em aplicar ou o que quer que seja, reinicie e BOOM! o logotipo da Apple mostra!

Agora, só para FYI, acho que, embora isso resolva o problema, o GRUB ainda reside no setor 0, mas não acho que isso vá causar algum dano, e certamente não se você instalar o Windows no Boot Camp, já que O gerenciador de inicialização do Windows iria substituí-lo, então

    
por Android Dev 12.08.2016 / 23:10