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

10

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

Instalei com êxito o Ubuntu 14.04 para inicialização dupla com o OS X Yosemite no meu MacBook Pro 3.1 usando o rEFInd, mas agora após a inicialização no Ubuntu, o menu rEFInd não é exibido após uma reinicialização. Apenas vai direto para o grub. Depois de inicializar novamente no OS X (usando a tecla de opção na inicialização), às vezes o rEFInd aparece, às vezes não, não conseguia descobrir como ele é acionado.

Existe uma maneira de garantir que o rEFInd seja lançado primeiro, independentemente do SO que inicializei anteriormente?


Editar

Usando efibootmgr -vme 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 -nopção-0080, após a reinicialização, o rEFInd será exibido. O FFFF me traz diretamente para o OSX. 0081 parece falhar.

Obrigado pela ajuda!

paulkernstock
fonte
Aqui parece ser o artigo oficial da Refind: "Recuperando-se de um golpe Usando Linux" ou "Utilizar efibootmgr ajustar sua prioridade Boot" ajudaria: rodsbooks.com/refind/bootcoup.html
Kenju

Respostas:

11

Às vezes, os sistemas operacionais redefinem o programa de inicialização padrão, principalmente se eles atualizarem seus carregadores de inicialização padrão. Realmente não há como impedir que isso aconteça, então você deve simplesmente saber como corrigir o problema quando ele ocorrer. No Linux, isso é feito usando o efibootmgrprograma. No OS X, é feito via bless. Veja aqui para mais informações efibootmgr.

Se esse malabarismo estiver acontecendo toda vez que você reiniciar, algo estará seriamente errado. Se o Ubuntu estiver redefinindo o GRUB como padrão em todas as reinicializações, pessoalmente, eu o removerei - mas não sou fã do GRUB (o suficiente para que eu bifurque o rEFIt para torná-lo mais do que lidar com o GRUB). Suponho que você também possa ligar efibootmgrem um script de desligamento, mas isso corre o risco de se desconectar da realidade e causar problemas, por isso ficaria relutante em fazer isso.


EDITAR:

Sim, alterar a BootOrdervariável (através da -oopção para efibootmgr) conforme sugerido é apropriado. Você pode excluir a entrada do OpenSUSE com:

sudo efibootmgr -b 0 -B

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

Se você deixar o GRUB do Ubuntu instalado, mas não quiser vê-lo no menu do rEFInd, poderá usar dont_scan_dirsou dont_scan_filesno refind.conf(provavelmente /boot/efi/EFI/refind/refind.confdo Ubuntu) para ocultar a entrada do GRUB.

Rod Smith
fonte
Por favor, veja minha edição acima. Portanto, o próximo passo, presumo, seria excluir a entrada opensuse (removi esta distribuição há algum tempo) e defina o BootOrder como "0080.0001, FFFF", por exemplo. Isso está correto? Além disso, eu não me importaria de remover completamente o GRUB2, mas como posso fazer isso e obter o rEFInd para inicializar diretamente no Ubuntu? Vou precisar instalar o EFI Stub Loader, conforme indicado no seu site? Obrigado novamente!
21315 Paulkernstock
Por favor, veja minha edição acima.
Rod Smith
Agora isso definitivamente resolveu minha pergunta. Mas antes de remover o GRUB2, gostaria que o rEFInd chegasse ao Ubuntu, mas não o faz. No menu rEFInd, vejo duas entradas do Ubuntu, uma que diz "grub_x64" e outra que tenta inicializar diretamente no Ubuntu usando o kernel vmlinuz-3.13.0-67-generic que, quando selecionado, fica travado no prompt de reinicialização da rEFInd . Pressionar F2 no menu permitirá que eu escolha minha versão atual (3.19.0-32-genérica), mas com o mesmo resultado. Ao pressionar F2 novamente, as opções são exibidas em /boot/refind_linux.conf, ro quiet splash nomodeset vt.handoff=7iguais às do GRUB.
21315 Paulkernstock
Existe uma root={something}especificação em refind_linux.conf? Caso contrário, ele precisa ser adicionado. Você deve conseguir fazer isso executando o mkrlconfscript que acompanha o rEFInd, mas provavelmente precisará adicionar a --forceopção, como em sudo mkrlconf --force(mas talvez com o caminho completo para mkrlconf). Se isso ainda omitir a root=opção, mostre-me o que acontece quando você digita cat /proc/cmdline.
Rod Smith
O refind-linux.confque eu fiz usando seu mkrlconf-script possui três entradas com uma root=especificação (veja aqui ). No GRUB2, eu tive que adicionar a opção nomodesetpara colocar minha nVidia-GPU em execução. cat /proc/comdlinedá-me: BOOT_IMAGE=/boot/vmlinuz-3.19.0-32-generic root=UUID=1b9ece72-754f-4f4b-85c0-5b5ed6fc89e1 ro quiet splash nomodeset vt.handoff=7. Além disso, apesar do processo de inicialização travar visualmente na tela rEFInd-boot, o sistema parece iniciar, por exemplo, meu daemon de controle de fãs está sendo iniciado e os fãs ficam lentos.
paulkernstock
8

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

sudo efibootmgr -o 80,1

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

iDuran
fonte