menu rEFInd não exibido em uma máquina Mac / Ubuntu dupla

9

Estou tendo um pequeno problema com o rEFInd e não consegui encontrar algo específico sobre isso.

Instalei com sucesso o Ubuntu 14.04 para inicialização dupla com o OS X Yosemite em meu MacBook Pro 3.1 usando rEFInd mas agora depois de inicializar no Ubuntu O menu rEFInd não aparece após uma reinicialização. Ele só vai direto para grub. Após a inicialização novamente no OS X (usando a tecla de opção na inicialização) às vezes o rEFInd aparece, às vezes não, não foi possível descobrir como ele é acionado.

Existe uma maneira de garantir que o rEFInd esteja chegando primeiro, não importa qual OS inicializado anteriormente?

Editar

Usar efibootmgr -v me dá:

BootCurrent: 0001
Timeout: 5 seconds
BootOrder: 0001,0080,0000
Boot0000* opensuse-secureboot   HD(4,1962b000,4e800,11f33185-0ff8-493d-86bd-b9fee568adb8)File(\EFI\opensuse\shim.efi)
Boot0001* ubuntu    HD(1,28,64000,7e798e0a-82c3-4719-95ed-d79675efd190)File(\EFI\ubuntu\shimx64.efi)
Boot0080* Mac OS X  HD(1,28,64000,7e798e0a-82c3-4719-95ed-d79675efd190)File(\EFI\refind\refind_x64.efi)
Boot0081* Mac OS X ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,1d02ba00,0b1ce04a-50b7-40b5-94f0-1a255d748d15)
Boot0082* ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,19490d60,20cc89c9-1320-4d70-b8bb-fffdf9900374)
BootFFFF* ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,19490d60,20cc89c9-1320-4d70-b8bb-fffdf9900374)File(\System\Library\CoreServices\boot.efi)

Se eu definir o NextBoot com a -n -option para 0080, após a reinicialização, o rEFInd será exibido. FFFF me leva diretamente para o OSX. 0081 parece falhar.

Obrigado pela ajuda!

    
por paulkernstock 16.11.2015 / 11:50

2 respostas

10

Os sistemas operacionais às vezes redefinem o programa de inicialização padrão, principalmente se atualizarem os carregadores de inicialização padrão. Não há realmente nenhuma maneira de impedir que isso aconteça, então você deve simplesmente saber como corrigir o problema quando ele ocorre. No Linux, isso é feito usando o programa efibootmgr . No OS X, isso é feito por meio de bless . Veja aqui para mais sobre efibootmgr .

Se este malabarismo está acontecendo toda vez que você reiniciar, então algo está seriamente errado. Se o Ubuntu está redefinindo o GRUB como o padrão a cada reinicialização, então, pessoalmente, eu o removeria - mas eu não sou fã do GRUB (o suficiente para que eu formei o rEFIt para fazer o rEFInd em vez de lidar com o GRUB). Suponho que você também poderia ligar para o efibootmgr em script de desligamento, mas que corre o risco de se desconectar da realidade e causar problemas, então eu estaria relutante em fazer isso.

EDITAR:

Sim, alterar a variável BootOrder (por meio da opção -o para efibootmgr ), como você sugere, é apropriado. Você pode excluir a entrada do OpenSUSE com:

sudo efibootmgr -b 0 -B

Pode haver arquivos OpenSUSE instalados que você possa excluir usando rm - probably sudo rm -r /boot/efi/EFI/opensuse do Ubuntu. (Esses arquivos não devem causar nenhum dano, mas podem ser confusos ou serem acidentalmente reativados no futuro.) Você pode remover o Ubuntu GRUB de maneira semelhante, embora possa ser reinstalado se / quando o Ubuntu atualiza no futuro. Além disso, mantê-lo como um método de backup de inicialização pode fazer sentido.

Se você deixar o GRUB do Ubuntu instalado, mas não quiser vê-lo no menu do rEFInd, você pode usar dont_scan_dirs ou dont_scan_files in refind.conf (provavelmente /boot/efi/EFI/refind/refind.conf do Ubuntu) para ocultar a entrada do GRUB. / p>     

por Rod Smith 16.11.2015 / 22:53
7

Isso aconteceu comigo e eu consertei com o seguinte no Ubuntu (isso é específico para o seu caso, pois a inicialização do Ubuntu é Boot0001* ):

sudo efibootmgr -o 80,1

Se você digitar novamente sudo efibootmgr , sua ordem de inicialização deverá ser agora BootOrder: 0080,0001 . Isso garante que o Mac seja inicializado primeiro e, como o rEFInd foi instalado no Mac, ele deve ser exibido primeiro.

    
por iDuran 30.12.2015 / 15:42