O grub-update do Kubuntu 20.04 (UEFI) não encontra o sistema de uma unidade diferente (Fedora 34 KDE)

O grub-update do Kubuntu 20.04 (UEFI) não encontra o sistema de uma unidade diferente (Fedora 34 KDE)

Tenho vários sistemas instalados; primeiro, cronologicamente, Windows 10, depois Kubuntu 20.04, depois Fedora 34 KDE e depois KaOS. O Fedora está sozinho em uma segunda unidade, com seu EFI separado, mas compartilha isso com o KaOS.

A configuração é assim:

Device             Start       End   Sectors   Size Type
/dev/nvme0n1p1      2048    739327    737280   360M EFI System
/dev/nvme0n1p2    739328   1001471    262144   128M Microsoft reserved
/dev/nvme0n1p3   1001472 457750527 456749056 217,8G Microsoft basic data
/dev/nvme0n1p4 457750528 459757567   2007040   980M Windows recovery environment
/dev/nvme0n1p5 459757568 500107263  40349696  19,2G Microsoft basic data
/dev/nvme0n1p6 500107264 644737022 144629759    69G Linux filesystem
/dev/nvme0n1p7 644737023 976773134 332036112 158,3G Linux filesystem



Device          Start        End    Sectors   Size Type
/dev/sda1        2048    1230847    1228800   600M EFI System
/dev/sda2   251660288 1258293247 1006632960   480G Linux filesystem
/dev/sda3  1258293248 1875384319  617091072 294,3G Microsoft basic data
/dev/sda4     1230848    3327999    2097152     1G Linux filesystem
/dev/sda5     3328000  251660287  248332288 118,4G Linux filesystem

insira a descrição da imagem aqui

insira a descrição da imagem aqui

/dev/nvme0n1p1é a partição EFI para Windows (instalada em /dev/nvme0n1p2) 5e Ubuntu (instalada em nvme0n1p6), /dev/sda1é a EFI para Fedora ( /dev/sda4e 5) e KaOS ( /dev/nvme0n1p7)

Esta estranha escolha está relacionada ao fato de que a instalação anterior de outro Linux, além do Kubuntu, usando o mesmo EFI do Windows, resultou na corrupção da inicialização do Windows; isso foi corrigido com a reinstalação do Kubuntu, que adicionou o Windows ao seu menu de inicialização; Eu queria evitar tal interferência com o Windows e, portanto, instalei o Fedora em uma unidade separada com seu próprio EFI e, quando instalei o KaOS na mesma unidade do Windows, optei por usar o EFI da outra unidade, compartilhando-o com o Fedora.

Depois de instalar o KaOS, seu menu de inicialização (executado por systems-boot, não grub)não mostrou os outros sistemas.

Os menus de inicialização do Fedora e do Ubuntu estavam ocultos na interface UEFI do firmware. O Fedora incluiu todos os sistemas.O menu de inicialização do kUbuntu incluía todos, exceto o Fedora.

Eu usei o reparo de inicialização tentando tornar o menu de inicialização do Fedora o padrão porque era o mais completo (instalando o grub no sda1), mas não havia uma opção para "inicializar primeiro" o Fedora: então, selecionei o Kubuntu. Isto resultou emO menu de inicialização do Kubuntu se tornou o padrão, faltando apenas o Fedora.

Dado que o grub do Kubuntu está agora no controle, eu gostaria de usá-lo e apenas adicionar o Fedora a ele. Atualizar o grub não ajuda.


EDIT-1, após comentários de @oldfred:

relatório de reparo de inicialização empasta-tambémAQUI(perguntado nos comentários)

EDIT-2, após resposta de @oldfred:

Eu pesquisei os arquivos grub.cfg do Kubuntu e descobri que a lista de inicialização do Kubuntu é determinada pelo arquivo boot/grub/grub.cfgadicionando uma entrada de menu lá.

Olhando para o arquivo grub.cfg do próprio Fedora que pude encontrar: faltam entradas do Fedora, apenas o restante dos sistemas está listado. Somente estes também são vistos no Grub Customizer no Fedora: As entradas do Fedora em sua própria lista de inicialização parecem determinadas pelos arquivos separados de /loader/entries/sua partição ext4 raiz de 1 GB (sda4). Copiar aqueles no /boot/efi/loader/entries/ do Kubuntu não tem efeito.

Estando sem o modelo próprio do Fedora para uma entrada no Kubuntu boot/grub/grub.cfg, copiei e modifiquei as linhas que encontrei lá para o KaOS - adicionando as especificações do Fedora, nomeadamente o UUID. Não tenho certeza se a formatação está correta, é exatamente aquela do KaOS naquele arquivo, com apenas o nome da distribuição e o UUID ajustados:

menuentry 'Fedora 34 KDE' --class Fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4834b108-13c9-406c-8a7b-a9c53440283c' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod fat
    set root='hd0,gpt1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  F4F4-1172
    else
      search --no-floppy --fs-uuid --set=root F4F4-1172
    fi
    echo    'Loading Linux linux ...'
    linux   /vmlinuz-linux root=UUID=4834b108-13c9-406c-8a7b-a9c53440283c rw  quiet
    echo    'Loading initial ramdisk ...'
    initrd  /initramfs-linux.img
}

Desta forma, o nome do Fedora é adicionado à lista de inicialização, é claro, mas não funciona:

com o UUID da bfrspartição ( sda5) recebo a mensagem:

mount: new/-root: unknown filesystem type ‘btrfs’

Eu tentei, por precaução, com o UUID da partição “root” do Fedora ( sda4), e recebo a mensagem:

Error: root device mounted successfully but sbin/init does not exist

A maneira correta de fazer isso é, eu acho, adicionar o UUID da sda5partição; que é aquele especificado em todos os três arquivos mencionados acima no Fedora/loader/entries/

Parece que o grub não reconhece o btrfs.

Instalei todos os arquivos relacionados ao “btrfs” que consegui encontrar usando o Apper, cerca de 30 pacotes, mas acontece o mesmo.


EDITAR-3

A partir de comentários mais distantes, entendo que não devo editar boot/grub/grub.cfg, mas editar o arquivo etc/grub.d/40_custome copiar partes de outros arquivos. Mas não entendo quais arquivos devo usar. Não consegui encontrar nas próprias partições do Fedora algo relacionado à sua própria inicialização e à sua própria entrada na lista de inicialização, além dos arquivos em ext4 - /loader/entries. Então é de um desses que devo copiar?

É algo assim copiado /media/root/651b659a-8fc5-46d6-b291-22b3b523ebaf/loader/entries/a037a4898b9540bfbc52f3f377b2ff4d-5.13.19-200.fc34.x86_64.conf(da partição ex4 sda4 de 1 GB do Fedora):

title Fedora (5.13.19-200.fc34.x86_64) 34 (KDE Plasma)
version 5.13.19-200.fc34.x86_64
linux /vmlinuz-5.13.19-200.fc34.x86_64
initrd /initramfs-5.13.19-200.fc34.x86_64.img
options root=UUID=4834b108-13c9-406c-8a7b-a9c53440283c ro rootflags=subvol=root rhgb quiet 
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel

Ou é algo parecido com a entrada para KaOS no arquivo do Kubununtu boot/grub/grub.cfgpostado em EDIT-2 acima?

Responder1

Eu já instalei o Fedora uma vez, mas antes ele usava o btrfs. Mas minha entrada grub no Ubuntu foi carregada em cadeia ou arquivo de configuração para a entrada de inicialização UEFI. Eu adicionei estes ao 40_custom no grub do Ubuntu. Os UUIDs são exclusivos e você precisa alterar os UUIDs da sua instalação. Para inicializar direto no grub

menuentry "Fedora UEFI" {
  search --file --no-floppy --set=root F496-1330
  chainloader (${root})/efi/fedora/grub.cfg
}

Muitas vezes você pode simplesmente copiar uma sub-rotina de inicialização do grub de uma instalação para outra. Isso é o que os-prober está fazendo. Você pode precisar de drivers adicionais (btrfs) ou arquivos .mod do grub2 (como btrfs.mod) para que ele reconheça diferentes formatos ou configurações. Se estiver usando o rEFInd, você deverá traduzir a estrofe do grub para refind.conf. Um arquivo de configuração é um link para outro arquivo que é grub ou possui sub-rotinas de inicialização do tipo grub.

menuentry "Fedora UEFI" {
search.fs_uuid a9bd9a65-bc8c-41b1-95b1-2dceb66b2652 root hd1,gpt2 
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
}

Usando o menu 40_custom e personalizado

https://help.ubuntu.com/community/Grub2/CustomMenus

Arquivo de configuração:

https://www.gnu.org/software/grub/manual/grub/grub.html#Multi_002dboot-manual-config

https://ubuntuforums.org/showthread.php?t=2076205&page=54&p=13788092#post13788092

informação relacionada