Jak uruchomić system Windows 7, gdy grub jest zainstalowany na partycji Windows?

15

Tytuł oryginalny: Jak mogę rozwiązać (od) uruchamianie systemu Windows 7 na tej samej partycji za pomocą programu Grub?

Badam ten problem od dwóch do trzech dni, ale jestem pusty.

Zasadniczo partycja 1 to Windows 7, a partycja 2 to Ubuntu 12.04. Powiedziałem Ubuntu, aby zainstalował się na partycji 2 i zainstalował GRUB na partycji 1 i to działa dobrze. Ale problem polega na tym, że nie mogę uruchomić systemu Windows 7. Po prostu wraca do menu GRUB po jego wybraniu.

Z tego, co zbadałem, jeśli mogę edytować GRUB, aby uruchomić Windows 7 „mbr” lub bootloader \windows\system32\winload.exe(bez użycia dysku naprawczego Windows 7), mój problem zostanie rozwiązany. Czy to w ogóle możliwe?


Adres URL Boot-Repair-Info to http://paste.ubuntu.com/981952/


Dane wyjściowe polecenia 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
źródło

Odpowiedzi:

14

Czy możesz utworzyć raport Podsumowanie Bootinfo za pomocą narzędzia do naprawy rozruchu, jak opisano poniżej, a następnie opublikować link do raportu?

Wiem, że podałeś już kilka szczegółów na temat konfiguracji rozruchu. Jednak raport, o który proszę, zawiera bardziej szczegółowe informacje i może pomóc nam lepiej zrozumieć, dlaczego nie można uruchomić systemu Windows za pomocą GRUB-a.

Jak korzystać z naprawy rozruchu, aby uzyskać „Podsumowanie Bootinfo”


Ponieważ nadal można uruchomić system Ubuntu, możesz zainstalować i uruchomić narzędzie Boot-Repair za pomocą apt-getpolecenia, a następnie użyć go doCreate a Bootinfo summary .

Uruchom poniższe polecenia w oknie terminala, aby zainstalować boot-repairnarzędzie.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. Po zakończeniu wprowadź polecenie boot-repair aby uruchomić narzędzie.
  2. Po pewnym czasie boot-repairzapyta, czy chcesz pobrać jego najnowszą wersję. Ponieważ właśnie zainstalowałeś najnowszą wersję, odpowiedzNo .
  3. Jeśli pojawi się boot-repairmonit o zainstalowanie pastebinitpakietu, odpowiedz za pomocąYes .
  4. Narzędzie skanuje teraz twój system i (ostatecznie) wyświetla okno pokazane na obrazku poniżej. Kliknij Create a Bootinfo summarypole / przycisk. Spowoduje to zebranie informacji o konfiguracji rozruchowej systemu, ale nie spowoduje żadnych zmian.


    Początkowe okno naprawy rozruchu

  5. Gdy podsumowanie bootinfo został utworzony, boot-repairzostanie wyświetlony komunikat zawierający adres URL, który powinien wyglądać tak: http://paste.ubuntu.com/123456/.

    Zaktualizuj / edytuj pytanie i dodaj ten adres URL. Informacje znajdujące się w tym polu linku wskazują (pomogę) pomóc nam zdiagnozować problem.

Myślę, że nadpisanie VBR partycji Windows spowodowało ten problem.

Rozumiem, że uruchomienie systemu operacyjnego wymaga kilku kroków. W twoim przypadku wydaje mi się, że dzieje się coś takiego jak poniżej.

  1. System BIOS na komputerze próbuje uruchomić kod w pierwszym sektorze dysku twardego. Ten pierwszy sektor jest zwykle określany jako MBR (główny rekord rozruchowy) .
  2. Oprócz MBR każda partycja może mieć również rekord rozruchowy. Jest często określany jako rekord rozruchowy woluminu lub VBR . MBR na dysku twardym przenosi elementy sterujące na VBR partycji 1, partycji Windows.
  3. Windows oczekuje, że VBR partycji zrobi następny krok w kierunku uruchomienia systemu operacyjnego, takiego jak Windows 7. Tak więc Windows pierwotnie zainstalowałby VBR, który przeniósłby kontrolę do bootmgrprogramu Windows na partycji Windows.

    Jednakże, gdy poinstruowałeś Ubuntu, aby zainstalował program do zainstalowania GRUB-a na partycji Windows, wydaje się, że GRUB zastąpił Windows VBR swoim własnym. Ten GRUB VBR wyświetla menu startowe GRUB.
  4. Instrukcje, których obecnie używa GRUB do uruchomienia systemu Windows, służą przede wszystkim do zlokalizowania VBR na partycji Windows i przekazania kontroli na nią. VBR na partycji Windows to VBR GRUBA. Przeniesienie do niego kontroli po prostu (re) wyświetla menu uruchamiania GRUB.

Niestety nie jestem jeszcze pewien, jak najlepiej to naprawić. Chcemy zachować ostrożność, aby nie złamać GRUB-a i uniemożliwić uruchomienie dowolnego komputera na komputerze podczas próby rozwiązania problemu z uruchamianiem systemu Windows.

Poniżej znajduje się kopia niektórych informacji z Podsumowania Bootinfo w celach informacyjnych. Moje komentarze powyżej oparte są na tych informacjach.

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

Możliwe obejście uruchamiania systemu Windows 7

Poniżej znajduje się sugestia dotycząca edycji poleceń rozruchowych GRUB, które mogą pozwolić na uruchomienie systemu Windows 7. Nie jestem pewien, czy to zadziała, ale wydaje się, że warto spróbować.

Obecnie używasz grub.cfgponiższych poleceń rozruchowych GRUB do uruchomienia systemu 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
}

Sugeruję, abyś spróbował to zmienić i zamiast tego użyć tych poleceń.

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
}

Oto kroki, aby to zrobić.

  1. Uruchom system do menu GRUB.
  2. Wybierz (zaznacz) pozycję menu rozruchu GRUB Windows 7 (loader) (on /dev/sda1).
  3. Naciśnij, eaby edytować polecenia rozruchu GRUB dla Windows 7.
  4. Wprowadź dwie zmiany do tej listy poleceń, jak pokazano menuentrypowyżej.
    • Dodaj polecenie insmod ntldr
    • Zmień polecenie
      chainloader +1
      na
      ntldr ($root)/bootmgr
  5. Naciśnij Ctrl+ Xlub, F10aby uruchomić przy użyciu tych edytowanych poleceń.

Notatka 1:

Jeśli powyższe obejście zakończy się pomyślnie ładowaniem menu rozruchu systemu Windows 7, możesz ustawić go jako częściowo trwały

  1. Używając sudodo edycji pliku /etc/grub.d/40_customi dodając drugi, zmodyfikowanymenuentry pokazanego powyżej. (Jeśli to zrobisz, sugeruję również zmianę tytułu tego „niestandardowego” wpisu).
  2. Uruchom polecenie, sudo update-grubaby zaktualizować, /boot/grub/grub.cfgaby uwzględnić dostosowany wpis. (Po uruchomieniu pojawi się na dole menu GRUB).

Sugerowałbym, że powyższa sugestia jest tylko częściowo upieczonym rozwiązaniem. Lepszym rozwiązaniem jest przywrócenie Windows VBR na partycję Windows bez niszczenia zdolności uruchamiania GRUB-a.

Myślę ... ale nie jestem w 100% pewien ... że do tego celu bootsectmożna użyć polecenia odzyskiwania systemu Windows . Jeśli chcesz zaryzykować, możesz to zrobić w sposób opisany poniżej.

  • Podczas uruchamiania systemu Windows naciśnij, F8aby wyświetlić Advanced Boot Optionsmenu.
  • Wybierz Repair Your Computer wpis.
  • Przejdź przez kolejne okna, aż dojdziesz System Recovery Options.
  • Wybierz Command Prompt
  • Uruchom polecenie bootsect /nt60 C:

Ale możesz też poczekać chwilę i zobaczyć, jakie inne odpowiedzi otrzymasz na pytanie, zanim podejmiesz ryzyko wypróbowania powyższego.

Uwaga 2:

Podczas szukania innych rzeczy natknąłem się na dwa inne pytania na AskUbuntu, które są związane z twoim problemem.

  1. Windows 7 nie uruchamia się po zainstalowaniu Ubuntu 11
  2. System Windows 7 nie uruchamia się po instalacji Ubuntu

Nie jestem pewien, ile pomocy udzielają te pytania. Odpowiedzią na drugie pytanie było użycie polecenia bootrec /fixbootdo przywrócenia VBR dla partycji Windows. Z tego pytania zrozumiałem, że użycie bootrec /fixbootpolecenia rozwiązało problem.

Ale drugie pytanie twierdzi, że bootrec /fixbootzrobił nie rozwiązało problemu.

(Uderza mnie to, co się tam dzieje).

irracjonalny John
źródło
Dziękuję za odpowiedź. Dobrze, mam szczęście, ale jeśli inni ludzie o tym nie wiedzieli, robią to teraz. Adres URL z Boot-Repair-Info to http://paste.ubuntu.com/981952/
Sim
1
Myślę, że twój problem został spowodowany instalacją GRUB-a na partycji Windows. Zobacz aktualizację mojej odpowiedzi.
irracjonalny Jan
Jak myślisz, co mogę zrobić? Czy powinienem użyć bootrec, a następnie ponownie zainstalować grub? czy jest inny sposób?
Sim
Możesz naprawić boot systemu Windows jak zwykle, gdy to zrobisz, Windows uruchomi się automatycznie, nawet nie pytając (Windows nie rozpoznaje Linuksa). Kiedy to naprawisz, możesz uruchomić Linuksa z USB i ponownie uruchomić GRUB, tym razem nie dotykaj partycji Windows;)
pzkpfw
Dodano sugestię dotyczącą tymczasowego obejścia mojej odpowiedzi.
irracjonalny Jan
7
menuentry "Windows 7" {
    insmod ntfs
    set root=(hd0,1)
    drivemap -s (hd0) ($root)
    ntldr /bootmgr
    #or chainloader +1
}

Jeśli zainstalowałeś system Windows na partycji innej niż (hd0,1), musisz użyć polecenia driveemap, aby uruchomić system Windows. Chainloader +1 lub ntldr / bootmgr mogą być używane do uruchamiania systemu Windows 7.

To, co zrobiłeś, to zmodyfikowałeś VBR 1. partycji; możesz to przywrócić wykonując te polecenia w trybie odzyskiwania systemu Windows w cmd podczas uruchamiania z instalacyjnego dysku CD:

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd
kross
źródło
To jedyna odpowiedź, która faktycznie działa. +1
stokrotka
1

Naprawdę nie wiem o „(UN) bootowaniu”) , powinieneś spróbować naprawić system Windows za pomocą dysku naprawczego Windows (wybierz Command Prompturuchomienie bootsect.exenarzędzia. Bootsect znajduje się w folderze rozruchowym, więc zmień katalog na boot. Teraz uruchom bootsect /nt60 C:\(bez cudzysłowy), jeśli na C:partycji był początkowo zainstalowany system Windows 7. Alternatywnie możesz uruchomić „bootsect / nt60 SYS” lub „bootsect / nt60 ALL”)

A następnie ponownie zainstaluj GRUB.

hardianto
źródło
Dziękuję za odpowiedź. Miałem na myśli grub boot, ale nie okna po wybraniu. Badacze mówią, że aby naprawić boot dla mbr, powinniśmy użyć „bootrec.exe / fixboot”, a następnie „bootrec.exe / fixmbr”. Czy twoja metoda jest taka sama jak bootrec czy inna?
Sim
Z mojego doświadczenia wynika, że ​​po instalacji Ubuntu jako podwójnego rozruchu lepiej będzie uruchomić system Windows przy ponownym uruchomieniu i samodzielnie wykonać naprawę, a następnie wrócić do Ubuntu. Postępowałem zgodnie z tą metodą za każdym razem i okazało się, że się udało.
beeju
Prawdziwe. W systemie
Sim
0

GRUB jest zainstalowany w sektorze rozruchowym partycji Windows (PBR), jak pokazuje 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

Zapobiega to uruchomieniu systemu Windows.

Rozwiązanie jest ładnie opisane tutaj: http://ubuntuforums.org/showpost.php?p=11693662&postcount=1

LovinBuntu
źródło
0

Miałem ten sam problem i chciałbym potwierdzić rozwiązanie, które dla mnie zadziałało w nadziei, że pomoże innym ...

Zredagowałem grub.cfg, aby odzwierciedlić zmiany tutaj:

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
}

To znaczy, dodałem ...

insmod ntldr

i zmieniłem ostatnią linię na ...

ntldr ($ root) / bootmgr

Niedługo spróbuję przywrócić VBR i opiszę, jak to się potoczy.

Philip
źródło
0

Rozwiązałem problem z uruchamianiem systemu 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
}

Kod hexadec.code może być inny

nkp
źródło
2
Nie jestem pewien, czy to naprawdę dotyczy tego pytania ...
Zanna