Como converter uma inicialização do BIOS do Mac em inicialização EFI?

0

Estou executando o Kubuntu 13.04 no meu MacBook Pro (8,2) e configuro para inicializar através da emulação do BIOS da Apple. Eu gostaria de usar a Intel em vez da placa gráfica ATI. Isso significa que precisarei fazer o sistema inicializar via EFI. Eu não quero fazer uma instalação limpa. O máximo que eu posso conseguir é no grub-efi, mas eu não consigo inicializar o kernel de lá.

Meu esquema de partições:

/dev/sda1 = EFI
/dev/sda2 = Mac OS
/dev/sda3 = root
/dev/sda4 = boot
/dev/sda5 = home
/dev/sda6 = swap

Como posso obter a inicialização EFI em uma instalação de inicialização do BIOS sem perder minhas instalações de sistema operacional existentes?

    
por Benjamin Daines 01.09.2013 / 23:00

2 respostas

1

Tente isto:

  1. Instale rEFInd no OS X. Você pode usar o script install.sh para fazer isso.
  2. Digite sudo mkdir /EFI/refind/drivers_x64 em uma janela do OS X Terminal. (Se você usar a opção --esp para install.sh , precisará ajustar o caminho para criar esse diretório no ESP).
  3. Instale o driver EFInd para o sistema de arquivos que você está usando para armazenar seus kernels Linux (geralmente ext4fs, mas às vezes não). Para instalar o driver, você precisa copiá-lo para o subdiretório drivers ou drivers_x64 do diretório de instalação rEFInd ( /EFI/refind por padrão no OS X).
  4. No Linux (mesmo a partir de uma inicialização no modo BIOS), execute o script mkrlconf.sh que vem com o rEFInd. Isso gerará um arquivo /boot/refind_linux.conf , que contém as opções do kernel que o rEFInd passa para o seu kernel.

O ideal é que você inicie diretamente no Linux no modo EFI, ignorando o GRUB, o que pode ser difícil de configurar se os scripts automatizados não acertarem. O rEFInd deve detectar seus kernels toda vez que você inicializar, assim você não precisará atualizar nada quando você atualizar seus kernels.

Se isso funcionar, e se você não estiver tri-inicializando com o Windows, você pode querer:

  • Edite /EFI/refind/refind.conf , remova o comentário da linha scanfor e verifique se hdbios não está presente. Isso evitará que o antigo GRUB no modo BIOS apareça como opções de inicialização rEFInd.
  • Remova o MBR híbrido do disco rígido. Você pode fazer isso editando a tabela de partições com parted ou GParted (basta fazer qualquer alteração trivial) ou instalando o pacote gdisk , iniciando gdisk no seu disco, digitando x para chegar ao menu dos especialistas , digitando n para gerar um novo MBR de proteção e digitando w para salvar suas alterações. Remover o MBR híbrido reduzirá as chances de causar problemas no futuro.
por Rod Smith 02.09.2013 / 01:29
1

Aqui você tem outra possibilidade, ou seja, ignorar completamente ambos grub e rEFInd. Ao seguir estas etapas, você terminará com um sistema que inicializa nativamente no Linux no modo EFI puro. Sempre que você precisar inicializar novamente no OsX, basta pressionar < alt > Tecle imediatamente após o sinal sonoro e você chegará na tela de inicialização integrada da Apple, onde você pode selecionar a partição OsX para inicializar.

Este é o guia passo-a-passo:

  1. Uma vez no Linux, baixe e instale por qualquer meio que você preferir os pacotes mactel-boot e hfsprogs .
  2. Use o GParted, por exemplo, para redimensionar o esquema de partição existente e criar espaço para uma nova partição minúscula, digamos, de 100 MB ou menos, que você formatará como um sistema de arquivos HFS +. Se você instalou o hfsprogs, isso pode ser feito facilmente com a GUI do GParted ou, alternativamente, com o comando mkfs.hfsplus /dev/sdaX onde X é o número da partição recém-criada (eu suponho 7, no seu caso, ou seja, / dev / sda7 ).
  3. Monte a nova partição HFS + em qualquer ponto de montagem que você desejar. Não é importante em tudo. No final do processo, você pode até mesmo editar seu arquivo fstab para evitar que o Linux monte automaticamente esta partição no login.
  4. Copie seu kernel ativo para esta partição. Você não precisa copiar tudo, apenas vmlinuz-x.y.z-whatever.efi.signed e initrd-x.y.z-whatever.img. IMPORTANTE! O kernel deve ser renomeado para algo que termine com 'efi', caso contrário, o firmware da Apple se recusará a executar seu código. Você pode renomeá-lo para vmlinuz-x.y.z-whatever.efi ou mesmo simplesmente vmlinuz.efi
  5. Agora crie uma nova entrada de inicialização no firmware da EFI emitindo o comando sudo efibootmgr -c -l '\vmlinuz-x.y.z-whatever.efi' -L 'Ubuntu' -p X -u "<kernel parameters> initrd=\initrd-x.y.z-whatever.img" , em que X é o número da partição da sua nova partição HFS + e < parâmetros do kernel > são os parâmetros retirados do seu grub.cfg na entrada do menu correspondente à sua inicialização atual (por exemplo, root = UUID = de4567fd-55aa-AND-SO-ON ro respingo silencioso etc.)
  6. Abençoe o kernel recém-copiado com o comando hfs-bless "<MountPoint of your HFS+ partition>\vmlinuz.efi" (por exemplo, hfs-bless "/mnt/pureEfiBoot/vmlinuz.efi"
  7. Feito. Reinicie e aproveite.

A principal vantagem dessa abordagem é o rápido tempo de inicialização. Você pode estar na sua tela de login em alguns segundos, dependendo da velocidade do seu hardware. Você pode até eliminar o atraso padrão de 5 segundos usando sudo efibootmgr -T

Por outro lado, uma grande desvantagem é que cada vez que você atualiza o kernel, você precisa atualizar manualmente a partição HFS + (neste ponto, oculta). Se você não fizer isso, não irá prejudicar muito, já que você estará inicializando com um kernel antigo. No entanto, uma atualização é aconselhável, e isso pode ser feito automaticamente usando alguma forma de script de shell.

Outra (potencial) desvantagem é que em algumas máquinas, o X pode não detectar corretamente sua placa gráfica ao inicializar o kernel diretamente.

    
por Caraffande 21.12.2015 / 15:07