Як завантажитися в Windows 7, коли grub встановлений у розділі Windows?


15

Оригінальна назва: Як я можу вирішити (не) завантаження Windows 7 на одному розділі з grub?

Я досліджував цю проблему два-три дні, але я з'явився порожнім.

В основному, розділ 1 - це Windows 7, а розділ 2 - Ubuntu 12.04. Я сказав Ubuntu встановити в розділ 2 та встановити GRUB на розділі 1, і це працює чудово. Але зараз проблема полягає в тому, що я не можу завантажувати Windows 7. Він просто повертається до меню GRUB після того, як я його виберу.

З того, що я дослідив, якщо я можу редагувати GRUB для завантаження Windows 7 "mbr" або завантажувача \windows\system32\winload.exe(без використання диска для відновлення Windows 7), моя проблема буде вирішена. Це навіть можливо?


URL-адреса Boot-Repair-Info є http://paste.ubuntu.com/981952/


Виведення з команди 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"

Відповіді:


14

Чи можете ви створити підсумковий звіт Bootinfo за допомогою інструмента відновлення завантаження, як описано нижче, а потім опублікувати посилання на звіт?

Я знаю, що ви вже надали деякі деталі щодо налаштування завантаження. Однак звіт, про який я прошу, містить більш детальну інформацію і може дати нам краще зрозуміти, чому ви не можете завантажувати Windows за допомогою GRUB.

Як користуватися ремонтом завантаження, щоб надати "Підсумок Bootinfo"


Оскільки ви все ще можете завантажувати Ubuntu, ви можете встановити та запустити інструмент відновлення завантаження за допомогою apt-getкоманди, а потім використати його Create a Bootinfo summary.

Виконайте команди нижче у вікні терміналу, щоб встановити boot-repairінструмент.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. Після цього введіть команду boot-repairзапуску інструменту.
  2. Після невеликої затримки boot-repairзапитаєте, чи хочете ви завантажити його найновішу версію. Оскільки ви тільки що встановили новітню версію, дайте відповідь No.
  3. Якщо ви boot-repairпопросите встановити pastebinitпакунок, дайте відповідь Yes.
  4. Тепер інструмент сканує вашу систему та (зрештою) відображатиме вікно, показане на зображенні нижче. Натисніть на Create a Bootinfo summaryполе / кнопку. Це дозволить зібрати інформацію про конфігурацію завантаження вашої системи, але не внесе жодних змін.


    Початкове вікно відновлення завантаження

  5. Коли резюме bootinfo було створено, boot-repairз'явиться повідомлення , що містить URL , який повинен виглядати наступним чином : http://paste.ubuntu.com/123456/.

    Оновіть / відредагуйте своє запитання та додайте цю URL-адресу. Інформація в пастбіні, на яку посилається ця посилання, (я сподіваюся) допоможе нам діагностувати проблему.

Я думаю, що перезапис VBR розділу Windows викликав цю проблему.

Я розумію, що для запуску операційної системи є кілька кроків. У вашому випадку я думаю, що відбувається щось на кшталт наведених нижче кроків.

  1. BIOS на вашому комп'ютері намагається запустити код у першому секторі жорсткого диска. Цей перший сектор зазвичай називають MBR (Master Boot Record) .
  2. Окрім MBR, кожен розділ також може мати запис завантаження. Його часто називають записом обсягу завантаження або VBR . MBR на вашому жорсткому диску передає елементи керування на VBR розділу 1, на ваш розділ Windows.
  3. Windows очікує, що VBR розділу виконає наступний крок до завантаження операційної системи, такої як Windows 7. Отже, Windows спочатку встановила б VBR, який передав би керування програмі Windows bootmgrу вашому розділі Windows.

    Однак, коли ви доручили Ubuntu встановити програму для встановлення GRUB у розділ Windows, схоже, GRUB замінив VBR для Windows на свій власний. Цей GRUB VBR відображає меню завантаження GRUB.
  4. Інструкції, які GRUB використовує в даний час для завантаження Windows, по суті, знаходять VBR в розділі Windows і передачу контролю на нього. VBR в розділі Windows - це VBR GRUB. Передача керування на нього просто (повторно) відображає меню завантаження GRUB.

На жаль, я ще не впевнений, що було б найкращим способом виправити це. Ми хочемо бути обережними, щоб ми не порушували GRUB і не дозволяли нічого не завантажувати на комп’ютері, коли ми намагаємося виправити проблему завантаження Windows.

Нижче наведено копію деякої інформації з вашого резюме Bootinfo для довідки. Мої коментарі вище засновані на цій інформації.

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

Можливе рішення для завантаження Windows 7

Нижче наведено пропозицію щодо редагування команд завантаження GRUB, які можуть дозволити вам завантажувати Windows 7. Я не впевнений, що це спрацює, але, здається, варто спробувати.

Наразі ви grub.cfgвикористовуєте команди завантаження GRUB нижче для завантаження 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
}

Я пропоную вам спробувати змінити це і використовувати замість них ці команди.

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
}

Ось такі кроки для цього.

  1. Завантажте систему в меню GRUB.
  2. Виберіть (виділіть) запис меню завантаження GRUB Windows 7 (loader) (on /dev/sda1).
  3. Натисніть eдля редагування команд завантаження GRUB для Windows 7.
  4. Внесіть дві зміни в цей список команд, як показано menuentryвище.
    • Додайте команду insmod ntldr
    • Змініть команду
      chainloader +1
      на
      ntldr ($root)/bootmgr
  5. Натисніть Ctrl+ Xабо F10для завантаження за допомогою цих відредагованих команд.

Примітка 1:

Якщо вищезгадане вирішення вдасться завантажити меню завантаження Windows 7, то ви можете зробити його наполовину стійким

  1. Використовуйте sudoдля редагування файлу /etc/grub.d/40_customта додавання другого, модифікованого, menuentryпоказаного вище. (Якщо ви це зробите, я також пропоную вам змінити назву цього "спеціального" запису.)
  2. Запустіть команду sudo update-grubдля оновлення, /boot/grub/grub.cfgщоб включити ваш індивідуальний запис. (Це буде внизу меню GRUB під час завантаження.)

Я б розглядав пропозицію вище як лише частково вирішене рішення. Краще рішення - відновити Windows VBR до розділу Windows, не знищуючи також здатності GRUB до завантаження.

Я думаю ... але я не впевнений на 100% ... що для цього bootsectможна використовувати команду відновлення Windows . Якщо ви хочете ризикувати, нижче описаний один із можливих способів.

  • Під час завантаження Windows натисніть, F8щоб відкрити Advanced Boot Optionsменю.
  • Виберіть Repair Your Computerзапис.
  • Пройдіться через наступні вікна, поки не дістанетесь System Recovery Options.
  • Виберіть Command Prompt
  • Виконайте команду bootsect /nt60 C:

Але ви також можете трохи почекати і подивитися, які ще відповіді ви отримаєте на своє запитання, перш ніж ризикнути спробувати вище.

Примітка 2:

Шукаючи інші речі, я натрапив на два інші питання щодо AskUbuntu, які стосуються вашої проблеми.

  1. Windows 7 не завантажиться після встановлення Ubuntu 11
  2. Windows 7 не завантажується після встановлення Ubuntu

Я не впевнений, наскільки допоможуть ці питання. Відповідь на друге питання полягала у використанні команди bootrec /fixbootвідновити VBR для розділу Windows. Моє розуміння з цього питання полягало в тому, що за допомогою bootrec /fixbootкоманди вирішено проблему.

Але друге питання наполягає , що bootrec /fixbootнічого НЕ вирішує проблему.

(Відбиває мене з того, що там може бути.)


Дякую за вашу відповідь Мені добре, пощастило, але якщо інші люди про це не знали, вони зараз. URL-адреса Boot-Repair-Info є http://paste.ubuntu.com/981952/
Sim

1
Я думаю, що ваша проблема була викликана установкою GRUB у розділ Windows. Дивіться оновлення моєї відповіді.
ірраціональний Іван

То що ви думаєте, що я можу зробити? Чи варто використовувати bootrec, а потім перевстановити grub? чи є інший спосіб?
Сім

Ви можете відновити завантаження Windows як завжди, коли це буде зроблено, Windows автоматично завантажиться, навіть не запитуючи вас (Windows не розпізнає Linux). Коли це виправлено, ви можете завантажити Linux з USB та запустити GRUB знову, на цей раз не торкайтеся розділу Windows;)
pzkpfw

До моєї відповіді додано пропозицію щодо можливого тимчасового вирішення.
нераціональне Іоанна

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

Якщо ви встановили Windows на розділ, відмінний від (hd0,1), вам потрібно використовувати команду drivemap для завантаження в Windows. Chainloader +1 або ntldr / bootmgr можна використовувати для завантаження Windows 7.

Що ви зробили - ви змінили VBR 1-го розділу; Ви можете відновити це, виконавши ці команди в режимі відновлення Windows у cmd під час завантаження з інсталяційного CD:

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd

Це єдина відповідь, яка насправді працює. +1
ромашка

1

Я дійсно не знаю про "(UN) завантаження)" ви повинні спробувати виправити свою Windows за допомогою диска для ремонту Windows (виберіть Command Promptзапуск bootsect.exeутиліти. Bootsect розташований всередині завантажувальної папки, тому змініть ваш каталог boot. Тепер запустіть bootsect /nt60 C:\(без лапки), якщо в розділі Windows 7 було встановлено спочатку C:. Ви також можете запустити "bootsect / nt60 SYS" або "bootsect / nt60 ALL")

А потім знову встановіть GRUB.


Дякую за відповідь Що я мав на увазі, це крупозні чоботи, але не вікна після того, як я його обрав. Досліджуючи, люди кажуть, що для відновлення завантаження для mbr, ми повинні використовувати "bootrec.exe / fixboot", а потім "bootrec.exe / fixmbr". Ваш метод такий же, як bootrec чи інший?
Сім

На мій досвід, після встановлення Ubuntu як подвійного завантаження, краще буде запустити Windows при перезавантаженні та виконати ремонт самостійно, а потім повертатися до Ubuntu.Я щоразу дотримувався цього методу і визнав його успішним.
б'єджу

Правда. Для Windows я використовую EasyBCD
Sim

0

GRUB встановлюється у вашому секторі завантаження розділів Windows (PBR), як показує ваш 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

Це запобігає завантаженню Windows.

Тут добре описано рішення: http://ubuntuforums.org/showpost.php?p=11693662&postcount=1


0

У мене була ця сама проблема і я хотів би підтвердити рішення, яке працювало на мене, сподіваючись, що це допоможе іншим ...

Я відредагував grub.cfg, щоб відобразити зміни тут:

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
}

Тобто я додав ...

insmod ntldr

і змінив останній рядок на ...

ntldr ($ root) / bootmgr

Невдовзі я спробую відновити VBR і докладу, як виявиться.


0

Вирішив проблему завантаження 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 може бути різним


2
Я не впевнена, що це дійсно належить до цього питання ...
Zanna
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.