Come avviare Windows 7 quando grub è installato nella partizione Windows?


15

Titolo originale: Come posso risolvere (annullare) l'avvio di Windows 7 sulla stessa partizione con grub?

Sto studiando questo problema da due a tre giorni, ma sono rimasto vuoto.

Fondamentalmente, la partizione 1 è Windows 7 e la partizione 2 è Ubuntu 12.04. Ho detto a Ubuntu di installare nella partizione 2 e di installare GRUB sulla partizione 1 e che funziona bene. Ma il problema ora è che non riesco ad avviare Windows 7. Ritorna al menu di GRUB dopo averlo selezionato.

Da quello che ho studiato, se posso modificare GRUB per avviare Windows 7 "mbr" o il bootloader \windows\system32\winload.exe(senza utilizzare un disco di riparazione di Windows 7), il mio problema sarà risolto. È possibile?


L'URL di Boot-Repair-Info è http://paste.ubuntu.com/981952/


Uscita dal comando sudo blkid

/dev/sda1: UUID="1EA0019AA0017A13" TYPE="ntfs" 
/dev/sda2: UUID="e4402f9e-83df-4dc3-8913-69b28314d253" TYPE="ext4" 
/dev/sda3: LABEL="Vault Drive" UUID="74145BFD145BC132" TYPE="ntfs" 
/dev/sda4: UUID="1c030d32-657f-4a78-9468-307d9e09a977" TYPE="ext4"

Risposte:


14

È possibile creare un report di riepilogo Bootinfo utilizzando lo strumento di ripristino di avvio come descritto di seguito e quindi pubblicare il collegamento al report?

So che hai già fornito alcuni dettagli sulla configurazione di avvio. Tuttavia, il rapporto che sto chiedendo contiene informazioni più dettagliate e potrebbe darci una migliore comprensione del motivo per cui non è possibile avviare Windows utilizzando GRUB.

Come utilizzare boot-repair per fornire un "Riepilogo Bootinfo"


Poiché è ancora possibile avviare Ubuntu, è possibile installare ed eseguire lo strumento Boot-Repair utilizzando il apt-getcomando e quindi utilizzarlo per Create a Bootinfo summary.

Eseguire i comandi seguenti in una finestra del terminale per installare lo boot-repairstrumento.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. Al termine, immettere il comando boot-repairper avviare lo strumento.
  2. Dopo un leggero ritardo, boot-repairti verrà chiesto se desideri scaricare la versione più recente. Poiché hai appena installato la versione più recente, rispondi No.
  3. Se viene boot-repairrichiesto di installare il pastebinitpacchetto, rispondere con Yes.
  4. Lo strumento eseguirà ora la scansione del sistema e (eventualmente) visualizzerà la finestra mostrata nell'immagine seguente. Fai clic sulla Create a Bootinfo summarycasella / pulsante. In questo modo verranno raccolte informazioni sulla configurazione di avvio del sistema, ma non verranno apportate modifiche.


    Finestra iniziale di riparazione del bagagliaio

  5. Quando la sintesi bootinfo è stato creato, boot-repairverrà visualizzato un messaggio contenente un URL che dovrebbe assomigliare a questo: http://paste.ubuntu.com/123456/.

    Aggiorna / modifica la tua domanda e aggiungi questo URL. Le informazioni nel pastebin a cui punta questo link ci aiuteranno (spero) a diagnosticare il problema.

Penso che sovrascrivere il VBR della partizione di Windows abbia causato questo problema.

La mia comprensione è che ci sono diversi passaggi per l'avvio di un sistema operativo. Nel tuo caso, penso che accada qualcosa come i passaggi seguenti.

  1. Il BIOS sul tuo computer tenta di eseguire il codice nel primo settore del disco rigido. Questo primo settore è generalmente indicato come MBR (Master Boot Record) .
  2. Oltre all'MBR, ogni partizione può anche avere un record di avvio. Viene spesso indicato come Volume Boot Record o VBR . L'MBR sul disco rigido trasferisce i controlli al VBR della partizione 1, la partizione di Windows.
  3. Windows si aspetta che il VBR di una partizione faccia il passo successivo verso l'avvio di un sistema operativo come Windows 7. Quindi Windows avrebbe originariamente installato un VBR che trasferiva il controllo al bootmgrprogramma Windows nella partizione di Windows.

    Tuttavia, quando hai chiesto a Ubuntu di installare un programma per installare GRUB nella partizione di Windows, GRUB sembra aver sostituito Windows VBR con il suo. Questo GRUB VBR visualizza il menu di avvio di GRUB.
  4. Le istruzioni attualmente utilizzate da GRUB per avviare Windows sono essenzialmente per individuare il VBR nella partizione di Windows e trasferire ad esso il controllo. Il VBR nella partizione di Windows è il VBR di GRUB. Il trasferimento del controllo ad esso visualizza (ri) solo il menu di avvio di GRUB.

Sfortunatamente, non sono ancora sicuro di quale sarebbe il modo migliore per risolvere questo problema. Vogliamo stare attenti a non rompere GRUB e rendere impossibile l'avvio di qualsiasi cosa sul tuo computer quando proviamo a risolvere il problema all'avvio di Windows.

Di seguito è una copia di alcune delle informazioni dal tuo Riepilogo Bootinfo per riferimento. I miei commenti sopra si basano su queste informazioni.

============================= Boot Info Summary: ===========================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 
    of the same hard drive for core.img. core.img is at this location and 
    looks for (,msdos2)/boot/grub on this drive.

sda1: ______________________________________________________________________

    File system:       ntfs
    Boot sector type:  Grub2 (v1.99)
    Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1
                       and looks at sector 44090872 of the same hard drive 
                       for core.img. core.img is at this location and looks
                       for (,msdos2)/boot/grub on this drive. No errors 
                       found in the Boot Parameter Block.
    Operating System:  Windows 7
    Boot files:        /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda2: ______________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 12.04 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

Una possibile soluzione alternativa per avviare Windows 7

Di seguito è riportato un suggerimento per la modifica dei comandi di avvio di GRUB che potrebbe consentire di avviare Windows 7. Non sono sicuro che funzioni, ma vale la pena provare.

Attualmente, grub.cfgusi i seguenti comandi di avvio di GRUB per avviare Windows 7.

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    chainloader +1
}

Sto suggerendo di provare a cambiare questo e utilizzare invece questi comandi.

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

Ecco i passaggi per farlo.

  1. Avvia il tuo sistema dal menu di GRUB.
  2. Seleziona (evidenzia) la voce del menu di avvio di GRUB Windows 7 (loader) (on /dev/sda1).
  3. Premere eper modificare i comandi di avvio di GRUB per Windows 7.
  4. Apporta due modifiche a questo elenco di comandi come illustrato menuentrysopra.
    • Aggiungi il comando insmod ntldr
    • Cambia il comando
      chainloader +1
      in
      ntldr ($root)/bootmgr
  5. Premere Ctrl+ Xo F10per avviare utilizzando questi comandi modificati.

Nota 1:

Se la soluzione sopra descritta riesce a caricare il menu di avvio di Windows 7, è possibile renderlo semi-persistente

  1. Utilizzo sudoper modificare il file /etc/grub.d/40_custome aggiungere il secondo, modificato menuentrymostrato sopra. (Se lo fai, ti suggerirei anche di cambiare il titolo di questa voce "personalizzata".)
  2. Esegui il comando sudo update-grubper aggiornare /boot/grub/grub.cfgper includere la voce personalizzata. (Sarà nella parte inferiore del menu di GRUB all'avvio.)

Vorrei considerare il suggerimento sopra come solo una soluzione parzialmente cotta. Una soluzione migliore è ripristinare il VBR di Windows nella partizione di Windows senza distruggere anche la possibilità di avvio di GRUB.

Penso ... ma non sono sicuro al 100% ... che il comando di recupero di Windows bootsectpossa essere usato per fare questo. Se vuoi rischiare, un modo possibile per farlo è delineato di seguito.

  • Quando si avvia Windows, premere F8per visualizzare il Advanced Boot Optionsmenu.
  • Seleziona la Repair Your Computervoce
  • Cammina attraverso le finestre successive fino a raggiungere System Recovery Options.
  • Selezionare Command Prompt
  • Esegui il comando bootsect /nt60 C:

Ma potresti anche voler aspettare un po 'e vedere quali altre risposte ottieni alla tua domanda prima di correre il rischio di provare quanto sopra.

Nota 2:

Durante la ricerca di altre cose, ho incontrato altre due domande su AskUbuntu relative al tuo problema.

  1. Windows 7 non si avvia dopo l'installazione di Ubuntu 11
  2. Windows 7 non si avvia dopo l'installazione di Ubuntu

Non sono sicuro di quanto aiuto possano fornire queste domande. La risposta alla seconda domanda era usare il comando bootrec /fixbootper ripristinare il VBR per la partizione di Windows. La mia comprensione da quella domanda era che l'uso del bootrec /fixbootcomando risolveva il problema.

Ma la seconda domanda insiste sul bootrec /fixbootfatto che non ha risolto il problema.

(Mi fa capire cosa potrebbe succedere lì.)


Grazie per la risposta. Va bene, fortunato, ma se altre persone non lo sapevano, lo fanno ora. L'URL di Boot-Repair-Info è http://paste.ubuntu.com/981952/
Sim

1
Penso che il tuo problema sia stato causato dall'installazione di GRUB nella tua partizione di Windows. Vedi l'aggiornamento alla mia risposta.
irrazionale John,

Quindi cosa pensi che possa fare? Dovrei usare bootrec e quindi reinstallare grub? oppure c'è un'altro modo?
Sim

Potresti riparare l'avvio di Windows come al solito, quando fatto Windows si avvierà automaticamente senza nemmeno chiederti (Windows non riconosce Linux). Quando è stato risolto, puoi avviare Linux da USB ed eseguire nuovamente GRUB, questa volta non toccare la partizione di Windows;)
pzkpfw,

Aggiunto un suggerimento per una possibile soluzione temporanea alla mia risposta.
irrazionale John,

7
menuentry "Windows 7" {
    insmod ntfs
    set root=(hd0,1)
    drivemap -s (hd0) ($root)
    ntldr /bootmgr
    #or chainloader +1
}

Se hai installato Windows su una partizione diversa da (hd0,1) devi utilizzare il comando drivemap per avviare Windows. Chainloader +1 o ntldr / bootmgr possono essere usati entrambi per avviare Windows 7.

Quello che hai fatto è stato modificare il VBR della prima partizione; è possibile ripristinarlo eseguendo questi comandi in modalità di ripristino di Windows in cmd quando si avvia dal CD di installazione:

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd

Questa è l'unica risposta che funziona davvero. +1
margherita,

1

Non so davvero di "(UN) boot)" dovresti provare a riparare Windows usando il disco di ripristino di Windows (scegli Command Promptdi eseguire l' bootsect.exeutilità. Bootsect si trova all'interno della cartella di avvio, quindi cambia la directory in boot. Ora esegui bootsect /nt60 C:\(senza virgolette) se inizialmente Windows 7 era installato nella C:partizione. In alternativa, è possibile eseguire "bootsect / nt60 SYS" o "bootsect / nt60 ALL")

E quindi reinstallare GRUB.


Grazie per la risposta. Quello che volevo dire erano gli stivali grub ma non Windows dopo averlo selezionato. La ricerca, la gente dice che per riparare l'avvio per mbr, dovremmo usare "bootrec.exe / fixboot" quindi "bootrec.exe / fixmbr". Il tuo metodo è uguale a bootrec o diverso?
Sim

Nella mia esperienza, dopo l'installazione di Ubuntu come dual boot, sarà meglio eseguire Windows al riavvio e fare la riparazione da solo, quindi tornare su Ubuntu. Ho seguito questo metodo ogni volta e ho trovato di successo.
Beeju,

Vero. Per Windows utilizzo EasyBCD
Sim

0

GRUB è installato nel settore di avvio della partizione di Windows (PBR), come mostra BootInfo:

sda1: __________________________________________________________________________

File system:       ntfs
Boot sector type:  Grub2 (v1.99)
Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1 
                   and looks at sector 44090872 of the same hard drive 
                   for core.img. core.img is at this location and looks 
                   for (,msdos2)/boot/grub on this drive. No errors found 
                   in the Boot Parameter Block.
Operating System:  Windows 7

Questo impedisce l'avvio di Windows.

La soluzione è ben descritta qui: http://ubuntuforums.org/showpost.php?p=11693662&postcount=1


0

Ho avuto lo stesso problema e vorrei confermare la soluzione che ha funzionato per me nella speranza che aiuti gli altri ...

Ho modificato grub.cfg per riflettere le modifiche qui:

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

Cioè, ho aggiunto ...

insmod ntldr

e ha cambiato l'ultima riga in ...

ntldr ($ root) / bootmgr

Proverò a ripristinare il VBR a breve e riporterò come andrà a finire.


0

Risolto il mio problema di avvio di Windows 10 ....

menuentry "Windows 10 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13 
    ntldr ($root)/bootmgr
}

hexadec.code potrebbe essere diverso


2
Non sono sicuro che questo appartenga davvero a questa domanda ...
Zanna
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.