Démarrer Windows 7 ISO à partir de grub2

12

Je veux le faire car je veux installer Windows 7 et mon menu BIOS n'apparaît pas; il saute au menu grub2 au démarrage, mais c'est une autre histoire ... Existe-t-il un moyen de démarrer l'iso d'installation de Windows 7 directement à partir de grub2?

user208513
la source
1
"mon menu BIOS n'apparaît pas" Mais avez-vous essayé d'entrer dans le BIOS?
Mitch
Et si je formate le disque dur? Windows démarrera-t-il alors? :)

Réponses:

7

Démarrer Windows XP avec grub4dos

Le démarrage de l'ISO réel avec grub legacy ou grub2 ne fonctionnera pas, mais avec les anciennes versions de Windows (c'est-à-dire XP), il est possible de décompresser le dossier i386 de l'ISO vers la clé USB, puis d'utiliser grub4dos pour appeler le chargeur de démarrage:

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

ou

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

Cela peut ne pas fonctionner avec les nouvelles versions de Windows ou avec du matériel plus récent, mais il existe également l'option de ..

Démarrer Windows 7 avec grub2

Avec grub2, quelque chose comme ça pourrait fonctionner pour 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'option A suppose que votre clé USB / disque dur amorçable est le premier appareil et possède une table de partition de style msdos. Ajustez pour correspondre à votre configuration. Si votre périphérique de démarrage a une table de partition GPT, vous devrez probablement l'utiliser (hd0,gpt1)(le GPT en général est plus difficile à configurer).

L'option B utilise l'UUID unique du lecteur, qui peut être vu sur Linux avec sudo blkidou sur OSX avec par exemple diskutil info disk0s1(ou Utilitaire de disque> Info).

L'entrée finale pourrait ressembler par exemple à ceci:

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
la source
Agréable. J'ai utilisé à la place --set = root --fs-uuid UUIDHERE (ordre changé) (je ne pouvais pas dire si c'était nécessaire ou non). Merci
Jan Kyu Peblik
@JanKyuPeblik Pourriez-vous démarrer à partir de l'ISO?
Anwar
C'est mon souvenir, oui. Je n'aurais pas été intéressé par les autres trucs.
Jan Kyu Peblik
5

Ouais, on pourrait penser que quelque chose comme ça fonctionnerait:


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

Mais Windows rechignera à cela.

Si vous avez au moins 4 Go de RAM, vous pouvez choisir de charger l'intégralité de l'iso du DVD dans memdisk et de démarrer. Pour ce faire, téléchargez SysLinux et extrayez le memdiskfichier dans votre bootrépertoire. Ensuite, vous devez ajouter du code à Grub2 quelque chose comme ça


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

Cependant, je ne vais même pas tester le code, car mettre plus de 3 Go de données dans la RAM est tout simplement faux (d'un point de vue généalogique). Non, je voulais vraiment ce que vous vouliez, mais à la fin j'ai mis l'installation de Windows sur une partition sur un USB en utilisant l'outil de téléchargement USB / DVD de Windows 7 et chargé en chaîne à cela. Désolé, il ne semble pas y avoir d'autre moyen que je puisse voir.

Warpspace
la source
Le premier code démarrera Windows mais échouera après un certain temps car les fenêtres ne savent pas où l'iso est monté
totti
Le deuxième code peut ne pas fonctionner, car il ne fonctionnera pas avec iso d'Ubuntu
totti
L'OP fait spécifiquement référence à Windows 7. Avez-vous pu tester cela?
Warpspace
Vous n'aimez peut-être pas Windows, mais publier "Winblows" et "Windoze" ici est plutôt peu professionnel. -1.
0xC0000022L
1
Comme je ne suis pas un programmeur de bootstrap professionnel, je peux vivre avec "non professionnel". Je pense que vous auriez pu vouloir dire "irrespectueux". Oui, ce commentaire était il y a 6 ans. J'ai beaucoup changé depuis (et Windows aussi)
Warpspace
5

Techniquement, l'installation à partir du .isofichier Windows n'est pas possible. Vous pouvez démarrer à partir de .isogrub utilisant, mais après cela, Windows perdra le contact avec l'emplacement monté ou il n'en sera pas capable. Ainsi, grubWindows et Windows doivent tous deux être conscients du montage et du démarrage. Actuellement, Windows ne prend pas en charge.

Vous devez donc extraire / copier le contenu de la .isoracine d'une partition, puis la charger en chaîne à l'aide de grub.

totti
la source
2
bonne idée de partager les connaissances, mais vous pouvez ajouter directement en répondant à la question de manière technique. à savoir réutiliser le texte actuel comme avertissement, mais vous pouvez ensuite étendre le "vous pouvez démarrer à partir du .iso" dans les entrées de menu ou quelque chose. de cette façon, vous feriez exactement quelle (s) méthode (s) vous avez imaginé pour réaliser ce qui a été demandé, bien que vous sachiez ne pas fonctionner pour le but supposé. cela équivaudrait également à dénombrer le nombre de solutions que vous avez envisagées.
n611x007