Configure o rEFInd para inicializar o Ubuntu diretamente (nenhum menu do Grub exibido)

0

Eu gostaria de configurar um menuentry em rEFInd para inicializar diretamente no Ubuntu, sem usar o GRUB. Eu gostaria de manter o Grub à mão, no entanto, com uma entrada de menu para isso.

Eu copiei o kernel mais recente e refind_linux.conf de /boot/ para /boot/efi/EFI/ubuntu e criei o seguinte refind.conf:

#
# refind.conf
# Configuration file for the rEFInd boot menu
#

timeout 0
screensaver 300
banner mybanner.png
banner_scale fillscreen
scanfor manual,external,optical

menuentry Ubuntu {
    loader /EFI/ubuntu/vmlinuz-3.19.0-31-generic.efi.signed
    icon /EFI/refind/icons/os_linux.png
    ostype linux
    options "root=UUID=92f926f7-19f8-4a2b-9e9a-bf91db475a3c ro initrd=boot\initrd.img-3.19.0-31-generic"
    initrd boot\initrd.img-3.19.0-31-generic
}

menuentry Grub {
    loader /EFI/ubuntu/grubx64.efi
    icon /EFI/refind/icons-backup/os_unknown.png
}

O menuentry para o Grub funciona muito bem, mas o menuentry para o ubuntu até agora apenas cria o kernel panic (chave capslock piscando, sem boot) com e sem o ostype e opções. Adicionando linhas initrd, agora apenas diz que não pode encontrar o initrd ..., tenta novamente subir e morre.

Idealmente, eu também gostaria que o rEFInd atualizasse automaticamente a entrada do Ubuntu quando o kernel fosse atualizado.

Como eu mencionei, também estou mantendo o GRUB, então estaria ok com o controle de aprovação para o grub de forma transparente, mas não consegui descobrir como enviar opções diretamente para o grub, se essa é a maneira recomendada de fazer isso .

    
por Josiah 12.11.2015 / 23:49

1 resposta

1

A menos que você tenha motivos para não usar a detecção automática do rEFInd que você não mencionou, você está fazendo isso da maneira errada. Ou seja, você deve confiar na detecção automática para as opções GRUB e inicialização direta. Uma instalação padrão com opções padrão deve definitivamente pegar o GRUB automaticamente. Isso seria equivalente à sua opção menuentry Grub , exceto que a descrição e o ícone mostrados por rEFInd seriam diferentes. (Você pode alterar facilmente o ícone de várias maneiras, conforme descrito aqui .)

Dependendo de onde seu kernel está e de como você instalou o rEFInd, seus kernels podem ou não ser detectados automaticamente. Caso contrário, a solução usual é instalar um driver de sistema de arquivos EFI para qualquer sistema de arquivos que contenha seu kernel. Drivers para ext2 / 3fs, ext4fs, ReiserFS, Btrfs, e alguns em que seus kernels provavelmente não aparecerão todos com o rEFInd; e drivers para muitos mais vêm no pacote efifs. Solte o driver apropriado no subdiretório drivers ou drivers_x64 da sua instalação do rEFInd O diretório e o rEFInd devem ser capazes de detectar seus kernels em sua localização normal. (Observe que o rEFInd 0.10.0 fez algumas mudanças que ajudam ao usar o Btrfs; com versões anteriores, você precisou adicionar @/boot à linha also_scan_dirs em refind.conf para detectar kernels em volumes Btrfs. Isso não é mais necessário com rEFInd 0.10.0.)

O uso da detecção automática apresenta algumas grandes vantagens sobre o que você está tentando fazer:

  • Não há necessidade de copiar manualmente seu kernel; O rEFInd deve detectá-los a partir de suas "casas" normais.
  • Ao atualizar seu kernel, o rEFInd detectará automaticamente a versão recém-instalada, sem a necessidade de recopiar o kernel ou atualizar o arquivo de configuração.
  • É mais fácil. Na maioria dos casos, a detecção automática "simplesmente funciona" ou funciona com uma configuração extra mínima. (Pode ser necessário executar mkrlconf no Ubuntu para obter as opções de kernel corretas a serem usadas em alguns casos.) A opção manual initrd= pode ser complicada (erros de digitação não-óbvios e erros simples geralmente causam estragos), mas auto- A detecção do arquivo initrd é tipicamente impecável nos sistemas Ubuntu.

A maior desvantagem da detecção automática é que você não pode controlar o nome exibido como um prompt para o kernel. IMHO, este é um pequeno preço a pagar pelas vantagens.

Se você insiste em fazer do jeito que está tentando, o problema que você está tendo é causado pelo fato de que, a menos que eu tenha perdido alguma coisa, você copiou o kernel, mas não o arquivo initrd, para o ESP. A maneira mais fácil de fazê-lo funcionar é copiar os arquivos ambos para o mesmo local. Você deve então especificar o arquivo initrd usando o mesmo caminho que você usa para se referir ao kernel. Por exemplo:

menuentry Ubuntu {
    loader /EFI/ubuntu/vmlinuz-3.19.0-31-generic.efi.signed
    icon /EFI/refind/icons/os_linux.png
    ostype linux
    options "root=UUID=92f926f7-19f8-4a2b-9e9a-bf91db475a3c ro"
    initrd /EFI/ubuntu/initrd.img-3.19.0-31-generic
}

Note que você deve identificar o arquivo initrd na linha options ou em uma linha initrd separada, não em ambas. (Provavelmente funciona com especificações redundantes, mas não posso garantir isso. Na melhor das hipóteses, isso pode levar a confusão e / ou trabalho extra quando você precisa modificar as configurações.)

    
por Rod Smith 14.11.2015 / 23:41