Aggiungi Windows 10 all'elenco del sistema operativo GRUB


29

Di recente ho ricevuto un computer da scuola. È arrivato con Windows 8.1 installato. Ho quindi installato un'altra copia di Windows 8.1 (in modo da utilizzare la licenza integrata di Windows Pro) e l'ho aggiornato a Windows 10. Ho quindi installato Ubuntu insieme a Windows 8 e 10.

Si noti che ho creato una partizione ext2 separata da 255 MB per / boot.

Ora, quando avvio il computer, vedo prima un prompt di GRUB (ho già nascosto il prompt di grub 'perché mi piace così) con Windows 8 e le opzioni di Ubuntu. Tuttavia, non esiste alcuna opzione di Windows 10. Se seleziono Ubuntu, il computer si avvia in Ubuntu. Tuttavia, se seleziono l'opzione Windows 8, vengo quindi inviato al bootloader di Windows, dove mi dà quindi le opzioni per avviare Windows 8 o Windows 10. (Tuttavia, a questo punto, il computer ha già caricato il kernel e tutti A quanto pare Microsoft ha frainteso il concetto di boot loader e ha deciso che ciò significava "avviare praticamente l'intero sistema prima di mostrare effettivamente il bootloader". Tipica Microsoft.)

Come posso disabilitare il bootloader di Windows e aggiungere un'opzione di Windows 10 a GRUB? EDIT: Qualcuno ha risposto dicendomi di disabilitare il bootloader di Windows. Tuttavia, non so ancora come aggiungere Windows all'elenco del sistema operativo GRUB. Qualcuno può aiutare con questo?

EDIT 2: Dopo aver rimosso Windows 10 dal bootloader di Windows con EasyBCD, sembrava che, dopo alcuni riavvii, si sarebbe scoperto continuamente e Windows 10 sarebbe riapparso. Tuttavia, successivamente ho eliminato Windows 10 dall'elenco dei sistemi operativi in ​​msconfig e sembra che sia rimasto eliminato.

Tuttavia, STILL non sono riuscito a far apparire Windows 10 in GRUB. È come se GRUB semplicemente non lo rilevasse.

Inoltre, lo inserirò nella domanda in modo che le persone lo vedano - ho provato a usare boot-repair, tuttavia, NON ha aiutato nessuno.


1
@ daltonfury42 Smetti di credere se non ascolti o non capisci quali sono i requisiti dell'OP! Raccomandare uno strumento che affronta principalmente problemi comuni nelle tipiche configurazioni di avvio legacy, per installazioni UEFI atipiche con requisiti speciali è fuorviante e controproducente.
LiveWireBT

2
@LiveWireBT Mi dispiace così tanto. Ho visto la tua risposta. Ho cancellato il mio commento (e ho smesso di credere: P). Grazie!
daltonfury42,

1
Penso che eliminerò solo l'intera partizione di Windows 10 e lo sposterò comunque su una VM.
Hitechcomputergeek,

Onestamente non sono sicuro del motivo per cui le persone stanno ancora votando questo, poiché l'IMO non è una grande domanda. Tuttavia, quest'anno l'ho risolto in un altro modo, convertendomi da MBR in avvio GPT e UEFI. Fondamentalmente, ho convertito lo schema di partizionamento in GPT, ho ridimensionato la partizione di Windows, ho aggiunto una partizione di sistema EFI e messo rEFInd su di essa, e ho creato un BCD di Windows usando un disco di installazione di Windows. Ora il sistema si avvia usando l'avvio UEFI, rendendo più semplice giocare con i sistemi operativi. Contrariamente a quanto dice Internet, non è stato troppo difficile convertire l'installazione di Windows dal BIOS in UEFI, ma non è stato nemmeno facile.
Hitechcomputergeek,

1
Per chiunque in futuro voglia fare qualcosa del genere e vuole attenersi al BIOS, credo che la risposta risieda nel BCD di Windows. Credo che l'installazione di Windows 10 non abbia un bootloader o un BCD o qualcosa del genere e non sia effettivamente in grado di avviarsi in modo indipendente. Se fatto correttamente, ho la sensazione che GRUB dovrebbe iniziare automaticamente a trovare la partizione di Windows 10.
Hitechcomputergeek,

Risposte:


25

Uso:

sudo update-grub
sudo grub-install /dev/[BOOT PARTITION eg. Sda6]

comandi nel terminale di Ubuntu, probabilmente risolverà il tuo problema.

Con questo comando il sistema rileverà automaticamente le tue installazioni di Windows e le aggiungerà all'elenco di GRUB.


2
Purtroppo non ha funzionato. Non sembra rilevare la partizione di Windows 10.
Hitechcomputergeek,

1
In realtà ho avuto lo stesso problema con il mio sistema (ho Windows 10 e Ubuntu 14.04), ed è stato risolto da questi comandi.
Neel Shah,

Quale comando ha risolto, il update-grubo grub-install? E hai una partizione separata / boot? Il fatto è che ho una partizione di avvio separata su penso che sia effettivamente sda6.
Hitechcomputergeek,

Fare quei due comandi (ovviamente) non lo ha risolto.
Hitechcomputergeek il

7
sudo update-grubfatto.
Thameera,

21

A volte os-prober è sbagliato.

Guarda l'UUID della tua partizione di Windows 10, ad esempio:

sudo blkid /dev/sda2

Quindi modifica /etc/grub.d/40_custome alla fine del file aggiungi:

menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid $your_uuid_here$
   ntldr /bootmgr
}

Non dimenticare di cambiare l'UUID.

E infine aggiorna il tuo file di configurazione di grub:

sudo update-grub

fonte


2
vale la pena notare che per Windows 10, di solito la prima partizione NON è quella di sistema Windows, (cioè sdb2 è corretta e sdb1 NON è) Ciò è dovuto al modo in cui Windows 10 è archiviato sul disco durante l'installazione e alla partizione riservata del sistema o la riparazione del sistema è sempre la prima). Grub spesso non riesce a trovare la seconda partizione se la prima sul disco fornisce già qualcosa di avviabile. il modo più semplice per trovare l'UUID corretto è trovare la partizione più grande sudo fdisk -le abbinarla al risultato di blkid.
Janmyszkier,

9

Questa soluzione fornisce una voce corretta nel menu grub2 e si carica direttamente in Windows 10 senza riferimento al BIOS. Viene da https://ihaveabackup.net/article/grub2-entry-for-windows-10-uefi quindi non rivendico credito. È stato un tale sollievo trovare una soluzione funzionante

In breve, modifica /etc/grub.d/40_custom e aggiungi:

menuentry 'Windows 10' {
    search --fs-uuid --no-floppy --set=root CC66-4B02
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

Per trovare l'UUID per --set = root line (nell'esempio CC66-4B02) si usa sudo fdisk -l per identificare la partizione EFI quindi sudo blkid / dev / sda1 (o qualunque altra cosa) per trovare l'UUID della partizione EFI . Nota che non è la partizione di Windows ma quella di EFI che ti serve. Dopo aver salvato la modifica, eseguire sudo update-grub per generare il file /boot/grub/menu.cfg e quindi riavviare per testare.


Immagino che il comando sudo / dev / sda1 dovrebbe essere sudo blkid / dev / sda1
makapuf

@makapuf - hai assolutamente ragione, grazie. Corretto.
Peterthevicar,

Ho seguito l'esatto tutorial e ricevo "Errore: Partizione non trovata" quando provo ad avviare la voce. Al momento del montaggio della partizione, sembra che "EFI / Microsoft / Boot / bootmgfw.efi" non esiste su quella partizione.
Xerus il

8

utilizzare questa app EasyBCD per Windows http://neosmart.net/EasyBCD/ scaricare la versione gratuita e installarla.

quando lo aprirai vedrai una voce per Windows 8 e una per Windows 10.

elimina la voce di Windows 8 e sarai a posto.

Aggiorna dopo aver eseguito i passaggi precedenti, torna su Ubuntu,

aprire il terminale premendo ctrl+ alt+T

quindi copia questi comandi uno dopo l'altro,

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair

e con ciò installerai uno strumento chiamato boot-repair.

apri la riparazione di avvio dal trattino e otterrai questa finestra

inserisci qui la descrizione dell'immagine

scegli la riparazione consigliata e segui i passaggi.

Nota che devi essere connesso a Internet quando usi il boot-repair.


1
@Hitechcomputergeek se hai bisogno di ulteriore aiuto, fammi sapere che avvierò Windows e ti farò alcune schermate.
RonnieDroid,

Aggiunge Windows 10 a GRUB? (Fammi indovinare: no) Voglio essere in grado di accedere a tutti e tre i sistemi operativi da GRUB, e questo risolve solo una parte del problema.
Hitechcomputergeek,

Ho aggiornato la domanda per chiedere come aggiungere Windows 10 all'elenco del sistema operativo GRUB. Ho valutato la tua risposta perché ha risolto parte del problema, ma poiché devo ancora aggiungere Windows 10 a GRUB, non accetto ancora la risposta.
Hitechcomputergeek il

2
Inoltre, ho notato che dici di aprire Boot Repair dal trattino, ma la linea lo sudo apt-get install -y boot-repair && boot-repairavrebbe già aperto.
Hitechcomputergeek il

1
È inoltre possibile utilizzare questo strumento in "modalità test di Ubuntu (modalità cd live)" in cui è possibile installarlo, eseguirlo e utilizzarlo dopo la connessione a Internet o alla moglie.
Alamjit Singh

4

Per quanto ho capito la tua domanda, hai due diverse installazioni di Windows su uno o più dischi rigidi e non vuoi che il caricatore di Windows si frapponga o gestisca entrambe le installazioni di Windows. Ricordo che sulle installazioni legacy era possibile avviare direttamente il kernel di Windows da Grub (potrei sbagliarmi qui) ma non sono stato in grado di farlo sulle configurazioni UEFI. Avere due configurazioni indipendenti del bootloader di Windows che possono essere richiamate da Grub in modo indipendente dovrebbe essere molto vicino a quello che stai cercando.

È arrivato con Windows 8.1 installato.

Presumo che si tratti di un computer compatibile con UEFI.

  1. Verifica che il computer sia effettivamente compatibile con UEFI (rimuoverò la mia risposta se non lo è) e familiarizza con le differenze tra BIOS e UEFI ( diverse modalità di avvio , efibootmgr, diverse tabelle di partizione, partizione di sistema EFI (ESP), caricatori EFI ...).
  2. Quindi verificare che tutti i sistemi operativi siano installati in modalità UEFI e verificare di disporre di una tabella delle partizioni GPT. È possibile utilizzare Windows ' dismper eseguire il backup e ripristinare le partizioni in un nuovo layout di tabella delle partizioni e utilizzare il prompt dei comandi dall'ultimo supporto di installazione di Windows per reinstallare il bootloader, maggiori dettagli su questo nel prossimo punto.
    • Dato che ti è stato consigliato di provare vari altri strumenti che non risolvono il tuo problema, devi riportare queste modifiche a una condizione incontaminata, altrimenti ciò diventerà sempre più confuso. Mi dispiace per quello. :(
  3. Puoi usare la mia risposta da Come avviare Windows 8 da una partizione MBR legacy in modalità UEFI tramite GRUB?
    • Questa risposta installa una configurazione indipendente del boot loader di Windows bcdbootin una posizione diversa in cui Grub la chiamerà. Per comodità ho scelto la partizione root di Windows. Dovrai farlo per ogni installazione di Windows, in modo che ogni installazione di Windows abbia la sua e si avvierà da sola (pulisci i singoli menu di avvio di Windows da altre voci).
    • Ricordare che è necessario creare una singola voce per ogni installazione di Windows in cui si desidera avviare /etc/grub.d/40_custome seguire le istruzioni e le spiegazioni su UUID, partizioni e tabelle delle partizioni.
    • Probabilmente disabilita tutte le funzionalità semi-intelligenti che rilevano diversi sistemi operativi come OS-prober in Grub ( GRUB_DISABLE_OS_PROBER) o risolvendo problemi di avvio con Windows o boot-repair (o ripulisci manualmente dopo di essi).

NB: La tua richiesta era di poter gestire tutti i sistemi operativi con Grub, tuttavia con UEFI, il termine tradizionale "dualboot" diventa quasi un termine improprio. UEFI consente la coesistenza di diversi bootloader su ESP e puoi scegliere quale avviare (se sono stati registrati nel firmware UEFI e il firmware del produttore non fa specifiche patrocinando come solo l'avvio di Windows). La cosa triste qui è che solo pochissime persone possono pensare di installare più di una versione (indipendente) di Windows , Linux o una versione di Ubuntu su un computer(o un disco rigido che viene utilizzato con più computer e avvia un'installazione diversa della stessa versione del sistema operativo su ciascun computer). La maggior parte di ciò è già possibile, ma i meccanismi di Windows e Ubuntu (Fedora, ...) chiaramente scelgono di sovrascrivere ciò che è nel loro spazio dei nomi con il falso presupposto che possa essercene solo uno.

(Avvio Windows 8/10, Ubuntu, Ubuntu LTS e Fedora su un computer e ho armeggiato alcune volte con l'avvio UEFI con requisiti diversi.)


1
Non uso Windows. Qualcuno ha provato a copiare / EFI / Windows in / EFI / Windows10 e / o / EFI / Windows8 e modificare ciascun BCD in modo che sia solo per quella versione? E poi in UEFI creare desideri per ciascuno. Se funziona da UEFI, grub può collegarsi direttamente a ciascuno di essi.
oldfred

@oldfred È quello che volevo puntare nella sezione inferiore e potrebbe esserci anche un parametro per bcdbootspecificare un'altra directory di destinazione, ma non ne sono sicuro. Il caricamento a catena degli altri binari EFI da un solo ESP semplifica notevolmente 40_custome rende meno soggetto a errori, hai ragione. Penso che fosse troppo concentrato su scenari multi-hard disk (in quel caso dovresti essere ancora in grado di dire a bcdboot di avviare Windows su hdd2 da ESP su hdd1, penso). m (
LiveWireBT

Il computer è compatibile con UEFI, ma sinceramente non ho idea di quale sia il problema con le partizioni in questo momento. La scuola aveva un'immagine Windows 8 personalizzata installata e sebbene stesse usando UEFI e Secure Boot (credo che il BIOS sia configurato per consentire sia UEFI che legacy boot in questo momento; ricordo di aver disabilitato Secure Boot), il disco rigido stesso è formattato usando MBR. Ecco uno screenshot: imgur.com/1vDS4jf (Sì, sto pianificando di ridimensionare presto un sacco di partizioni.) Inoltre, Ubuntu stesso (da grepping dmesg) non sembra essere stato avviato in modalità EFI, ma Non so se GRUB stesso possa
farlo

@Hitechcomputergeek Lo screenshot mostra una tabella delle partizioni msdos / MBR con una partizione estesa e nessuna partizione EFI. Come ho detto prima, dovresti avere GPT e puoi usarlo dismper le partizioni di Windows.
LiveWireBT

essere avviato come UEFI, ma quindi avviare altri sistemi operativi come non UEFI o qualcosa del genere. UEFI è fonte di confusione. EDIT: GRUB non viene avviato come UEFI. Non ho idea di cosa sia successo con Windows originale. In realtà, vieni a pensarci bene, immagino sia possibile che NON ERA UEFI in primo luogo. Ho pensato che fosse perché era praticamente impossibile accedere al BIOS a causa dell'ibernazione di Windows 8, a meno che non lo avessi avviato prima, quindi premi "Riavvia", POI ha tentato di accedere al BIOS. Non ho più avuto bisogno di farlo di nuovo da quando ho installato Ubuntu (e GRUB).
Hitechcomputergeek il

2

Accedi al tuo sistema operativo Ubuntu, apri un terminale:

sudo update-grub

riavvio

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.