J'ai trouvé que cela peut être fait avec loopback
comme suit
menuentry "Lucid ISO" {
loopback loop (hd0,1)/boot/iso/ubuntu-10.04-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-10.04-desktop-i386.iso noprompt noeject
initrd (loop)/casper/initrd.lz
}
Mais cela ne fonctionne qu'avec ubuntu ou ses dérivés. Comment cela devrait-il être écrit si je veux démarrer d'autres images en direct comme Fedora, cent, opensuse, etc.?
Edit: J'ai trouvé d'autres entrées, mais toutes sont probablement basées sur Debian.
menuentry "Linux Mint 10 Gnome ISO" {
loopback loop /linuxmint10.iso
linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper initrd=/casper/initrd.lz iso-scan/filename=/linuxmint10.iso noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "DBAN ISO" {
loopback loop /dban.iso
linux (loop)/DBAN.BZI nuke="dwipe" iso-scan/filename=/dban.iso silent --
}
menuentry "Tinycore ISO" {
loopback loop /tinycore.iso
linux (loop)/boot/bzImage --
initrd (loop)/boot/tinycore.gz
}
menuentry "SystemRescueCd" {
loopback loop /systemrescuecd.iso
linux (loop)/isolinux/rescuecd isoloop=/systemrescuecd.iso setkmap=us docache dostartx
initrd (loop)/isolinux/initram.igz
}
Edit2: Comment charger en chaîne grub
et syslinux
à partir de grub2
?
Edit3: Je veux démarrer d’autres images en direct sans aucun périphérique amovible et utiliser grub2
afin d’avoir besoin des entrées de menu spécifiques à grub2
.
Démarrer à partir d’iso est une fonctionnalité qui doit être prise en charge par la distribution, et l’option iso-scan/filename=
ne fonctionnera pas dans Fedora ou dans d’autres. Ceux-ci peuvent avoir d'autres options de noyau pour cette fonctionnalité ou la fonctionnalité peut ne pas être supportée du tout.
J'ai trouvé une méthode pour démarrer Fedora 16 DVD, ci-dessous.
menuentry "Fedora 15 (DVD)" { insmod loopback insmod iso9660 set isofile = "/ Fedora-15-x86_64-DVD.iso" loopback loop (hd0,2) $ isofile linux (boucle)/isolinux/vmlinuz rootfstype = auto root = live: UUID =: $ isofile ou calme initrd (boucle)/isolinux /initrd.img }
Cela suppose que votre fichier iso se trouve à la racine de la seconde partition du disque dur interne.
Vous pouvez rechercher une autre distribution dans Google, car ce n'est pas une fonctionnalité indépendante de la distribution.
Note 1: Il a également fonctionné avec Fedora 16, je viens de le tester.
Note 2: Il semble que la méthode ait fonctionné lorsque vous avez placé le fichier iso dans une partition fat ou ext4.
Grml peut également être démarré à partir de grub2. Notez qu'il utilise l'option findiso
au lieu de l'option iso-scan/filename
, indiquant que le démarrage à partir d'iso est implémenté en tant qu'options différentes dans différentes distributions.
(menuentry "Grml small 2009.10" { boucle de bouclage /boot/iso/grml-small_2009.10.iso linux (boucle)/boot/grmlsmall/linux26 findiso =/boot/iso/grml-small_2009.10.iso apm = éteindre lang = us vga = 791 démarrer = enregistrer nom noeject noprompt - initrd (boucle) /boot/grmlsmall/initrd.gz }
Cette page contient plusieurs exemples d'autres distributions démarrant à partir de Grub2.
Voici la seule solution qui a fonctionné (tous les autres m'ont donné un . Échec de recherche de l'identificateur MBR et arrêté). Dans cet exemple, l’iso est placé sur la troisième partition du premier disque, dans le répertoire /home/username/
.
menuentry "openSUSE_13.1_GNOME_Live" { load_video insmod gzio insmod part_msdos insmod ext2 set root = '(hd0 , msdos3) ' set isofrom_device ='/dev/sda3 ' set isofrom_system ='/home/nom_utilisateur/openSUSE-13.1-GNOME-Live-i686.iso ' loader = '/ boot/i386/loader' boucle de bouclage $ isofrom_system linux (boucle) $ loader/linux isofrom_device = $ isofrom_device isofrom_system = $ isofrom_system ramdisk_size = 512000 ramdisk_systems vt_handoff preloadlog =/dev/null showopts initrd (boucle) $ loader/initrd }
La source est commentaire de janeppo .
Voici l'entrée grub.cfg du menu de démarrage pour Fedora 17. L'iso est placé sur la troisième partition du premier disque. Aussi le nom de fichier est changé.
menuentry "Fedora Live" { boucle de bouclage (hd0,3) /Fedora.iso linux (boucle)/EFI/BOOT/vmlinuz0 root = live: /Fedora.iso rootfstype = auto ro liveimg quiet rhgb rd.luks = 0 rd.md = 0 initrd (hd0,3)/initrd-fromiso }
Dernière remarque: Je pense que cette réponse sert d'exemple. Il ne faut pas élaborer plus avec des exemples.
Voici quels fichiers iso j'ai imaginé de démarrer avec grub2
.
J'ai réussi à démarrer les ISOs suivants
J'ai constaté que si vous voulez démarrer d'autres fichiers ISO comme le CD de démarrage de Hiren, etc., vous pouvez utiliser l'utilitaire MEMDISK
comme noyau.
Où se procurer MEMDISK?
Téléchargez Syslinux depuis ici . Déplacez-le sur le bureau.
Comment le faire fonctionner?
cd ~/Desktop/
tar xvif syslinux-4.05.tar.xz
cd syslinux-4.05/memdisk/
Sudo mkdir /customboot
Sudo mv memdisk /customboot/
cd /customboot/
Sudo mv memdisk memdisk4.05
gksudo gedit /etc/grub.d/40_custom
Collez ensuite les entrées ci-dessous dans gedit. Vous devrez changer set isofile="/path/to/iso-file.iso"
.
Ensuite, lancez update-grub
. Redémarrez et vérifiez.
Mes entrées dans le fichier 40_custom
.
menuentry "Ubuntu Natty Narwhal 11.04 ISO" {
set isofile="/OS/ubuntu-11.04-desktop-i386.iso"
loopback loop (hd0,6)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject --
initrd (loop)/casper/initrd.lz
}
menuentry "Ubuntu Precise Pangolin 12.04 ISO" {
set isofile="/OS/ubuntu-12.04-desktop-i386.iso"
loopback loop (hd0,6)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject --
initrd (loop)/casper/initrd.lz
}
menuentry "SystemRescueCd" {
set isofile="/OS/systemrescuecd-x86-2.7.0.iso"
loopback loop (hd0,6)$isofile
linux (loop)/isolinux/rescuecd isoloop=$isofile setkmap=us docache dostartx
initrd (loop)/isolinux/initram.igz
}
menuentry "Boot Hardware Detection Tool from iso using memdisk 4.05" {
linux16 /customboot/memdisk4.05 iso
initrd16 /customboot/hdt.iso
}
menuentry "Free Dos from iso using memdisk 4.05" {
set isofile="/OS/fdbasecd.iso"
linux16 /customboot/memdisk4.05 iso
initrd16 (hd0,6)$isofile
}
menuentry "Hiren's boot CD using memdisk 4.05" {
set isofile="/OS/Hiren's.BootCD.10.1.iso"
linux16 /customboot/memdisk4.05 iso
initrd16 (hd0,6)$isofile
}
menuentry "Ultimate Boot CD iso using memdisk 4.05" {
set isofile="/OS/ubcd511.iso"
linux16 /customboot/memdisk4.05 iso
initrd16 (hd0,6)$isofile
}
Toutes les images ISO sont conservées sur sda6/OS
et MEMDISK
est conservé sur la partition où ubuntu est installé (en racine) et renommé en memdisk4.05
afin que son chemin d'accès soit /customboot/memdisk4.05
note: Fedora ne fonctionnait pas avec l'autre réponse donnée. J'essaie toujours de démarrer Fedora :(.
Je trouve que l’utilisation du loopback de grub2 est très utile pour tester de nouvelles normes sans avoir besoin de clé USB ou de gravure sur CD. Des bogues ont été déposés contre Fedora pour faire quelque chose de similaire. Le suivi de l’état actuel prend un peu de temps.
On dirait que 13.04 nécessite une syntaxe différente pour y parvenir. Quelqu'un a-t-il démarré avec succès ubuntu-13.04-desktop-AMD64.iso à partir d'un disque physique et souhaiterait-il partager la syntaxe grub?
EDIT: a répondu à ma propre question. Besoin de renommer vmlinuz en mvlinuz.efi et cela fonctionne.
menuentry "Ubuntu-13.04-desktop-AMD64.iso" --class ubuntu {
set isofile="/archives/ubuntu-13.04-desktop-AMD64.iso"
loopback loop (hd1,6)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noeject noprompt --
initrd (loop)/casper/initrd.lz
}
malheureusement aucune de ces recommandations ne m'a pas aidé. J'ai donc trouvé le chemin et j'aimerais partager avec vous. Pour démarrer des centos par exemple, il vous faut: Mettez une image ISO dans le répertoire. si votre répertoire racine est monté sur/dev/sda1, créez alors répertoire/iso et mettez y dans iso. allez à la console de menu (lorsque le menu apparaît, appuyez sur 'c'.)
Choisissez le périphérique approprié - hd0 signifie sda. Vous devez choisir celui où votre iso est situé.
loopback loop (hd0,msdos1)/iso/Redhat.iso
linux (loop)/isolinux/vmlinuz inst.repo=hd:sda1:/iso/Redhat.iso
initrd (loop)/isolinux/initrd.img
boot
Et ça démarre!
Ce que vous demandez est hors sujet ici, car cela nécessite une connaissance de ces autres systèmes pour pouvoir configurer les entrées grub afin de les démarrer correctement. Oui c'est possible.
Cependant ... Multi System est un outil compétent pour disposer de très nombreux ISO de distribution sur un seul grand disque USB. Je trouve que cela fonctionne très bien, mais vous devrez l’installer à partir d’un PPA:
http://www.pendrivelinux.com/multiboot-create-a-multiboot-usb-from-linux/
Je l'utilise de manière à pouvoir disposer de LiveUSB Gparted et d'autres outils, ainsi que ceux d'Ubuntu sur une clé USB pour InstallFests. En prime, il permet un écran de démarrage personnalisé pour le menu, que j'ai défini comme logo pour l'équipe australienne de LoCo.
Chris
Comme indiqué, Multisystem utilise Grub2 pour faire ce que vous voulez. Puisque ce fil hors sujet est autorisé, ou du moins toléré, voici l'entrée Fedora de mon multisystème Grub2:
menuentry "Fedora-15-i686-Live-Desktop.iso" {
linux /Fedora1/isolinux/vmlinuz0 live_locale=en_AU.UTF-8 live_keytable=us live_dir=/Fedora1 root=UUID=493A-D2EF rootfstype=auto ro liveimg quiet rhgb rd_NO_LUKS rd_NO_MD noiswmd
initrd /Fedora1/isolinux/initrd0.img
}
Notez que vous ne pouvez pas démarrer directement à partir de l'ISO, car il n'est pas pris en charge, contrairement aux distributions basées sur Debian. Vous aurez besoin des fichiers décompressés de l’ISO disponibles sur le disque dur comme suit:
chris@chris-office:/media/RED8/Fedora1$ ls -l
total 563972
drwx------ 2 chris chris 4096 Feb 11 2011 isolinux
-rw-r--r-- 1 chris chris 43503 May 14 2011 livecd-iso-to-disk
-r--r--r-- 1 chris chris 8192 May 14 2011 osmin.img
-r--r--r-- 1 chris chris 577449984 May 14 2011 squashfs.img
Vous devrez bien entendu modifier l'emplacement du répertoire/Fedora/et l'UUID de la partition que vous démarrez Fedora. Vous devriez probablement aussi changer le mode de montage de ro à rw, ainsi que tout ce qui est approprié, comme les autorisations sur les squashfs.
Vous pouvez également probablement configurer un disque de persistance virtuel, bien que je ne voie pas pourquoi vous ne pourriez pas monter votre partition/home normale. Encore une fois, je ne peux que vous suggérer d’installer Multidisk et d’effectuer vous-même la configuration pour apprendre à le faire.
Chris
Essayez d’utiliser Multisystem, d’installer les liveCD de votre choix, puis de copier les fichiers sur votre/et de fusionner le fichier grub.cfgs! (Je suis vraiment curieux de voir si ça marcherait!).