Boot-Repair ha creato troppe voci di menu di grub per Windows


11

Di recente ho installato Ubuntu in dual boot insieme a Windows 10 su un laptop HP. Inizialmente non ero in grado di avviare Windows usando grub poiché la selezione delle opzioni di Windows sarebbe semplicemente tornata su grub.

Quindi ho eseguito una riparazione di avvio e tutte queste opzioni extra sono state visualizzate nel menu di grub.

Sono in grado di aprire Windows usando l'opzione "Windows UEFI bootmgfw.efi", ma non usando l'opzione standard di "Windows Boot Manager (su / dev / sda1).

Come posso ridurre queste voci e perché non riesco ad avviare Windows usando quest'ultima opzione?

Ecco un'immagine di grub. La prima opzione è Ubuntu:

grub - la prima opzione è Ubuntu



3
Non è proprio un duplicato di questo. Il mio non mostra le voci del kernel Linux. Inoltre il punto che non riesco ad avviare Windows utilizzando l'opzione di gestione avvio.
Abhay,

1
Wow, sei veloce! Dovresti accettare solo dopo aver provato una risposta, ma questa sicuramente ti aiuterà !!! ;-) Inoltre, ho già detto che dovresti davvero fare un backup prima di iniziare o essere molto, molto attento a ciò che elimini ?!
Fabby,

1
L'uso di GRUB Customizer, come suggerisce Fabby, è probabilmente d'aiuto. Per quanto riguarda il motivo per cui un'opzione funziona e un'altra no, dovremmo vedere il /boot/grub/grub.cfgfile dal tuo sistema. Il mio sospetto è che la voce non funzionante sia progettata per i sistemi basati su BIOS, ma la tua è chiaramente basata su EFI, quindi un'opzione in modalità BIOS è un (letterale) non avviatore.
Rod Smith,

Risposte:


5

Windows è fuori tema qui, ma la risposta è che questa è una tecnologia molto vecchia e il settore di avvio è di soli 512 byte, quindi non è abbastanza grande da contenere tutto ciò che vorremmo che tenesse.

Per aggiungere e rimuovere facilmente le voci da grub da solo, per favore:

  1. Esegui un backup completo del sistema dell'intero computer, inclusi gli altri sistemi operativi, utilizzando CloneZilla Live
  2. No, non stavo scherzando! Effettuare prima un backup completo del sistema ! :-)
  3. Ogni volta che qualcuno ti dice di installare un PPA , fai molta attenzione, fai le tue ricerche se questo è quello che vuoi davvero e solo allora continua
  4. Installa grub-customizer eseguendo i seguenti comandi:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt update
    sudo apt install grub-customizer
    
  5. Inizia grub-customizere personalizza l'inferno: inserisci qui la descrizione dell'immagine

  6. In caso di gravi problemi, ripristinare il backup del sistema.


1
Hai uno stile delicato nelle risposte e persino nei tuoi commenti. Sinceramente mi chiedo davvero perché non tutti contrassegnino la risposta corretta e utile come risposta, mi frustra ma non l'ho mai chiesto. Posso copiare i tuoi commenti e incollarli dopo le mie risposte 😂
Haitham A. El-Ghareeb,

Ti ho appena dato un plus su una grubdomanda diversa sul nascondere il menu di avvio. Tuttavia in questo caso "Sono relativamente certo" la risposta che ho appena pubblicato su questa discussione è quella corretta. Mi è successo due volte e il metodo di riparazione è impeccabile ogni volta.
WinEunuuchs2Unix

FTR Ho votato anche questa risposta. Il commento dell'anno scorso potrebbe essere stato frainteso.
WinEunuuchs2Unix

12

Ogni volta che boot-repairlo eseguo aggiunge al mio menu principale 5 opzioni di avvio extra di Windows grubche non funzionano. Nel tuo caso ha aggiunto 11 voci extra!

grub.cfg mostra il problema

Il segreto si trova nel /etc/grub/grub.cfgfile:

### 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 ###

La sezione 30_os-probercontiene le "buone" grubvoci del menu di Windows che desideri conservare. La sezione 25_customcontiene le voci fasulle create da boot-repair. Non è possibile modificare il file di configurazione di grub perché verrà semplicemente sovrascritto alla successiva update-grubesecuzione.


La sezione è 25_customstata creata da Boot Repair

Sul mio 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

Dai un'occhiata alle opzioni extra di Windows che sono state installate (e non funzionano):

$ 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

Queste sono le voci errate boot-repaircreate in /etc/grub.d/25_customcui sono state successivamente compilate \boot\grub\grub.cfg.


Modifica inversa Boot Repair in 25_custom

Usa sudo -H gedit /etc/grub.d/25_customed elimina tutto tranne le prime tre righe:

#!/bin/sh
exec tail -n +3 $0
  • Il file ora contiene due righe con testo e una riga vuota.
  • Salva il file.
  • Corri sudo update-grub.
  • Reboot.

Ora il tuo menu non è più gonfio con cinque false voci di menu di Windows che non funzionano.

Ricontrolla ci sono tre linee in 25_custom

Esegui questo comando e verifica 25_customha tre righe:

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

Ho aggiunto i #commenti per decifrare wc(conteggio parole) output.


1
Non posso sottovalutare la mia risposta né eliminarla, ma posso votarti ... :) Fai attenzione che una soluzione GUI otterrà sempre più voti di una soluzione basata su testo sebbene la soluzione basata su testo sia generalmente più esatta (= tecnicamente meglio)
Fabby

1
Dato che ho appena ricevuto un voto sulla mia risposta, sono sorpreso di vedere che la tua non-GUI ha accumulato più voti dei miei! Buon lavoro!
Fabby,

1
@Fabby Grazie. Ho appena dato un voto
positivo

Potrei essere in ritardo a chiedere ma ... perché è necessario 25_custom? Perché sono necessarie queste 3 linee?
Poomerang,

@poomerang È l'ordine naturale di un file di configurazione vuoto nel mondo di grub. È più facile conformarsi che ribellarsi.
WinEunuuchs2Unix
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.