Bonjour,

Je souhaites installer W7 sur mon PC par le grub. Mon PC ne detecte ni les USB boutable et mon lecteur CD est cassé.

Je dispose de l'image iso de W7 : "/windows7.iso"

j'ai trouvé ce code :
menuentry " W7 " {
    set iso_path="/windows7.iso"
    loopback loop $iso_path
    linux (loop)/isolinux/vmlinuz inst.stage2=hd:UUID="9bf8efe1-35c4-43f9-9aaf-eae19295dfb6" noeject iso-scan/filename=$iso_path
    initrd (loop)/isolinux/initrd.img
}
mais cela ne fonction pas comme les autres codes suivants
menuentry 'Boot Windoze 1' {
  search -f "--set-root /windows7.iso"
  drivemap "/Winblows.iso" '(hd32)'
  drivemap '--hook' ''
  set root='(hd32)'
  chainloader +1
}
menuentry 'Boot Windoze 2' {
  search -f "--set-root /windows7.iso"
  insmod memdisk
  linux16 /boot/memdisk iso
  initrd16 /Winblows.iso
}
menuentry 'Image CD de Windows' {
     #Le chemin complet vers le fichier image, depuis la racine de la clé USB
     #ex : le fichier est 'windows.iso' situé dans un dossier 'iso' de la clé
     set Image="/windows7.iso"

     insmod loopback
     insmod iso9660

     search --set=root -f ${Image}
     loopback loop (${root})'${Image}'
     chainloader +1
}

Qu'elle est le code à mettre dans le Grub pour booter sur l'iso de W7 ?


mon grub.cfg :
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_msdos
insmod ext2
set root='hd0,msdos6'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
else
  search --no-floppy --fs-uuid --set=root 9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=fr_FR
  insmod gettext
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='hd0,msdos6'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
else
  search --no-floppy --fs-uuid --set=root 9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
fi
insmod gfxmenu
loadfont ($root)/boot/grub2/themes/system/DejaVuSans-10.pf2
loadfont ($root)/boot/grub2/themes/system/DejaVuSans-12.pf2
loadfont ($root)/boot/grub2/themes/system/DejaVuSans-Bold-14.pf2
loadfont ($root)/boot/grub2/fonts/unicode.pf2
insmod png
set theme=($root)/boot/grub2/themes/system/theme.txt
export theme
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Fedora (3.19.8-100.fc20.x86_64) 20 (Heisenbug)' --class fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9bf8efe1-35c4-43f9-9aaf-eae19295dfb6' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	else
	  search --no-floppy --fs-uuid --set=root 9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	fi
	echo 'Loading Fedora (3.19.8-100.fc20.x86_64) 20 (Heisenbug)'
	linux	/boot/vmlinuz-3.19.8-100.fc20.x86_64 root=UUID=9bf8efe1-35c4-43f9-9aaf-eae19295dfb6 ro rd.md=0 rd.lvm=0 rd.dm=0  vconsole.keymap=fr rd.luks=0 rhgb quiet LANG=fr_FR.UTF-8
	echo 'Loading initial ramdisk ...'
	initrd /boot/initramfs-3.19.8-100.fc20.x86_64.img
}
menuentry 'Fedora (3.19.8-100.fc20.x86_64+debug) 20 (Heisenbug)' --class fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9bf8efe1-35c4-43f9-9aaf-eae19295dfb6' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	else
	  search --no-floppy --fs-uuid --set=root 9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	fi
	echo 'Loading Fedora (3.19.8-100.fc20.x86_64+debug) 20 (Heisenbug)'
	linux	/boot/vmlinuz-3.19.8-100.fc20.x86_64+debug root=UUID=9bf8efe1-35c4-43f9-9aaf-eae19295dfb6 ro rd.md=0 rd.lvm=0 rd.dm=0  vconsole.keymap=fr rd.luks=0 rhgb quiet LANG=fr_FR.UTF-8
	echo 'Loading initial ramdisk ...'
	initrd /boot/initramfs-3.19.8-100.fc20.x86_64+debug.img
}
menuentry 'Fedora (3.19.5-100.fc20.x86_64) 20 (Heisenbug)' --class fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9bf8efe1-35c4-43f9-9aaf-eae19295dfb6' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	else
	  search --no-floppy --fs-uuid --set=root 9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	fi
	echo 'Loading Fedora (3.19.5-100.fc20.x86_64) 20 (Heisenbug)'
	linux	/boot/vmlinuz-3.19.5-100.fc20.x86_64 root=UUID=9bf8efe1-35c4-43f9-9aaf-eae19295dfb6 ro rd.md=0 rd.lvm=0 rd.dm=0  vconsole.keymap=fr rd.luks=0 rhgb quiet LANG=fr_FR.UTF-8
	echo 'Loading initial ramdisk ...'
	initrd /boot/initramfs-3.19.5-100.fc20.x86_64.img
}
menuentry 'Fedora (3.19.5-100.fc20.x86_64+debug) 20 (Heisenbug)' --class fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9bf8efe1-35c4-43f9-9aaf-eae19295dfb6' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	else
	  search --no-floppy --fs-uuid --set=root 9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	fi
	echo 'Loading Fedora (3.19.5-100.fc20.x86_64+debug) 20 (Heisenbug)'
	linux	/boot/vmlinuz-3.19.5-100.fc20.x86_64+debug root=UUID=9bf8efe1-35c4-43f9-9aaf-eae19295dfb6 ro rd.md=0 rd.lvm=0 rd.dm=0  vconsole.keymap=fr rd.luks=0 rhgb quiet LANG=fr_FR.UTF-8
	echo 'Loading initial ramdisk ...'
	initrd /boot/initramfs-3.19.5-100.fc20.x86_64+debug.img
}
menuentry 'Fedora (3.19.3-100.fc20.x86_64) 20 (Heisenbug)' --class fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9bf8efe1-35c4-43f9-9aaf-eae19295dfb6' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	else
	  search --no-floppy --fs-uuid --set=root 9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	fi
	echo 'Loading Fedora (3.19.3-100.fc20.x86_64) 20 (Heisenbug)'
	linux	/boot/vmlinuz-3.19.3-100.fc20.x86_64 root=UUID=9bf8efe1-35c4-43f9-9aaf-eae19295dfb6 ro rd.md=0 rd.lvm=0 rd.dm=0  vconsole.keymap=fr rd.luks=0 rhgb quiet LANG=fr_FR.UTF-8
	echo 'Loading initial ramdisk ...'
	initrd /boot/initramfs-3.19.3-100.fc20.x86_64.img
}
menuentry 'Fedora (3.19.3-100.fc20.x86_64+debug) 20 (Heisenbug)' --class fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9bf8efe1-35c4-43f9-9aaf-eae19295dfb6' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	else
	  search --no-floppy --fs-uuid --set=root 9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	fi
	echo 'Loading Fedora (3.19.3-100.fc20.x86_64+debug) 20 (Heisenbug)'
	linux	/boot/vmlinuz-3.19.3-100.fc20.x86_64+debug root=UUID=9bf8efe1-35c4-43f9-9aaf-eae19295dfb6 ro rd.md=0 rd.lvm=0 rd.dm=0  vconsole.keymap=fr rd.luks=0 rhgb quiet LANG=fr_FR.UTF-8
	echo 'Loading initial ramdisk ...'
	initrd /boot/initramfs-3.19.3-100.fc20.x86_64+debug.img
}
menuentry 'Fedora 19 Rescue 69d27b356a94476da859461d3a3bc6fd (3.13.6-100.fc19.x86_64.debug)' --class fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9bf8efe1-35c4-43f9-9aaf-eae19295dfb6' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	else
	  search --no-floppy --fs-uuid --set=root 9bf8efe1-35c4-43f9-9aaf-eae19295dfb6
	fi
	echo 'Loading Fedora 19 Rescue 69d27b356a94476da859461d3a3bc6fd (3.13.6-100.fc19.x86_64.debug)'
	linux	/boot/vmlinuz-0-rescue-69d27b356a94476da859461d3a3bc6fd root=UUID=9bf8efe1-35c4-43f9-9aaf-eae19295dfb6 ro rd.md=0 rd.lvm=0 rd.dm=0  vconsole.keymap=fr rd.luks=0 rhgb quiet LANG=fr_FR.UTF-8
	echo 'Loading initial ramdisk ...'
}
menuentry " W7 " {
    set iso_path="/windows7.iso"
    loopback loop $iso_path
    linux (loop)/isolinux/vmlinuz inst.stage2=hd:UUID="9bf8efe1-35c4-43f9-9aaf-eae19295dfb6" noeject iso-scan/filename=$iso_path
    initrd (loop)/isolinux/initrd.img
}

	initrd /boot/initramfs-0-rescue-69d27b356a94476da859461d3a3bc6fd.img
submenu 'Advanced options for Fedora' $menuentry_id_option 'gnulinux-advanced-9bf8efe1-35c4-43f9-9aaf-eae19295dfb6' {
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Recovery Environment (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-B681-27DD' {
	insmod part_msdos
	insmod fat
	set root='hd0,msdos1'
### 	if [ x$feature_platform_search_hint = xy ]; then
### 	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  B681-27DD
### 	else
### 	  search --no-floppy --fs-uuid --set=root B681-27DD
### 	fi
	drivemap -s (hd0) B681-27DD
	chainloader +1
}
menuentry 'Boot Windoze 1' {
  search -f "--set-root /Winblows.iso"
  drivemap "/Winblows.iso" '(hd32)'
  drivemap '--hook' ''
  set root='(hd32)'
  chainloader +1
}
menuentry 'Boot Windoze 2' {
  search -f "--set-root /Winblows.iso"
  insmod memdisk
  linux16 /boot/memdisk iso
  initrd16 /Winblows.iso
}
menuentry 'Image CD de Windows' {
     #Le chemin complet vers le fichier image, depuis la racine de la clé USB
     #ex : le fichier est 'windows.iso' situé dans un dossier 'iso' de la clé
     set Image="/Winblows.iso"

     insmod loopback
     insmod iso9660

     search --set=root -f ${Image}
     loopback loop (${root})'${Image}'
     chainloader +1
}
menuentry 'Windows 7 (loader) (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-chain-262485182484EBDD' {
	insmod part_msdos
	insmod ntfs
	set root='hd0,msdos2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 --hint='hd0,msdos2'  262485182484EBDD
	else
	  search --no-floppy --fs-uuid --set=root 262485182484EBDD
	fi
	chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
Bonjour ren39,

Sauf erreur, je ne pense pas qu'on puisse booter directement sur un fichier .iso , ni copié simplement sur un cd ou dvd ou clé usb ...!!!??? Il faut toujours rendre ces différents médias bootables préalablement. Donc je ne pense pas que grub puisse le faire quand l'iso est simplement copié sur ta clé.

A ta place, je m'inspirerais de ceci : http://doc.fedora-fr.org/wiki/Installation_sans_media en adaptant l'explication fournie pour grub à grub2. Mais, bon, je n'ai jamais essayé ...

Attends d'autres réponses de gens plus compétents.

EDIT : D'où viennent ces menuentry que l'on voit dans ton grub.cfg après la ligne ### BEGIN /etc/grub.d/30_os-prober ### ? C'est la commande grub2-mkconfig qui les a ajoutés ou c'est toi ?

EDIT2 : Tu dis simplement qu'aucun " code " ne marche, mais quelles sont les entrées relatives à Windows 7 qui s'affichent dans ton grub au lancement de l'ordi ? Quel est le message d'erreur qui vient après avoir choisi une de ces entrées ?
Fifi wrote:... Donc je ne pense pas que grub puisse le faire quand l'iso est simplement copié sur ta clé...
Ce n'est pas exact, apparemment il peut le faire à partir d'une image .iso d'une distrib linux, avec les bonnes commandes : http://www.linuxpedia.fr/doku.php/expert/boot_ubuntu_iso_grub2 ... mais le peut-il pour un Windows ???
Bonjour Fifi
Fifi wrote:EDIT : D'où viennent ces menuentry que l'on voit dans ton grub.cfg après la ligne ### BEGIN /etc/grub.d/30_os-prober ### ? C'est la commande grub2-mkconfig qui les a ajoutés ou c'est toi ?
ces menuentry ont été ajouté par moi à la main sauf le menuentry 'Windows 7 (loader) (on /dev/sda2)'

Fifi wrote:EDIT2 : Tu dis simplement qu'aucun " code " ne marche, mais quelles sont les entrées relatives à Windows 7 qui s'affichent dans ton grub au lancement de l'ordi ? Quel est le message d'erreur qui vient après avoir choisi une de ces entrées ?
je te donne dans la journée les messages d'erreur.
Bonjour ren39,

Bon, apparemment tu as pas mal bidouillé ton grub.cfg ! C'est à éviter ! ---> Au début du fichier, on te dit :
DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
Dans la rubrique ### BEGIN /etc/grub.d/10_linux ###, après les menuentry de Fedora 20, tu as intercalé un menuentry pour Windows 7 (#W7# ) au milieu du menuentry de Fedora 19 rescue : ça n'a rien à faire là.

Dans la rubrique ### BEGIN /etc/grub.d/30_os-prober ###, sont normalement placés les menuentry des OS détectés et ajoutés automatiquement par la commande
# grub2-mkconfig -o /boot/grub2/grub.cfg
qui fait appel à os-prober. Ce n'est donc pas l'endroit pour y insérer tes " codes " pour Windows 7. Tu aurais dû, à condition qu'ils soient corrects, les placer dans le fichier /etc/grub.d/40_custom et ensuite régénérer ton grub.cfg avec la commande ci-dessus.

EDIT : Comment s'appelle exactement ton fichier iso de Windows 7 ? Windows7.iso ou Winblows.iso ? Tu emploies les 2 noms, on dirait. Et où se trouve t'il sur ta clef ? A la racine ou dans un dossier nommé iso ?

Pourquoi ne pas avoir d'abord essayé de monter ton iso dans une partition séparée de ton disque dur au lieu de le copier sur une clé usb ? Je ne sais pas si os-prober aurait pû le détecter comme il détecte un Windows installé, mais sans essayer ...

Que donne la commande
# fdisk -l
avec ta clé branchée ?

De plus, si j'en crois os-prober, en sda1 et sda2, tu as déjà 1 partition fat et 1 partition ntfs ... : 'Windows Recovery Environment (loader) (on /dev/sda1)' et 'Windows 7 (loader) (on /dev/sda2)' !!!

Et enfin, je ne sais pas si tu le sais, mais, après avoir installé Windows 7 ( si ça fonctionne à partir de ta clé usb non bootable ) , tu devras réinstaller Grub car Windows va te le supprimer.
15 jours plus tard
Ces deux lignes-là sont impossibles pour un iso de windows 7 :
linux (loop)/isolinux/vmlinuz inst.stage2=hd:UUID="9bf8efe1-35c4-43f9-9aaf-eae19295dfb6" noeject iso-scan/filename=$iso_path
initrd (loop)/isolinux/initrd.img
Il n'y a pas de dossier /isolinux/ dans l'iso de Win7. D'ailleurs je suis perplexe quant au montage à la volée d'un iso de windows depuis Grub2, car il faudrait pour que cela fonctionne que linux puisse monter un noyau win !
J'ai déjà rencontré plusieurs machines VRAIMENT récalcitrantes lorsqu'il s'agit de booter sur une clé USB. L'unes d'elles par exemple ne pouvait le faire qu'à partir d'un menu dédié. On appuie sur la touche F2 pour accéder à un menu (just après la page POST et après qu'on ait la possibilité d'accéder au Bios). De là je pouvais choisir le périphérique de boot. Regarde éventuellement si tu as une option similaire (ou si tu la connais, modèle de ta carte mère ou du pc portable si c'en est un qu'on cherche ce que tu peux faire).