Я хочу це зробити, тому що я хочу встановити Windows 7, і моє меню BIOS не з’являється; воно переходить до меню grub2 на початку, але це вже інша історія ... Чи є спосіб завантажувати ізоляцію установки Windows 7 безпосередньо з grub2?
Я хочу це зробити, тому що я хочу встановити Windows 7, і моє меню BIOS не з’являється; воно переходить до меню grub2 на початку, але це вже інша історія ... Чи є спосіб завантажувати ізоляцію установки Windows 7 безпосередньо з grub2?
Відповіді:
Завантаження фактичного 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 або з більш новим обладнанням, але є також можливість ..
З 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
(або Disk Utility> Info).
Остаточний запис може виглядати приблизно так:
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
}
Так, ви можете подумати, що щось подібне спрацює:
menuentry "Boot Windoze" {
search -f "--set-root /Winblows.iso"
drivemap "/Winblows.iso" '(hd32)'
drivemap '--hook' ''
set root='(hd32)'
chainloader +1
}
Але Windows буде просто лаяти це.
Якщо у вас є щонайменше 4 Гб оперативної пам’яті, ви можете вирішити завантажити весь ізо-диск DVD у пам’яті та завантажити його. Для цього завантажте 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 за допомогою інструмента для завантаження Windows 7 USB / DVD і завантажив це. Вибачте, що, здається, немає іншого способу, який я бачу.
Технічно встановити з .iso
файлу Windows неможливо. Ви можете завантажуватися із .iso
використання grub, але після цього Windows втратить контакт із встановленим місцем розташування або він не здатний до цього. Тож grub
і Windows, і Windows повинні знати про встановлення та завантаження. Наразі Windows не підтримує.
Тому вам потрібно витягнути / скопіювати вміст у .iso
корінець розділу, а потім завантажити його в ланцюг за допомогою grub
.