Comment démarrer dans Windows 7 lorsque grub est installé dans la partition Windows?

15

Titre original: Comment puis-je résoudre le (dé) démarrage de Windows 7 sur la même partition avec grub?

Je fais des recherches sur ce problème depuis deux à trois jours, mais je suis venu vide.

Fondamentalement, la partition 1 est Windows 7 et la partition 2 est Ubuntu 12.04. J'ai dit à Ubuntu d'installer dans la partition 2 et d'installer GRUB sur la partition 1 et cela fonctionne très bien. Mais le problème est maintenant que je ne peux pas démarrer Windows 7. Il revient simplement au menu GRUB après l'avoir sélectionné.

D'après mes recherches, si je peux modifier GRUB pour démarrer Windows 7 "mbr" ou le chargeur de démarrage \windows\system32\winload.exe(sans utiliser de disque de réparation Windows 7), mon problème sera résolu. Est-ce seulement possible?


L'URL de Boot-Repair-Info est http://paste.ubuntu.com/981952/


Sortie de la commande 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"
Sim
la source

Réponses:

14

Pourriez-vous créer un rapport de résumé Bootinfo à l'aide de l'outil de réparation de démarrage comme décrit ci-dessous, puis publier le lien vers le rapport?

Je sais que vous avez déjà fourni quelques détails sur votre configuration de démarrage. Cependant, le rapport que je demande contient des informations plus détaillées et pourrait nous aider à mieux comprendre pourquoi vous ne parvenez pas à démarrer Windows à l'aide de GRUB.

Comment utiliser la réparation de démarrage pour fournir un "Résumé Bootinfo"


Comme vous pouvez toujours démarrer Ubuntu, vous pouvez installer et exécuter l' outil Boot-Repair à l'aide de la apt-getcommande, puis l'utiliser pour Create a Bootinfo summary.

Exécutez les commandes ci-dessous dans une fenêtre de terminal pour installer l' boot-repairoutil.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. Une fois cette opération terminée, entrez la commande boot-repairpour démarrer l'outil.
  2. Après un léger retard, boot-repairvous demandera si vous souhaitez télécharger sa dernière version. Puisque vous venez d'installer la dernière version, répondez No.
  3. Si vous boot-repairdemande d'installer le pastebinitpackage, répondez par Yes.
  4. L'outil va maintenant scanner votre système et (éventuellement) afficher la fenêtre montrée dans l'image ci-dessous. Cliquez sur la Create a Bootinfo summarycase / le bouton. Cela collectera des informations sur la configuration de démarrage de votre système, mais n'apportera aucune modification.


    Fenêtre initiale de réparation de démarrage

  5. Lorsque le résumé de bootinfo a été créé, boot-repairaffiche un message contenant une URL qui devrait ressembler à ceci: http://paste.ubuntu.com/123456/.

    Veuillez mettre à jour / modifier votre question et ajouter cette URL. Les informations contenues dans la boîte de dialogue vers laquelle ce lien pointe (je l'espère) nous aideront à diagnostiquer le problème.

Je pense que l'écrasement du VBR de la partition Windows a causé ce problème.

Je crois comprendre qu'il y a plusieurs étapes pour démarrer un système d'exploitation. Dans votre cas, je pense que quelque chose comme les étapes ci-dessous se produit.

  1. Le BIOS de votre ordinateur tente d'exécuter le code dans le premier secteur du disque dur. Ce premier secteur est généralement appelé MBR (Master Boot Record) .
  2. En plus du MBR, chaque partition peut également avoir un enregistrement de démarrage. Il est souvent appelé enregistrement de démarrage de volume ou VBR . Le MBR de votre disque dur transfère les contrôles vers le VBR de la partition 1, votre partition Windows.
  3. Windows s'attend à ce que le VBR d'une partition prenne la prochaine étape vers le démarrage d'un système d'exploitation tel que Windows 7. Ainsi, Windows aurait initialement installé un VBR qui transfèrerait le contrôle au bootmgrprogramme Windows dans votre partition Windows.

    Cependant, lorsque vous avez demandé à Ubuntu d'installer un programme pour installer GRUB dans la partition Windows, GRUB semble avoir remplacé le VBR Windows par le sien. Ce GRUB VBR affiche le menu de démarrage GRUB.
  4. Les instructions que GRUB utilise actuellement pour démarrer Windows consistent essentiellement à localiser le VBR dans la partition Windows et à lui transférer le contrôle. Le VBR dans la partition Windows est le VBR de GRUB. Le transfert du contrôle à celui-ci affiche (re) simplement le menu de démarrage GRUB.

Malheureusement, je ne sais pas encore quelle serait la meilleure façon de résoudre ce problème. Nous voulons faire attention à ne pas casser GRUB et à empêcher le démarrage de quoi que ce soit sur votre ordinateur lorsque nous tentons de résoudre le problème de démarrage de Windows.

Vous trouverez ci-dessous une copie de certaines informations de votre résumé Bootinfo pour référence. Mes commentaires ci-dessus sont basés sur ces informations.

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

Une solution de contournement possible pour démarrer Windows 7

Vous trouverez ci-dessous une suggestion pour éditer vos commandes de démarrage GRUB qui peuvent vous permettre de démarrer Windows 7. Je ne suis pas sûr que cela fonctionnera, mais cela semble valoir la peine d'être essayé.

Actuellement, votre grub.cfgutilise les commandes de démarrage GRUB ci-dessous pour démarrer 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
}

Je vous suggère d'essayer de changer cela et d'utiliser ces commandes à la place.

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
}

Voici les étapes pour ce faire.

  1. Démarrez votre système dans le menu GRUB.
  2. Sélectionnez (mettez en surbrillance) l'entrée du menu de démarrage GRUB Windows 7 (loader) (on /dev/sda1).
  3. Appuyez sur epour modifier les commandes de démarrage GRUB pour Windows 7.
  4. Apportez deux modifications à cette liste de commandes, comme illustré menuentryci - dessus.
    • Ajoutez la commande insmod ntldr
    • Changez la commande
      chainloader +1
      en
      ntldr ($root)/bootmgr
  5. Appuyez sur Ctrl+ Xou sur F10pour démarrer à l'aide de ces commandes modifiées.

Note 1:

Si la solution de contournement ci-dessus réussit à charger le menu de démarrage de Windows 7, vous pouvez le rendre semi-persistant en

  1. Utiliser sudopour modifier le fichier /etc/grub.d/40_customet ajouter le second, modifié comme menuentryindiqué ci-dessus. (Si vous faites cela, je vous suggère également de modifier le titre de cette entrée "personnalisée".)
  2. Exécutez la commande sudo update-grubde mise à jour /boot/grub/grub.cfgpour inclure votre entrée personnalisée. (Il sera au bas du menu GRUB au démarrage.)

Je considérerais la suggestion ci-dessus comme seulement une solution partiellement cuite. Une meilleure solution consiste à restaurer le VBR Windows sur la partition Windows sans détruire également la capacité de démarrage de GRUB.

Je pense ... mais je ne suis pas sûr à 100% ... que la commande de récupération Windows bootsectpeut être utilisée pour ce faire. Si vous voulez le risquer, une façon possible de le faire est décrite ci-dessous.

  • Lors du démarrage de Windows, appuyez sur F8pour afficher le Advanced Boot Optionsmenu.
  • Sélectionnez l' Repair Your Computerentrée.
  • Parcourez les fenêtres suivantes jusqu'à ce que vous atteigniez System Recovery Options.
  • Sélectionner Command Prompt
  • Exécutez la commande bootsect /nt60 C:

Mais vous voudrez peut-être aussi attendre un peu et voir quelles autres réponses vous obtenez à votre question avant de prendre le risque d'essayer ce qui précède.

Note 2:

En cherchant d'autres choses, j'ai rencontré deux autres questions sur AskUbuntu qui sont liées à votre problème.

  1. Windows 7 ne démarre pas après l'installation d'Ubuntu 11
  2. Windows 7 ne démarre pas après l'installation d'Ubuntu

Je ne sais pas combien d'aide ces questions fournissent. La réponse à la deuxième question a été d'utiliser la commande bootrec /fixbootpour restaurer le VBR pour la partition Windows. Ma compréhension de cette question était que l'utilisation de la bootrec /fixbootcommande a résolu le problème.

Mais la deuxième question insiste sur le fait que cela bootrec /fixbootn'a pas résolu le problème.

(Je me fous de moi sur ce qui pourrait se passer là-bas.)

irrationnel John
la source
Merci pour votre réponse. Je l'ai bien, chanceux, mais si d'autres personnes ne le savaient pas, ils le font maintenant. L'URL de Boot-Repair-Info est http://paste.ubuntu.com/981952/
Sim
1
Je pense que votre problème est dû à l'installation de GRUB dans votre partition Windows. Voir la mise à jour de ma réponse.
John irrationnel
Alors, que pensez-vous que je puisse faire? Dois-je utiliser bootrec puis réinstaller grub? ou existe-t-il un autre moyen?
Sim
Vous pouvez réparer le démarrage de Windows comme d'habitude, lorsque cela sera fait, Windows démarrera automatiquement sans même vous le demander (Windows ne reconnaît pas Linux). Lorsque cela est résolu, vous pouvez démarrer Linux à partir d'un périphérique USB et réexécuter GRUB, cette fois ne touchez pas à la partition Windows;)
pzkpfw
Ajout d'une suggestion pour une solution de contournement temporaire possible à ma réponse.
John irrationnel
7
menuentry "Windows 7" {
    insmod ntfs
    set root=(hd0,1)
    drivemap -s (hd0) ($root)
    ntldr /bootmgr
    #or chainloader +1
}

Si vous avez installé Windows sur une partition autre que (hd0,1), vous devez utiliser la commande drivemap pour démarrer sur Windows. Chainloader +1 ou ntldr / bootmgr peuvent tous deux être utilisés pour démarrer Windows 7.

Ce que vous avez fait, c'est que vous avez modifié le VBR de la 1ère partition; vous pouvez restaurer cela en exécutant ces commandes en mode de récupération Windows dans cmd lorsque vous démarrez à partir du CD d'installation:

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd
Kross
la source
C'est la seule réponse qui fonctionne réellement. +1
daisy
1

Je ne connais pas vraiment le "(UN) démarrage" " vous devez essayer de réparer votre Windows en utilisant le disque de réparation de Windows (choisissez Command Promptd'exécuter l' bootsect.exeutilitaire. Bootsect est situé dans le dossier de démarrage alors changez votre répertoire en boot. Maintenant exécutezbootsect /nt60 C:\ (sans guillemets) si Windows 7 était initialement installé dans la C:partition. Vous pouvez également exécuter "bootsect / nt60 SYS" ou "bootsect / nt60 ALL")

Et puis réinstallez GRUB.

hardianto
la source
Merci pour la réponse. Ce que je voulais dire, c'était les bottes grub mais pas les fenêtres après l'avoir sélectionné. En recherchant, les gens disent que pour réparer le démarrage de mbr, nous devons utiliser "bootrec.exe / fixboot" puis "bootrec.exe / fixmbr". Votre méthode est-elle la même que bootrec ou différente?
Sim
D'après mon expérience, après l'installation d'Ubuntu en tant que double démarrage, il sera préférable d'exécuter Windows au redémarrage et de faire la réparation par lui-même, puis de revenir à Ubuntu.J'ai suivi cette méthode à chaque fois et j'ai réussi.
beeju
Vrai. Pour Windows, j'utilise EasyBCD
Sim
0

GRUB est installé dans votre secteur de démarrage de partition Windows (PBR), comme le montre votre 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

Cela empêche Windows de démarrer.

La solution est bien décrite ici: http://ubuntuforums.org/showpost.php?p=11693662&postcount=1

LovinBuntu
la source
0

J'ai eu ce même problème et je voudrais confirmer la solution qui a fonctionné pour moi dans l'espoir qu'elle aide les autres ...

J'ai édité grub.cfg pour refléter les changements ici:

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
}

Autrement dit, j'ai ajouté ...

insmod ntldr

et changé la dernière ligne en ...

ntldr ($ root) / bootmgr

Je vais essayer de restaurer le VBR sous peu et je vous dirai comment cela se passe.

Philippe
la source
0

Résolu mon problème de démarrage de 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 peut être différent

nkp
la source
2
Je ne suis pas sûr que cela appartient vraiment à cette question ...
Zanna