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

12

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

user208513
источник
1
"мое меню BIOS не появляется" Но вы пытались войти в BIOS?
Митч
Что если я отформатирую жесткий диск? Будут ли Windows загружаться тогда? :)

Ответы:

7

Загрузка Windows XP с grub4dos

Загрузка действительного ISO с помощью grub legacy или 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 или с более новым оборудованием, но есть также опция ..

Загрузка 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
}

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

Вариант B использует уникальный UUID диска, который можно увидеть в Linux с sudo blkidOSX или с помощью, например, 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
}
ccpizza
источник
Ницца. Вместо этого я использовал --set = root --fs-uuid UUIDHERE (изменил порядок), хотя (не мог сказать, требовалось ли это или нет). Спасибо
Ян Кю Пеблик
@JanKyuPeblik Не могли бы вы загрузиться с ISO?
Анвар
Это мое воспоминание, да. Меня бы не интересовали другие вещи.
Ян Кью Пеблик
5

Да, вы думаете, что-то вроде этого будет работать:


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, и загрузил его туда. Извините, я не вижу другого способа увидеть это.

Warpspace
источник
Первый код загружается окна но не после того, как когда - то , как окна не знаю , где изо установлен
Тотти
Второй код может не работать, так как он не будет работать с iso из Ubuntu
тотти
ОП имеет в виду конкретно Windows 7. Удалось ли это проверить?
Warpspace
Возможно, вам не понравится Windows, но публиковать здесь «Winblows» и «Windoze» довольно непрофессионально. -1.
0xC0000022L
1
Поскольку я не профессиональный программист начальной загрузки, я могу жить с "непрофессионалом". Я думаю, что вы могли иметь в виду "неуважительно". Да, этот комментарий был 6 лет назад. С тех пор я сильно изменился (как и Windows)
Warpspace
5

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

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

Тотти
источник
2
Хорошая идея поделиться знаниями, но вы можете добавить прямой ответ на вопрос в технической форме. а именно повторно использовать текущий текст как заявление об отказе от ответственности, но затем вы можете расширить «вы можете загрузить из .iso» в пункты меню или что-то в этом роде. таким образом вы бы точно определили, какой метод (методы) вы предполагали для достижения того, о чем просили, хотя вы знаете, что он не работает для предполагаемой цели это также устранит неоднозначность количества решений, которые вы рассматривали.
n611x007