Chcę to zrobić, ponieważ chcę zainstalować system Windows 7, a moje menu BIOS nie pojawia się; przeskakuje do menu grub2 na początku, ale to inna historia ... Czy istnieje sposób na uruchomienie systemu Windows 7 ISO bezpośrednio z grub2?
Chcę to zrobić, ponieważ chcę zainstalować system Windows 7, a moje menu BIOS nie pojawia się; przeskakuje do menu grub2 na początku, ale to inna historia ... Czy istnieje sposób na uruchomienie systemu Windows 7 ISO bezpośrednio z grub2?
Odpowiedzi:
Uruchamianie rzeczywistego ISO za pomocą starszej wersji gruba lub grub2 nie będzie działać, ale w starszych wersjach systemu Windows (np. XP) można rozpakować folder i386 z ISO na pamięć USB, a następnie użyć grub4dos do wywołania bootloadera:
title windows installer via setupldr.bin
find --set-root /i386/setupldr.bin
chainloader /i386/setupldr.bin
lub
title windows installer via /bootsect.bin
find --set-root /i386/setupldr.bin
chainloader /bootsect.bin
Może to nie działać z nowszymi wersjami systemu Windows lub z nowszym sprzętem, ale istnieje również opcja…
Z grub2 podobno coś takiego może działać w systemie 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
}
Opcja A zakłada, że bootowalna pamięć USB / dysk twardy jest pierwszym urządzeniem i ma tablicę partycji w stylu msdos. Dostosuj do swojej konfiguracji. Jeśli twoje urządzenie rozruchowe ma tablicę partycji GPT, najprawdopodobniej będziesz musiał użyć (hd0,gpt1)
(GPT ogólnie jest trudniejsze do skonfigurowania).
Opcja B wykorzystuje unikatowy identyfikator UUID dysku, który można zobaczyć w systemie Linux z sudo blkid
OSX lub za pomocą np. diskutil info disk0s1
(Lub Narzędzie dyskowe> Informacje).
Ostatni wpis może wyglądać na przykład tak:
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
}
Tak, pomyślałbyś, że coś takiego działałoby:
menuentry "Boot Windoze" {
search -f "--set-root /Winblows.iso"
drivemap "/Winblows.iso" '(hd32)'
drivemap '--hook' ''
set root='(hd32)'
chainloader +1
}
Ale Windows po prostu się na to nie zgadza.
Jeśli akurat masz co najmniej 4 GB pamięci RAM, możesz zdecydować się na załadowanie całego dysku DVD ISO do pamięci i uruchomienie go. Aby to zrobić, pobierz SysLinux i rozpakuj memdisk
plik do swojego boot
katalogu. Następnie musisz dodać kod do Grub2 coś takiego
menuentry "Boot Windoze" {
search -f "--set-root /Winblows.iso"
insmod memdisk
linux16 /boot/memdisk iso
initrd16 /Winblows.iso
}
Nie zamierzam jednak nawet testować kodu, ponieważ umieszczenie ponad 3 GB danych w pamięci RAM jest po prostu błędne (z ideologicznego punktu widzenia). Nie, naprawdę chciałem tego, co chcesz, ale w końcu umieściłem instalację systemu Windows na partycji na USB za pomocą narzędzia do pobierania USB / DVD z Windows 7 i dołączyłem do tego. Przepraszam, nie widzę innego sposobu, w jaki mogę to zobaczyć.
Technicznie instalacja z .iso
pliku Windows nie jest możliwa. Możesz uruchomić system .iso
przy użyciu grub, ale po tym Windows utraci kontakt z zamontowaną lokalizacją lub nie będzie w stanie tego zrobić. Dlatego zarówno grub
system Windows, jak i Windows powinni wiedzieć o montażu i uruchamianiu. Obecnie system Windows nie obsługuje.
Musisz więc wyodrębnić / skopiować zawartość .iso
do katalogu głównego partycji, a następnie załadować do niej łańcuch przy użyciu grub
.