Загрузите Windows 7 iso с grub2

Я хочу сделать это, потому что я хочу установить Windows 7, и мое меню BIOS не появляется; при запуске он переходит в меню grub2, но это уже другая история ... Есть ли способ загрузить iso для установки Windows 7 непосредственно с grub2?

9
задан 28 October 2013 в 04:29

3 ответа

Да, вы могли бы подумать, что что-то подобное сработает:


menuentry "Boot Windoze" {
  search -f "--set-root /Winblows.iso"
  drivemap "/Winblows.iso" '(hd32)'
  drivemap '--hook' ''
  set root='(hd32)'
  chainloader +1
}

Но Windows просто откажется от этого.

Если у вас есть как минимум 4 ГБ ОЗУ, вы можете выбрать загрузку всего DVD iso в memdisk и загрузиться с него. Для этого загрузите SysLinux и извлеките файл memdisk в каталог boot. Затем вам нужно добавить код в Grub2 примерно так


menuentry "Boot Windoze" {
  search -f "--set-root /Winblows.iso"
  insmod memdisk
  linux16 /boot/memdisk iso
  initrd16 /Winblows.iso
}

Однако я не собираюсь даже тестировать код, так как помещать более 3 ГБ данных в ОЗУ просто неправильно (из идеологической точка зрения). Нет, я действительно хотел то, что вы хотите, но, в конце концов, я установил установку Windows на раздел USB, используя инструмент загрузки USB / DVD Windows 7 , и загрузил его туда. Извините, я не вижу другого способа увидеть это.

0
ответ дан 28 October 2013 в 04:29

Загрузка Windows XP с помощью grub4dos

Загрузка фактического ISO с использованием устаревшего grub или grub2 не будет работать, но в более старых версиях Windows (например, XP) можно распаковать папку i386 из ISO в USB-накопитель, а затем используйте grub4dos для вызова загрузчика:

title windows installer via setupldr.bin
find --set-root /i386/setupldr.bin
chainloader /i386/setupldr.bin

или

title windows installer via /bootsect.bin
find --set-root /i386/setupldr.bin
chainloader /bootsect.bin

Это не будет работать с более новыми версиями Windows или с более новым оборудованием . [+1112]

Загрузка Windows 7 с помощью grub2

С grub2, очевидно, что-то подобное может работать для Windows 7 :

menuentry "Windows 7 (bootmgr)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    ### A: either use this line or the next one, but not both
    set root='(hd0,msdos1)' 
    ### B: 
    ### search --no-floppy --fs-uuid --set=root ____INSERT_PARTITION_UUID_HERE___
    ntldr ($root)/bootmgr
}

Опция A предполагает Ваш загрузочный USB-накопитель / жесткий диск является первым устройством и имеет таблицу разделов в стиле msdos. Отрегулируйте, чтобы соответствовать вашей конфигурации. Если ваше загрузочное устройство имеет таблицу разделов GPT, то, скорее всего, вам нужно будет использовать (hd0,gpt1) (GPT в общем случае сложнее настроить).

Опция B использует уникальный UUID накопителя, который можно увидеть в Linux с sudo blkid или в OSX с, например, diskutil info disk0s1 (или Дисковая утилита> Информация).

Последняя запись может выглядеть, например, так:

menuentry "Windows 7 installer" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    search --no-floppy --fs-uuid --set=root 0E239BC6-F960-3107-89CF-1C97F78BB46B
    ntldr /bootmgr
}
0
ответ дан 28 October 2013 в 04:29
  • 1
    Почему Вы передаете вывод find как строка? Почему не find | while read foo; do ...; done? В любом случае это также повреждается на именах файлов с пробелами или обратными косыми чертами на их имена. – terdon♦ 27 April 2015 в 17:59

Технически установка из файла Windows .iso невозможна. Вы можете загрузиться с .iso, используя grub, но после этого Windows потеряет контакт со смонтированным местоположением или не сможет этого сделать. Так что оба grub & amp; Windows должна знать о монтировании и загрузке. В настоящее время Windows не поддерживает.

Таким образом, вам нужно извлечь / скопировать содержимое .iso в корневой каталог раздела и затем загрузить в него цепочку, используя grub.

0
ответ дан 28 October 2013 в 04:29

Другие вопросы по тегам:

Похожие вопросы: