Boot Repair criou muitas entradas de menu do Grub para Windows

9

Eu instalei recentemente o Ubuntu em dual boot 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 seria simplesmente voltar ao grub.

Em seguida, executei um reparo de inicialização e todas essas opções extras foram exibidas no menu do grub.

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

Como faço para reduzir 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:

link

    
por Abhay 22.07.2017 / 09:31

3 respostas

4

O Windows está off-topic aqui, mas a resposta é que esta é uma tecnologia muito antiga e o setor de inicialização tem apenas 512 bytes, então não é grande o suficiente para armazenar tudo que gostaríamos para segurar.

Para adicionar e remover 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 total 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 quer e só então continuar
  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 o grub-customizer e personalize tudo:

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

por Fabby 22.07.2017 / 12:20
9

Sempre que executo boot-repair , são adicionadas 5 opções extras de inicialização do Windows ao meu menu principal grub , que não funcionam. No seu caso, adicionou 11 entradas extras!

grub.cfg mostra o problema

O segredo pode ser encontrado em /etc/grub/grub.cfg file:

### 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-prober contém as entradas de menu "bom" do Windows grub que você deseja manter. A seção 25_custom contém as entradas falsas criadas por boot-repair . Você não pode editar o arquivo de configuração do grub porque ele será simplesmente sobrescrito da próxima vez que update-grub for executado.

A seção 25_custom foi 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

Estas são as entradas erradas boot-repair criadas em /etc/grub.d/25_custom que foram subsequentemente compiladas em \boot\grub\grub.cfg .

A alteração do Reparo de inicialização reversa para 25_custom

Você deseja editar o arquivo /etc/grub.d/25_custom e excluir 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.
  • Executar sudo update-grub .
  • Reinicie.

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

Verifique duas linhas em 25_custom

Execute este comando e verifique se 25_custom tem 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 a saída wc (contagem de palavras).

    
por WinEunuuchs2Unix 07.04.2018 / 01:38
0

Every time I've run boot-repair it adds a 5 extra Windows boot options to my main grub menu that do not work. In your case it has added 11 extra entries! grub.cfg shows the problem

The secret can be found within /etc/grub/grub.cfg file:

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

The section 30_os-prober contains the "good" Windows grub menu entries you want to keep. Section 25_custom contains the bogus entries created by boot-repair. You can't edit the grub configuration file because it will simply be overwritten the next time update-grub is run. Section 25_custom was created by Boot Repair

On my system:

$ 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

Take a look at the extra Windows options that were setup (and don't work):

$ 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

These are the erroneous entries boot-repair created in /etc/grub.d/25_custom that were subsequently compiled into \boot\grub\grub.cfg. Reverse Boot Repair's change to 25_custom

You want to edit the file /etc/grub.d/25_custom and delete everything except the first three lines:

!/bin/sh exec tail -n +3 $0

The file now contains two lines with text and one blank line.
Save the file.
Run sudo update-grub.
Reboot.

Now your menu is no longer bloated with five bogus Windows menu entries that don't work. Double-check there are three lines in 25_custom

Run this command and verify 25_custom has three lines:

$ wc /etc/grub.d/25_custom 3 6 30

^ ^ ^

| | +--- Number of characters

| +----------- Number of words

+------------------- Number of lines

I added the # comments to decipher wc (word count) output.

Eu tentei editar 25_custom arquivo como Fabby descreveu.  No entanto, o unbuntu não salvará o arquivo de texto editado. Eu não sei o que fazer a partir daqui, como sou um iniciante.
Estou usando o ubuntu 18.10 , no modo avançado, (não o modo de recuperação avançada) Como essas opções extras, criadas pelo Boot-repair, podem ser removidas do 25_custom ?

-Andrew

$
/etc/grub.d/25_custom

'#! / bin / sh exec tail -n +3 $ 0

menuentry "Windows UEFI bootmgfw.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / Microsoft / Boot / bootmgfw.efi }

menuentry "Carregador UEFI de inicialização do Windows" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / Boot / bkpbootx64.efi }

menuentry "Inicialização do Windows UEFI fbx64.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / Boot / fbx64.efi }

menuentry "Windows Boot UEFI mmx64.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / Boot / mmx64.efi }

menuentry "EFI / ubuntu / MokManager.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / ubuntu / MokManager.efi }

menuentry "EFI / ubuntu / fwupx64.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / ubuntu / fwupx64.efi }

menuentry "EFI / ubuntu / mmx64.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / ubuntu / mmx64.efi }

menuentry "EFI / HP / BIOSUpdate / CryptRSA.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / HP / BIOSUpdate / CryptRSA.efi }

menuentry "EFI / HP / BIOSUpdate / HpBiosMgmt.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / HP / BIOSUpdate / HpBiosMgmt.efi }

menuentry "EFI / HP / BIOSUpdate / HpBiosUpdate.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / HP / BIOSUpdate / HpBiosUpdate.efi }

menuentry "EFI / HP / SystemDiags / CryptRSA.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / HP / SystemDiags / CryptRSA.efi }

menuentry "EFI / HP / SystemDiags / HpSysDiags.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / HP / SystemDiags / HpSysDiags.efi }

menuentry "EFI / HP / SystemDiags / SystemDiags.efi" { pesquisa --fs-uuid --no-floppy --set = root 8611-7AF2 chainloader ($ {root}) / EFI / HP / SystemDiags / SystemDiags.efi } ' $

    
por 26.03.2019 / 02:47