Как добавить Windows 7 в GRUB 2?

15920
user829876

У меня проблемы с добавлением Windows 7 в мое загрузочное меню GRUB 2. Я знаю, что подобные вопросы задавались и отвечали на этом и других сайтах, но ни один из ответов, похоже, не работает для меня.

Моя установка: два жестких диска, sda с установкой Win 7 и sdb с установкой Debian и GRUB2.

В моем BIOS я могу выбрать, с какого жесткого диска загружаться, и если я загружаюсь с первого жесткого диска, Windows запускается, поэтому я знаю, что он работает. Теперь я хочу добавить пункт меню в GRUB для загрузки Windows.

Я скачал bootinfoscript и запустил его, вот что RESULTS.txt:

 Boot Info Script 0.61 [1 April 2012]   ============================= Boot Info Summary: ===============================  => Windows is installed in the MBR of /dev/sda. => Grub2 (v1.99) is installed in the MBR of /dev/sdb and looks at sector 2048  of the same hard drive for core.img. core.img is at this location and  looks for (,gpt2)/boot/grub on this drive.  sda1: __________________________________________________________________________  File system:  Boot sector type: Windows Vista/7: NTFS Boot sector info:  Mounting failed: mount: unknown filesystem type ''  sda2: __________________________________________________________________________  File system: ntfs Boot sector type: Windows Vista/7: NTFS Boot sector info: No errors found in the Boot Parameter Block. Operating System: Windows 7 Boot files: /Windows/System32/winload.exe  sdb1: __________________________________________________________________________  File system: BIOS Boot partition Boot sector type: Grub2's core.img Boot sector info:   sdb2: __________________________________________________________________________  File system: ext4 Boot sector type: - Boot sector info:  Mounting failed: mount: unknown filesystem type '' mount: /dev/sdb2 already mounted or sdb2 busy  sdb3: __________________________________________________________________________  File system: swap Boot sector type: - Boot sector info:   ============================ Drive/Partition Info: =============================  Drive: sda _____________________________________________________________________  Disk /dev/sda: 256.1 GB, 256060514304 bytes 255 heads, 63 sectors/track, 31130 cylinders, total 500118192 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes  Partition Boot Start Sector End Sector # of Sectors Id System  /dev/sda1 * 2,048 206,847 204,800 7 NTFS / exFAT / HPFS /dev/sda2 206,848 500,115,455 499,908,608 7 NTFS / exFAT / HPFS   Drive: sdb _____________________________________________________________________  Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes 255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes  Partition Boot Start Sector End Sector # of Sectors Id System  /dev/sdb1 1 4,294,967,295 4,294,967,295 ee GPT   GUID Partition Table detected.  Partition Start Sector End Sector # of Sectors System /dev/sdb1 2,048 4,095 2,048 BIOS Boot partition /dev/sdb2 4,096 2,605,768,703 2,605,764,608 Data partition (Windows/Linux) /dev/sdb3 2,605,768,704 2,639,306,751 33,538,048 Swap partition (Linux)  "blkid" output: ________________________________________________________________  Device UUID TYPE LABEL  /dev/sda2 DCA04533A0451584 ntfs  /dev/sdb2 ea61c63c-0a93-44fb-894c-f652c28b67d0 ext4  /dev/sdb3 ca9c61ec-f99e-428c-bdf3-65fbbfc4b43b swap   ================================ Mount points: =================================  Device Mount_Point Type Options  /dev/disk/by-uuid/ea61c63c-0a93-44fb-894c-f652c28b67d0 / ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered) /dev/sda2 /mnt/win fuseblk (ro,nosuid,nodev,noexec,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)   =============================== StdErr Messages: ===============================  xz: (stdin): Compressed data is corrupt 

Похоже, OS-prober не может обнаружить мою установку Win7. Если я запускаю update-grub2(что, в свою очередь, запускает OS-Prober), он выдаст:

Generating grub.cfg ... Found background image: /usr/share/images/desktop-base/desktop-grub.png Found linux image: /boot/vmlinuz-3.2.0-4-amd64 Found initrd image: /boot/initrd.img-3.2.0-4-amd64 done 

Я пробовал некоторые варианты пунктов меню GRUB (путем изменения /etc/grub.d/40_customи запуска update-grub2). Вот некоторые из них:

Первый простой, вдохновленный (например) этой ссылкой: http://technologytales.com/2010/11/21/manually-adding-an-entry-for-windows-7-to-an-ubuntu-grub2 -меню/

menuentry 'Windows 7' { set root='(hd0,2)' chainloader +1 } 

Это не загрузится и приведет к следующему выводу GRUB:

 Booting a command list  error: invalid signature.  Press any key to continue... 

Тогда я попробовал это:

menuentry 'Windows 7' --class windows --class os { insmod part_msdos insmod ntfs set root='(hd0,2)' search --no-floppy --fs-uuid --set=root DCA04533A0451584 chainloader +1 } 

что приводит к:

BOOTMGR is missing Press Ctrl+Alt+Del to restart 

а потом я попробовал:

menuentry 'Windows 7' --class windows --class os { insmod part_msdos insmod ntfs insmod ntldr set root='(hd0,2)' search --no-floppy --fs-uuid --set=root DCA04533A0451584 ntldr ($root)/Windows/System32/winload.exe } 

который тоже не работает (переходит на пустой экран с мигающим курсором).

Я действительно в растерянности здесь. Любая помощь будет принята с благодарностью!

Обновление: я запустил boot-repair-disk (как предложено Моисеем в комментариях) с настройками по умолчанию. Он не добавил запись Win7 в меню загрузки. Возможно, ему не удалось обнаружить установку Win7, поскольку он перезаписал MBR с помощью GRUB. Вот ссылка на журнал boot-repair-disk .

4
Вы пробовали просто запустить автоматический Boot-repair-диск? Он сканирует все операционные системы и перестраивает grub без необходимости делать это вручную. Moses 11 лет назад 0
Спасибо за чаевые! Я не знал, что существует boot-repair-диск. Я запустил его с настройками по умолчанию, но не добавил ни одной записи в меню GRUB. Обновление вопроса выше с журналом восстановления загрузчика. user829876 11 лет назад 0

1 ответ на вопрос

1
Milind R

Проблема в том, что Windows 7 использует системный раздел размером 100 МБ, в котором находятся загрузочные файлы. Так что вам нужно загружаться с него, а не с вашего диска Windows (который называется загрузочным разделом).

menuentry 'Windows 7' { set root='(hd0,1)' chainloader +1 } 

Хотя, кажется, есть проблема с boot info scriptутверждением, что он не может смонтировать файловую систему, скорее всего, это сработает.