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?


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
}

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ć.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.