Comment démarrer un fichier ISO dans Grub ? Le fichier ISO est sur une partition reiserfs et Grub peut y accéder (déjà testé).
Réponses
Trop de publicités?Le plus gros problème avec le démarrage d'un fichier ISO est que les ISO qui sont conçus pour être démarrés sont presque toujours conçus pour être démarrés à partir d'un CD . Comme expliqué sur le blog de Marco concernant Grub 2 (souligné par moi) :
Grub peut lire les images ISO9660 ("iso"). Il peut par exemple charger les premiers secteurs et les démarrer. Mais la plupart des gens ne se rendent pas compte de ce qui se passe ensuite. Que ferait le système d'exploitation chargé ? Il chercherait probablement un CDROM, qu'il ne trouverait pas, et échouerait.
Donc la manière la plus simple pour démarrer à partir d'un fichier ISO aléatoire est de le charger dans une machine virtuelle (VirtualBox, VMware ou Virtual PC) sous la forme d'un CD virtuel et de le démarrer à partir de là. Cela devrait presque toujours fonctionner, car pour la machine virtuelle, il ne s'agit pas d'un fichier ISO, mais d'un vrai CD sur un vrai matériel de CD.
Le démarrage à partir d'un fichier ISO sur du métal nu est beaucoup plus difficile. La façon de procéder dépend de la version de Grub que vous utilisez, et les résultats peuvent varier en fonction de l'ISO que vous utilisez et de la façon dont il a été configuré pour démarrer. C'est pourquoi la plupart des outils de démarrage d'ISO à partir d'un USB (Unetbootin, WinToFlash, etc.) utilisent en général extraire le contenu de l'ISO sur le disque -- parce que de cette façon, il est possible d'y accéder directement, sans perturber le démarrage du système d'exploitation.
Grub 1
... pas sûr. Si possible, les entrées de menu ressembleront probablement beaucoup à Grub4DOS, bien que je pense que les entrées de menu de Grub4DOS ne seront pas les mêmes. "map --hook" est une amélioration de Grub4DOS. En revanche, Grub prend en charge un plus grand nombre de systèmes de fichiers que Grub4DOS.
Une note sur Grub avec reiserfs (non confirmé) indique que vous "devez monter votre partition avec notail
pour qu'il fonctionne".
Memdisk est une option ; voir ci-dessous.
Grub4DOS
Grub4DOS offre une "émulation de CD" expérimentale qui fonctionne avec certains ISO. Malheureusement, Grub4DOS ne lit que les systèmes de fichiers FAT32/NTFS. Télécharger Grub4DOS.
Voici un exemple d'entrée ( source ) :
title fdfullcd.iso (0xFF)
find --set-root /fdfullcd.iso
map /fdfullcd.iso (0xFF)
map --hook
root (0xFF)
kernel /isolinux/data/memdisk
initrd /isolinux/data/fdboot.img
Il est supposé que l'ISO Win7 peut être démarré. avec cette entrée :
title Windows 7
map (hd0,0)/win7.iso (hd32)
map --hook
chainloader (hd32)
D'autres ISO peuvent être démarrés avec Memdisk :
title Boot Hardware Detection Tool from iso image (with 'iso' parameter)
kernel /memdisk iso
initrd /hdt.iso
Vous pouvez également utiliser un configurateur de menu tel que MultiBootISOs.exe de PenDriveLinux . Placez les ISO sur le lecteur flash et exécutez l'utilitaire pour installer le chargeur de démarrage et configurer le menu de démarrage.
Voici un épisode de Hak5 sur l'installation de Grub4DOS.
Grub 2
Voici quelques exemples d'entrées Grub2. chargeur de chaîne ne fonctionne pas pour démarrer une ISO pour le moment, donc ces entrées doivent (1) utiliser bouclage pour "monter" l'ISO, et (2) ajouter quelque chose comme iso-scan o findiso à la linux qui spécifie le fichier ISO.
Malheureusement, il n'existe pas de méthode générique pour le faire. Chaque entrée de démarrage doit être adaptée au contenu de l'ISO cible. La plupart des LiveCD Linux utilisent ISOLINUX comme chargeur de démarrage. isolinux.cfg et examinez cette entrée de démarrage pour voir ce qu'il démarre habituellement.
Exemples d'entrées ( source ) :
menuentry "Ubuntu Live 9.10 32bit" {
loopback loop /boot/iso/ubuntu-9.10-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-9.10-desktop-i386.iso noeject noprompt --
initrd (loop)/casper/initrd.lz
}
menuentry "Grml small 2009.10" {
loopback loop /boot/iso/grml-small_2009.10.iso
linux (loop)/boot/grmlsmall/linux26 findiso=/boot/iso/grml-small_2009.10.iso apm=power-off lang=us vga=791 boot=live nomce noeject noprompt --
initrd (loop)/boot/grmlsmall/initrd.gz
}
Si vous essayez de démarrer un LiveCD non Linux, vous n'avez pas de chance. Encore une fois, Memdisk peut aider :
menuentry "Boot Hardware Detection Tool from iso" {
linux16 /memdisk iso
initrd16 /hdt.iso
}
Il y a de beaux exemples ainsi que des tweaks pour de nombreux systèmes d'exploitation populaires. Grub 2 iso boot
menuentry "Focal Desktop iso" {
set isofile="/iso/focal-desktop-amd64.iso"
rmmod tpm // For GPT only
loopback loop (hd0,5)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd
}