Avvia Windows 7 ISO da grub2


12

Voglio farlo perché voglio installare Windows 7 e il mio menu BIOS non appare; salta al menu di grub2 all'avvio, ma questa è un'altra storia ... C'è un modo per avviare iso di installazione di Windows 7 direttamente da grub2?


1
"il mio menu BIOS non appare" Ma hai provato ad accedere al BIOS?
Mitch

Cosa succede se formatto l'HDD? Windows si avvierà quindi? :)

Risposte:


7

Avvio di Windows XP con grub4dos

L'avvio dell'ISO effettivo con grub legacy o grub2 non funzionerà, ma con versioni di Windows precedenti (ad es. XP) è possibile decomprimere la cartella i386 dall'ISO alla chiavetta USB, quindi utilizzare grub4dos per chiamare il bootloader:

title windows installer via setupldr.bin
find --set-root /i386/setupldr.bin
chainloader /i386/setupldr.bin

o

title windows installer via /bootsect.bin
find --set-root /i386/setupldr.bin
chainloader /bootsect.bin

Questo potrebbe non funzionare con le versioni di Windows più recenti o con hardware più recente, ma esiste anche l'opzione di ..

Avvio di Windows 7 con grub2

Con grub2 apparentemente qualcosa del genere potrebbe funzionare per 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
}

L'opzione A presuppone che la chiavetta USB / HDD avviabile sia il primo dispositivo e abbia una tabella delle partizioni in stile msdos. Regola in base alla tua configurazione. Se il tuo dispositivo di avvio ha una tabella delle partizioni GPT, molto probabilmente dovrai usarlo (hd0,gpt1)(GPT in generale è più complicato da configurare).

L'opzione B utilizza l'UUID univoco dell'unità, che può essere visualizzato su Linux con sudo blkido su OSX con ad es. diskutil info disk0s1(O Utilità disco> Informazioni).

La voce finale potrebbe apparire come questa:

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
}

Bello. Ho usato invece --set = root --fs-uuid UUIDHERE (ordine modificato), invece (non sapevo dire se fosse necessario o meno). Grazie
Jan Kyu Peblik il

@JanKyuPeblik Potresti avviare da ISO?
Anwar,

Questo è il mio ricordo, sì. Non sarei stato interessato alle altre cose.
Jan Kyu Peblik,

5

Sì, penseresti che qualcosa del genere funzionerebbe:


menuentry "Boot Windoze" {
  search -f "--set-root /Winblows.iso"
  drivemap "/Winblows.iso" '(hd32)'
  drivemap '--hook' ''
  set root='(hd32)'
  chainloader +1
}

Ma Windows si limiterà a farlo.

Se ti capita di avere almeno 4 GB di RAM, puoi scegliere di caricare l'intero iso DVD nel memdisk e avviarlo. Per farlo, scarica SysLinux ed estrai il memdiskfile nella tua bootdirectory. Quindi è necessario aggiungere codice a Grub2 in questo modo


menuentry "Boot Windoze" {
  search -f "--set-root /Winblows.iso"
  insmod memdisk
  linux16 /boot/memdisk iso
  initrd16 /Winblows.iso
}

Tuttavia, non ho nemmeno intenzione di testare il codice, poiché inserire 3+ GB di dati nella RAM è semplicemente sbagliato (da un punto di vista idealogico). No, volevo davvero quello che volevi, ma alla fine ho messo l'installazione di Windows su una partizione su una USB usando lo strumento di download USB / DVD di Windows 7 e l'ho caricata a catena. Mi dispiace che non ci sia nessun altro modo che io possa vedere.


Il primo codice avvierà Windows ma fallirà dopo qualche tempo poiché Windows non sa dove è installato l'iso
totti

Il secondo codice potrebbe non funzionare, in quanto non funzionerà con iso di Ubuntu
totti il

L'OP si riferisce specificamente a Windows 7. Sei stato in grado di testarlo?
Warpspace

Windows potrebbe non piacerti, ma pubblicare "Winblows" e "Windoze" qui è piuttosto poco professionale. -1.
0xC0000022L

1
Dato che non sono un programmatore di bootstrap professionale, posso vivere con "non professionale". Penso che potresti aver significato "irrispettoso". Sì, quel commento è stato 6 anni fa. Da allora sono cambiato molto (e anche Windows)
Warpspace l'

5

Tecnicamente l'installazione dal .isofile di Windows non può essere possibile. È possibile eseguire l'avvio .isodall'utilizzo di grub, ma dopo ciò Windows perderà il contatto con la posizione montata o non sarà in grado di farlo. Quindi entrambi grube Windows dovrebbero essere consapevoli di montare e avviare. Attualmente Windows non supporta.

Quindi è necessario estrarre / copiare il contenuto .isonella radice di una partizione e quindi caricarlo a catena usando grub.


2
buona idea per condividere le conoscenze, ma è possibile aggiungere rispondendo direttamente alla domanda in modo tecnico. vale a dire riutilizzare il testo corrente come disclaimer, ma poi è possibile espandere il "è possibile avviare da .iso" in menuentries o qualcosa del genere. in questo modo faresti esatto quale (i) metodo (i) hai immaginato per ottenere ciò che ti è stato chiesto, sebbene tu sappia di non lavorare per lo scopo presunto. questo chiarirebbe anche il numero di soluzioni che hai preso in considerazione.
n611x007,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.