O Boot-Repair criou muitas entradas do menu grub para Windows

11

Eu instalei recentemente o Ubuntu na inicialização dupla, juntamente com o Windows 10, em um laptop HP. Inicialmente, não consegui inicializar o Windows usando o grub, pois selecionar as opções do Windows retornaria ao grub.

Depois, executei um reparo de inicialização e todas essas opções extras apareceram no menu grub.

Consigo abrir o Windows usando a opção "Windows UEFI bootmgfw.efi", mas não usando a opção padrão do "Windows Boot Manager (em / dev / sda1).

Como reduzo essas entradas e por que não consigo inicializar o Windows usando a última opção?

Aqui está uma imagem do grub. A primeira opção é o Ubuntu:

grub - a primeira opção é o Ubuntu

Abhay
fonte
3
Não é realmente uma duplicata disso. O meu não mostra entradas do kernel do Linux. Além disso, não consigo inicializar o Windows usando a opção do gerenciador de inicialização.
Abhay
11
Uau, você é rápido! Você só deve aceitar depois de tentar uma resposta, mas essa certamente ajudará !!! ;-) Além disso, eu mencionei que você realmente deve fazer um backup antes de iniciar ou ter muito, muito cuidado com o que exclui ?!
Fabby
11
O uso do GRUB Customizer, como Fabby sugere, provavelmente ajudará. Quanto ao motivo pelo qual uma opção está funcionando e a outra não, precisamos ver o /boot/grub/grub.cfgarquivo no seu sistema. Minha suspeita é que a entrada que não está funcionando foi projetada para sistemas baseados em BIOS, mas a sua é claramente baseada em EFI; portanto, uma opção no modo BIOS é um iniciador (literal).
Rod Smith

Respostas:

5

O Windows está fora de tópico aqui, mas a resposta é que essa é uma tecnologia muito antiga e o setor de inicialização tem apenas 512 bytes; portanto, não é grande o suficiente para armazenar tudo o que gostaríamos.

Para adicionar e remover facilmente entradas do grub por conta própria, por favor:

  1. Faça um backup completo do sistema de todo o seu computador, incluindo os outros sistemas operacionais usando o CloneZilla Live
  2. Não, eu não estava brincando! Faça um backup completo do sistema primeiro! :-)
  3. Sempre que alguém lhe disser para instalar um PPA seja muito cauteloso, faça sua própria pesquisa se é isso que você realmente deseja e só então continue
  4. Instale o grub-customizer executando os seguintes comandos:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt update
    sudo apt install grub-customizer
    
  5. Inicie grub-customizere personalize o inferno disso: insira a descrição da imagem aqui

  6. Se você tiver problemas sérios, restaure o backup do sistema.

Fabby
fonte
11
Você tem um estilo delicado nas respostas e até nos seus comentários. Honestamente, eu realmente me pergunto por que nem todos marcam a resposta correta e útil como resposta, me frustram, mas nunca pedi. I pode copiar seus comentários e colá-lo após as minhas respostas 😂
Haitham A. El-Ghareeb
Acabei de lhe dar uma mais uma sobre uma grubpergunta diferente sobre como ocultar o menu de inicialização. No entanto, neste caso "estou relativamente certo", a resposta que acabei de publicar neste tópico é a correta. Já aconteceu comigo duas vezes agora e o método de reparo é impecável a cada vez.
WinEunuuchs2Unix
FTR Também votei nessa resposta. O comentário do ano passado pode ter sido mal interpretado.
WinEunuuchs2Unix
12

Toda vez que eu corro, boot-repairele adiciona cinco opções extras de inicialização do Windows ao meu grubmenu principal que não funcionam. No seu caso, adicionou 11 entradas extras!

grub.cfg mostra o problema

O segredo pode ser encontrado no /etc/grub/grub.cfgarquivo:

### BEGIN /etc/grub.d/25_custom ###
    menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}

menuentry "EFI/ubuntu/fwupx64.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/ubuntu/fwupx64.efi
}

menuentry "Windows UEFI bootmgfw.efi sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Boot/bkpbootx64.efi
### END /etc/grub.d/25_custom ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/nvme0n1p2)' --class windows --class os $menuentry_id_option 'osprober-efi-D656-F2A8' {
    savedefault
    insmod part_gpt
    insmod fat
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root  D656-F2A8
    else
      search --no-floppy --fs-uuid --set=root D656-F2A8
    fi
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-9478-B6E2' {
    savedefault
    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  9478-B6E2
    else
      search --no-floppy --fs-uuid --set=root 9478-B6E2
    fi
    chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###

A seção 30_os-probercontém as grubentradas de menu "boas" do Windows que você deseja manter. A seção 25_customcontém as entradas falsas criadas por boot-repair. Você não pode editar o arquivo de configuração do grub porque ele será substituído na próxima vez em que update-grubfor executado.


A seção 25_customfoi criada pelo Boot Repair

No meu sistema:

$ locate 25_custom
/boot/efi/boot-repair/log/20171111_224241/nvme0n1p5/25_custom
/boot/efi/boot-repair/log/20171208_030854/nvme0n1p5/25_custom
/etc/grub.d/25_custom

Dê uma olhada nas opções extras do Windows que foram configuradas (e não funcionam):

$ cat /boot/efi/boot-repair/log/20171208_030854/nvme0n1p5/25_custom
#!/bin/sh
exec tail -n +3 $0

menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}

menuentry "EFI/ubuntu/fwupx64.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/ubuntu/fwupx64.efi
}

menuentry "Windows UEFI bootmgfw.efi sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Boot/bkpbootx64.efi

Essas são as entradas erradas boot-repaircriadas nas /etc/grub.d/25_customquais foram compiladas posteriormente \boot\grub\grub.cfg.


A alteração do reparo reverso da inicialização para 25_custom

Use sudo -H gedit /etc/grub.d/25_custome exclua tudo, exceto as três primeiras linhas:

#!/bin/sh
exec tail -n +3 $0
  • O arquivo agora contém duas linhas com texto e uma linha em branco.
  • Salve o arquivo.
  • Corra sudo update-grub.
  • Reinicie.

Agora seu menu não está mais cheio de cinco entradas de menu falsas do Windows que não funcionam.

Verifique duas vezes há três linhas 25_custom

Execute este comando e verifique se 25_customtem três linhas:

$ wc /etc/grub.d/25_custom
      3       6      30
#     ^       ^       ^
#     |       |       +--- Number of characters
#     |       +----------- Number of words
#     +------------------- Number of lines

Eu adicionei os #comentários para decifrar wc(contagem de palavras) de saída.

WinEunuuchs2Unix
fonte
11
Não posso diminuir o voto da minha resposta nem excluí-la, mas posso votar novamente ... :) Cuidado que uma solução GUI sempre terá mais votos do que uma solução baseada em texto, embora a solução baseada em texto seja geralmente mais exata (= tecnicamente melhor)
Fabby
11
Como acabei de receber um voto positivo na minha resposta, fico surpreso ao ver que sua não GUI acumulou mais votos do que a minha! Bom trabalho!
Fabby
11
@ Obrigado Fabby. Eu também fiz um voto
positivo para você
Talvez eu esteja atrasado em perguntar, mas ... por que 25_custom é necessário? Por que essas três linhas são necessárias?
Poomerang 29/09/19
@poomerang É a ordem natural de um arquivo de configuração vazio no mundo do grub. É mais fácil se conformar do que se rebelar.
WinEunuuchs2Unix