Não é possível obter o Ubuntu para inicializar a partir do EFI no Mac

1

Estou tentando conseguir um ca. 2006 macbook ( especificações técnicas aqui) para inicializar o Ubuntu 14.04.2 LTS. Eu estou no dia dois deste agora, tendo limpado o disco rígido várias vezes e reinstalado do disco em torno de 8 vezes agora. Eu ainda sou relativamente novo no mundo Linux.

Eu tenho seguido as instruções aqui para fazer as coisas acontecerem, e depois de muito esforço, consegui executar grub-install e htfs-bless . Isso deve permitir que o processo de inicialização do meu Mac reconheça o Ubuntu durante a inicialização (para que eu não tenha que inicializar manualmente a partir do GRUB, que é o que tenho que fazer agora).

Eu corro o seguinte comando (como root)

grub-install --target x86_64-efi --boot-directory=/boot --efi-directory=/boot/efi --bootloader-id="$(lsb_release -ds)"

Retorna o seguinte:

Installing for x86_64-efi platform.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try: 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try: 'modprobe efivars' as root.
Installation finished.  No error reported.

Por isso, reporta um erro fatal (duas vezes), mas termina a instalação sem erros. Não faço ideia.

Sugiro que eu tente modprobe efivars do root, o que é claro que faço. Não retorna nada (o que não é suposto), mas, em seguida, a execução novamente produz o mesmo erro exato.

Eu vou em frente e corro

hfs-bless "/boot/efi/EFI/$(lsb_release -ds)/System/Library/CoreServices/boot.efi"

que conclui sem comentários. O fato de que ele conclui sugere que o grub-install criou o sistema de arquivos adequado na pasta da minha distro. Então isso é um bom sinal.

O próximo passo em minhas instruções diz-me para reiniciar, para garantir que eu inicialize diretamente no Ubuntu. Isso não acontece. Ele também diz que eu deveria ver o Ubuntu aparecer sob a tela do gerenciador de inicialização mac, e eu não o faço.

Depois de reiniciar manualmente a partir do GRUB, eu volto e tento continuar com as instruções, e aqui eu acerto a parede. Eu digito

efibootmgr

e me deparo com o mesmo erro

Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.

Então eu tento modprobe efivars como root, e quando eu corro novamente, recebo o mesmo erro novamente.

Algumas pesquisas sugerem que o problema é que estou inicializando no BIOS e não no EFI. A solução óbvia é inicializar na EFI, mas não tenho ideia de como fazer isso. Não há partição do BIOS na minha máquina; existe apenas uma partição EFIBoot. Não há mais um sistema Mac OSX na minha máquina; existe apenas o Ubuntu 14.04.2 LTS.

Às vezes, consigo fazer o boot do Ubuntu, outras vezes tenho que fazer isso manualmente. Não consigo exibir uma imagem de disco do Ubuntu no carregador de inicialização do Mac e não consigo acessar as variáveis do EFI.

Se houver algum arquivo que eu possa editar manualmente a partir da linha de comando que me faria inicializar no EFI, isso poderia me ajudar a resolver esse problema.

Qualquer ajuda sobre isso seria muito apreciada.

    
por user2635606 22.07.2015 / 19:26

1 resposta

1

Eu não sou 100% positivo, mas um Mac antigo provavelmente tem uma EFI de 32 bits, mesmo que tenha uma CPU de 64 bits. (Os primeiros Macs baseados em Intel tinham CPUs de 32 bits com EFIs de 32 bits. Quando a Apple atualizou para CPUs de 64 bits, as EFIs ficaram para trás por uma geração ou mais antes que a EFI fosse atualizada para 64 bits.) Inicialização no modo EFI, a instalação no modo EFI é mais fácil com um sistema operacional que corresponda à profundidade de bits da EFI - em outras palavras, um sistema operacional de 32 bits em uma EFI de 32 bits ou um sistema operacional de 64 bits em um sistema operacional de 64 bits. bit EFI. Infelizmente, o Ubuntu não oferece nenhum recurso de inicialização EFI de 32 bits com sua versão de 32 bits, portanto, fazer isso com o Ubuntu requer passar por alguns obstáculos significativos para adicionar um carregador de inicialização EFI de 32 bits a uma imagem inicializável. Isso pode ser feito (eu fiz isso), mas eu não tenho uma referência a um procedimento preciso. (Eu comecei a escrever esse documento uma vez, mas cobrir todas as possibilidades provou ser um desafio real, então eu o coloquei de lado e nunca retornei a ele.)

A versão EFI do GRUB tem a capacidade de fazer cross-boot de um kernel de uma arquitetura de correspondência incorreta - ou seja, um kernel de 64 bits em um sistema com EFI de 32 bits ou vice-versa A CPU é um modelo de 64 bits, claro). Usar essa abordagem exigiria a instalação no modo BIOS / CSM / herdado e, em seguida, a instalação do GRUB de 32 bits após a conclusão da instalação; ou hackear o instalador de 64 bits para incluir um GRUB de 32 bits. Não conheço nenhum site que descreva como fazer isso para um Mac, mas este abrange o processo para um tablet ASUS com CPU de 64 bits e EFI de 32 bits. (Esse site está em baixo enquanto digito isso; espero que seja temporário.)

Tudo isso dito, principalmente se for um computador de 64 bits, usar o modo EFI para uma inicialização única com o Ubuntu é a maneira mais difícil de fazê-lo. Será MUITO mais fácil de tratar o computador como um com um BIOS tradicional. Crie partições MBR e inicialize o instalador no modo BIOS. Você poderá instalar o Ubuntu de 32 bits ou 64 bits, como achar melhor, sem desvios significativos para o procedimento de instalação. Quando o firmware do Mac vê uma tabela de partição MBR, ele ativará seu CSM e, quando não conseguir encontrar nenhum carregador de boot EFI inicializável, ele lançará a versão do BIOS do GRUB no MBR. Isso tudo deve funcionar sem problemas, como se o computador tivesse um modelo baseado em BIOS. As principais armadilhas são controlar o modo de inicialização do instalador (BIOS vs. EFI) e usar o MBR (se você usar o GPT, o firmware do Mac não ativará a inicialização no modo BIOS).

A principal desvantagem é que será mais difícil atualizar seu firmware, já que o processo de atualização de firmware requer uma inicialização no modo EFI. Em um computador antigo, porém, qual a probabilidade de você atualizar seu firmware? Além disso, se mais tarde você decidir fazer uma dupla inicialização com o OS X, terá que converter de MBR para GPT e reinstalar um carregador de boot do Linux de uma forma ou de outra.

    
por Rod Smith 23.07.2015 / 13:28