Uruchom system Windows 7 ISO z grub2

12

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?

użytkownik208513
źródło
1
„Moje menu BIOS nie pojawia się”. Czy próbowałeś wejść do BIOS-u?
Mitch
Co się stanie, jeśli sformatuję dysk twardy? Czy wtedy uruchomi się Windows? :)

Odpowiedzi:

7

Uruchamianie systemu Windows XP za pomocą grub4dos

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…

Uruchamianie systemu Windows 7 za pomocą grub2

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 blkidOSX 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
}
ccpizza
źródło
Miły. Zamiast tego użyłem --set = root --fs-uuid UUIDHERE (zmiana kolejności) (nie mogłem powiedzieć, czy było to wymagane, czy nie). Dzięki
Jan Kyu Peblik
@JanKyuPeblik Czy można uruchomić system z ISO?
Anwar
Tak pamiętam. Nie byłbym zainteresowany innymi rzeczami.
Jan Kyu Peblik
5

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 memdiskplik do swojego bootkatalogu. 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ć.

Warpspace
źródło
Pierwszy kod uruchamia system Windows, ale po pewnym czasie kończy się niepowodzeniem, ponieważ system Windows nie wie, gdzie jest zamontowane ISO
totti
Drugi kod może nie działać, ponieważ nie będzie działał z ISO Ubuntu
totti
OP odnosi się konkretnie do systemu Windows 7. Czy byłeś w stanie to przetestować?
Warpspace
Windows może ci się nie podobać, ale zamieszczanie tutaj „Winblows” i „Windoze” jest raczej nieprofesjonalne. -1.
0xC0000022L
1
Ponieważ nie jestem profesjonalnym programistą bootstrap, mogę żyć z „nieprofesjonalnym”. Myślę, że mógłeś mieć na myśli „brak szacunku”. Tak, ten komentarz był 6 lat temu. Od tego czasu bardzo się zmieniłem (podobnie jak Windows)
Warpspace
5

Technicznie instalacja z .isopliku Windows nie jest możliwa. Możesz uruchomić system .isoprzy użyciu grub, ale po tym Windows utraci kontakt z zamontowaną lokalizacją lub nie będzie w stanie tego zrobić. Dlatego zarówno grubsystem Windows, jak i Windows powinni wiedzieć o montażu i uruchamianiu. Obecnie system Windows nie obsługuje.

Musisz więc wyodrębnić / skopiować zawartość .isodo katalogu głównego partycji, a następnie załadować do niej łańcuch przy użyciu grub.

Totti
źródło
2
dobrym pomysłem jest dzielenie się wiedzą, ale możesz dodać bezpośrednią odpowiedź na pytanie w sposób techniczny. mianowicie ponownie wykorzystaj bieżący tekst jako zrzeczenie się odpowiedzialności, ale wtedy możesz rozwinąć „możesz uruchomić z .iso” do menuentrali lub czegoś takiego. w ten sposób dokonasz dokładnej metody, którą sobie wyobrażasz, aby osiągnąć to, o co Cię prosiłeś, ale której nie wiesz, aby działać zgodnie z założonym celem. ujednoliciłoby to również liczbę rozważanych rozwiązań.
n611x007