Como converter uma inicialização do Mac BIOS para a inicialização do EFI? -- boot campo com grub2 campo com uefi camp askubuntu Relacionado O problema

How to convert a Mac BIOS boot to EFI boot?


0
vote

problema

português

Eu estou correndo Kubuntu 13.04 no meu MacBook Pro (8,2) e tenho configurado 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 obter o sistema para inicializar via EFI. Eu não quero fazer uma instalação limpa. Quanto mais eu posso conseguir é para o GRUB-EFI, mas não posso realmente inicializar o kernel de lá.

meu esquema de partição:

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

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

english

I am running Kubuntu 13.04 on my MacBook Pro (8,2) and I have it set up to boot through Apple's BIOS emulation. I would like to use the Intel instead of the ATI graphics card. This means that I will need to get the system to boot via EFI. I don't want to do a clean install. The furtherest I can get is into grub-efi, but I cannot actually boot the kernel from there.

My partition scheme:

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

How can I achieve EFI booting on a BIOS booting install without loosing my existing OS installations?

        

Lista de respostas

1
 
vote
vote
Melhor resposta
 

Tente isto:

    .
  1. instalar reenchimento no OS X. Você pode usar o script ABCDEFGHIJKLMNABCDEFGHIJKLMN6 para fazer isso.
  2. Tipo sudo mkdir /EFI/refind/drivers_x64 em uma janela do terminal OS X. (Se você usar o --esp opção para install.sh , você precisará ajustar o caminho para criar este diretório no ESP.)
  3. Instale o Refind o driver EFI Para qualquer sistema de arquivos que você está usando para armazenar seu Linux kernels (geralmente ext4fs, mas às vezes não). Para instalar o driver, você precisa copiá-lo para o /bin0 ou /bin1 subdiretório do diretório de instalação de referência ( /bin2 por padrão no OS X) .
  4. no Linux (mesmo a partir de uma inicialização do BIOS-MODE), execute o script ABCDEFGHIJKLMNABCDEFGHIJKLMN13 com Refin. Isso gerará um arquivo /bin4 , que contém opções de kernel que se refinam passa ao seu kernel.

Idealmente, isso permitirá que você inicialize diretamente ao Linux no modo EFI, contornando o Grub, que pode ser complicado para configurar se os scripts automatizados não acertarem. Reenchimento deve detectar seus kernels cada vez que você inicializar, então você não precisará atualizar nada quando você atualizar seus kernels.

Se isso funcionar, e se você não tiver inicialização tripla com o Windows, você pode querer:

  • editar /bin5 , descomente o /bin6 linha e garantir que /bin7 não esteja presente. Isso manterá o antigo GRUB do Modo BIOS de aparecer como opções de inicialização de referência.
  • Remova o MBR híbrido do seu disco rígido. Você pode fazer isso editando a tabela de partição com /bin8 ou gparted (basta fazer qualquer alteração trivial) ou instalando o pacote /bin9 , lançamento abcdefghijklmn20 Em seu disco, digitando #!/bin/bash userName=$(whoami); programName="$1"; main(){ pidVar=$(top -n 1 -d 1 -b | grep -i "$programName" | cut -c -6 ); kill $pidVar >& /dev/null; echo "killed all "$programName" instances."; } if [ "$userName" == "root" ] ; then main ; else echo "run as root" ; fi; 1 para chegar ao menu de especialistas, digitando #!/bin/bash userName=$(whoami); programName="$1"; main(){ pidVar=$(top -n 1 -d 1 -b | grep -i "$programName" | cut -c -6 ); kill $pidVar >& /dev/null; echo "killed all "$programName" instances."; } if [ "$userName" == "root" ] ; then main ; else echo "run as root" ; fi; 2 para gerar um novo protetor MBR e digitar #!/bin/bash userName=$(whoami); programName="$1"; main(){ pidVar=$(top -n 1 -d 1 -b | grep -i "$programName" | cut -c -6 ); kill $pidVar >& /dev/null; echo "killed all "$programName" instances."; } if [ "$userName" == "root" ] ; then main ; else echo "run as root" ; fi; 3 para salvar o seu mudanças. Removendo o MBR híbrido reduzirá as chances de causar problemas no futuro.
 

Try this:

  1. Instal rEFInd in OS X. You can use the install.sh script to do this.
  2. Type sudo mkdir /EFI/refind/drivers_x64 in an OS X Terminal window. (If you use the --esp option to install.sh, you'll need to adjust the path to create this directory on the ESP.)
  3. Install the rEFInd EFI driver for whatever filesystem you're using to store your Linux kernels (usually ext4fs, but sometimes not). To install the driver, you need to copy it to the drivers or drivers_x64 subdirectory of the rEFInd installation directory (/EFI/refind by default in OS X).
  4. In Linux (even from a BIOS-mode boot), run the mkrlconf.sh script that comes with rEFInd. This will generate a /boot/refind_linux.conf file, which holds kernel options that rEFInd passes to your kernel.

Ideally, this will enable you to boot directly to Linux in EFI mode, bypassing GRUB, which can be tricky to configure if the automated scripts don't get it right. rEFInd should detect your kernels each time you boot, so you won't need to update anything when you upgrade your kernels.

If this works, and if you're not triple-booting with Windows, you may want to:

  • Edit /EFI/refind/refind.conf, uncomment the scanfor line, and ensure that hdbios is not present. This will keep the old BIOS-mode GRUB from showing up as a rEFInd boot options.
  • Remove the hybrid MBR from your hard disk. You can do this by editing the partition table with parted or GParted (just make any trivial change) or by installing the gdisk package, launching gdisk on your disk, typing x to get to the experts' menu, typing n to generate a new protective MBR, and typing w to save your changes. Removing the hybrid MBR will reduce the odds that it will cause problems in the future.
 
 
         
         
1
 
vote

Aqui você tem outra possibilidade, isto é, ignorar completamente ambos grub e refin. Seguindo estas etapas, você acabará com um sistema que inicializa nativamente no Linux no modo Pure EFI.
Sempre que você precisar voltar para o OSX, basta segurar o & lt; alt & gt; Chave imediatamente após o som do chime e você vai pousar na tela de inicialização interna da Apple, onde poderá 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 Gparted, por exemplo, para redimensionar seu esquema de partição existente e abrir espaço para uma nova partição minúscula, digamos, 100MB ou menos, que você formata 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 assumo 7, no seu caso, ou seja / dev / sda7).
  3. Monte a nova partição HFS + em qualquer ponto de montagem que você possa desejar. Não é importante em tudo. No final do processo, você pode até mesmo editar o seu arquivo fstab para impedir que o Linux monte automaticamente esta partição no login.
  4. Copie seu kernel ativo nesta partição. Você não precisa copiar tudo, apenas vmlinuz-x.y.z-whatef.efi.signed e initrd-x.y.z-what..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-what.efi ou mesmo simplesmente vmlinuz.efi
  5. Crie uma nova entrada de inicialização no firmware 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" onde x é o número de partição da sua marca Novo HFS + Partição e & lt; kernel parameters & gt; são os parâmetros tirados do seu GRUB.CFG na entrada do menu correspondente a você inicialização atual (por exemplo, root = UUID = DE4567FD-55AA-e-so-on Ro Splash, 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 tempo de inicialização em chamas. Você pode estar na sua tela de login dentro de um punhado de segundos, dependendo da velocidade do seu hardware. Você pode até mesmo eliminar o atraso padrão de 5 segundos usando sudo efibootmgr -T

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

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

 

Here you have another possibility, i.e. to bypass completely both grub and rEFInd. By following these steps you'll end up with a system that boots natively into Linux in pure EFI mode.
Whenever you need to boot back into OsX, simply hold down the <alt> key immediately after the chime sound and you'll land in the Apple's built-in boot screen where you can select the OsX partition for booting.

This is the step-by-step guide:

  1. Once in Linux, download and install by whatever means you prefer the packages mactel-boot and hfsprogs.
  2. Use GParted, for example, to resize you existing partition schema and make room for a new tiny partition, say, 100MB or less, which you'll format as an HFS+ filesystem. If you have installed hfsprogs, this can be done easily with GParted's GUI or, alternatively, with the command mkfs.hfsplus /dev/sdaX where X is the number of the newly created partition (I'd assume 7, in your case, i.e. /dev/sda7).
  3. Mount the new HFS+ partition in whatever mountpoint you may wish. It is not important at all. At the end of the process you can even edit your fstab file to prevent linux from automatically mount this partition upon login.
  4. Copy your active kernel into this partition. You don't need to copy everything, only vmlinuz-x.y.z-whatever.efi.signed and initrd-x.y.z-whatever.img. IMPORTANT! The kernel must be renamed to something ending with 'efi' otherwise Apple's firmware will refuse to execute its code. You can rename it to vmlinuz-x.y.z-whatever.efi or even simply vmlinuz.efi
  5. Now create a new boot entry in the EFI firmware issuing the command sudo efibootmgr -c -l '\vmlinuz-x.y.z-whatever.efi' -L 'Ubuntu' -p X -u "<kernel parameters> initrd=\initrd-x.y.z-whatever.img" where X is the partition number of your brand new HFS+ partition and <kernel parameters> are the parameters as taken from your grub.cfg in the menu entry corresponding to you current boot (e.g. root=UUID=de4567fd-55aa-AND-SO-ON ro quiet splash etc.)
  6. Bless the the newly copied kernel with the command hfs-bless "<MountPoint of your HFS+ partition>\vmlinuz.efi" (e.g. hfs-bless "/mnt/pureEfiBoot/vmlinuz.efi"
  7. Done. Reboot and enjoy.

The main advantage of this approach is the blazing fast boot time. You can be in your login screen within a handful of seconds, depending on your hardware's speed. You can even eliminate the default 5 seconds delay using sudo efibootmgr -T

On the other hand, one major drawback is that each time you update the kernel you need to manually update the (at this point, hidden) HFS+ partition. If you don't do that, it won't harm much since you'll be booting with an old kernel. Nevertheless, an update is advisable, and it could be done automatically by using some form of shell script.

Another (potential) drawback is that on some machines, X may fail to correctly detect your graphic card when booting the kernel directly.

 
 

Perguntas relacionadas

0  Boot Dual: Várias entradas de carregamento do Windows 7 no Grub2 - devo excluir qualquer?  ( Dual boot several windows 7 loading entries in grub2 should i delete any ) 
O sistema é o Acer Extensa 2510g, e há apenas um HDD. É assim que o menu Grub2 parece: Saída do sudo Update-Grub2: os scripts próprios: windows ...

0  Partição BiosGrub e GPT  ( Biosgrub partition and gpt ) 
Eu decidi atualizar do Ubuntu 14.04 para 16.04.3 e tenho um problema. Eu tenho GPT drive e boot uefi, a unidade já tem uma partição de inicialização EFI, ma...

1  Eu tentei instalar o Ubuntu 14.04 em um laptop antigo no lugar do Windows 8.1, e agora não inicializa  ( I tried to install ubuntu 14 04 on an old laptop in place of windows 8 1 and no ) 
Eu tenho um laptop antigo com uma tela quebrada que estou tentando configurar os jogos de esportes para a minha TV, e eu tentei instalar o Ubuntu 14.04 nele d...

3  Como configurar a vara USB da UEFI inicializável?  ( How to configure uefi bootable freedos usb stick ) 
freedos .img foi queimado para uma unidade USB via Balena Etcher. a somente uefi desktop não reconhece a vara USB dos freedos para inicialização. T...

5  EFI Dual Boot Windows 8.1 e Ubuntu 14.04  ( Efi dual boot windows 8 1 and ubuntu 14 04 ) 
Eu instalei o Ubuntu 14.04 lts em uma configuração de inicialização dupla com o Windows 8.1 seguindo As instruções em Este Post de Ubuntu Forums (adicione...

40  Quais comandos para converter um Ubuntu BIOS Instalação para EFI / UEFI sem reparo de inicialização no hardware de inicialização única?  ( Which commands to convert a ubuntu bios install to efi uefi without boot repair ) 
Modo BIOS acidental instalar Eu tenho o hardware da Intel 64 bits com UEFI Setup Utility. O Ubuntu 14.04.1 Lts foi instalado como o único sistema operaciona...

94  Por que obtenho "chave obrigatória não disponível" ao instalar módulos de kernel de terceiros ou após uma atualização do kernel?  ( Why do i get required key not available when install 3rd party kernel modules ) 
Este problema acontece apenas em sistemas UEFI com inicialização segura ativada. Quando tento instalar módulos DKMS como drivers de VirtualBox, NVIDIA ou Br...

1  Inicialização dupla Ubuntu 14.04 e Windows 8.1  ( Dual booting ubuntu 14 04 and windows 8 1 ) 
Ainda outra pergunta sobre este tópico. Desculpe. Eu comprei um novo HP Pavilion 15-P239SA com o Windows 8.1 instalado, e estou tentando dual boot Ubuntu 14...

120  Como criar mídia Live USB inicializável somente UEFI?  ( How to create uefi only bootable usb live media ) 
Ter mídia ao vivo que pode inicializar as duas maneiras pode ser um problema ao instalar o Ubuntu para computadores Windows 8 atualmente disponíveis. Em out...

0  U410 SSD BIOS Problemas  ( U410 ssd bios problems ) 
Eu estou fora de idéia, alguém pode ajudar um newb? Eu instalei com sucesso o Ubuntu 14.04 em um Lenovo U410 com UEFI On, Secure Boot e com o Optimus ativad...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.