Table des matières

Créer une partition avec GRUB2 contenant les cd d'installation et des isos

Pré-requis

Première étape

  1. ouvrez le fichier ISO avec le monteur d'archives : dans Nautilus, un clic droit sur le fichier ISO, sélectionnez Ouvrir avec le gestionnaire d'archives
  2. Dans le contenu du fichier ISO (pour ubuntu, dans le répertoire casper), repérez dans le fichier iso et notez l'emplacement et le nom de :
    • fichier du noyau (vmlinuz ou vmlinuz.*)
    • image initrd (initrd ou initrd.*).

Autres étapes

 Création d'un sous-menu

  1. Éditez avec les droits d'administration le fichier /etc/grub.d/40_custom pour
    /etc/grub.d/40_custom
    
    

Le fichier de configuration sera au même endroit que les fichiers iso, ce qui permet de le modifier sans droits super utilisateur.

Pour activer ce changement, lancez la commande :

...@...:~$ sudo update-grub
Sourcing file `/etc/default/grub'
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-4.15.0-112-generic
Image mémoire initiale trouvée : /boot/initrd.img-4.15.0-112-generic
Image Linux trouvée : /boot/vmlinuz-4.15.0-111-generic
Image mémoire initiale trouvée : /boot/initrd.img-4.15.0-111-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Windows 10 trouvé sur /dev/sdb1
fait

Cela ajoute une ligne au menu grub pour se rendre sur une page dédiée aux lancements de fichiers iso.

Édition du sous-menu

Allez dans le répertoire isos (par exemple via le lien ~/Téléchargements/isos) et créez le fichier 00_isoboot.cfg :

00_isoboot.cfg
# partition et répertoire contenant les isos : /dev/sdb5
set root=(hd1,5)
set fra="locale=fr_FR bootkbd=fr console-setup/layoutcode=fr"
set isoroot="/isos"

menuentry "Ubuntu 16.04 64 bits live" {
	set isoname="ubuntu-16.04.3-desktop-amd64.iso"
	set isofile="${isoroot}/${isoname}"
	loopback loop $isofile
	linux (loop)/casper/vmlinuz.efi $fra iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/ubuntu.seed noprompt quiet splash --
	initrd (loop)/casper/initrd.lz
}

menuentry "Boot-repair" {
	set isoname="boot-repair-disk-64bit.iso"
	set isofile="${isoroot}/${isoname}"
	loopback loop $isofile
	linux (loop)/casper/vmlinuz.efi $fra iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/ubuntu.seed noprompt quiet splash --
	initrd (loop)/casper/initrd.lz
}

menuentry "Clonezilla" {
	set isoname="clonezilla-live-2.5.2-31-i686.iso"
	set isofile="${isoroot}/${isoname}"
	loopback loop $isofile
}
isoname
nom du fichier iso

Adaptez les noms vmlinuz et initrd selon ce que vous avez noté dans la première étape, 2)

Voici quelques modèles :

  • Ubuntu 16.04 :
    menuentry "Ubuntu 16.04.3 64 bits live" {
    	set isoname="ubuntu-16.04.3-desktop-amd64.iso"
    	set isofile="${isoroot}/${isoname}"
    	loopback loop $isofile
    	linux (loop)/casper/vmlinuz.efi $fra iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/ubuntu.seed noprompt quiet splash --
    	initrd (loop)/casper/initrd.lz
    }
  • Ubuntu 19.04 :
    menuentry "Ubuntu 19.04 64 bits live" {
    	set isoname="ubuntu-19.04-desktop-amd64.iso"
    	set isofile="${isoroot}/${isoname}"
    	loopback loop $isofile
    	linux (loop)/casper/vmlinuz $fra iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/ubuntu.seed noprompt quiet splash --
    	initrd (loop)/casper/initrd
    }
  • Boot-repair :
    menuentry "Boot-repair" {
    	set isoname="boot-repair-disk-64bit.iso"
    	set isofile="${isoroot}/${isoname}"
    	loopback loop $isofile
    	linux (loop)/casper/vmlinuz.efi $fra iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/ubuntu.seed noprompt quiet splash --
    	initrd (loop)/casper/initrd.lz
    }
  • Clonezilla :
    menuentry "Clonezilla" {
    	set isoname="clonezilla-live-2.5.2-31-i686.iso"
    	set isofile="${isoroot}/${isoname}"
    	loopback loop $isofile
    }
  • PING avec des ajouts :
    menuentry "PING with addons" {
    	set isoname="PING-4.00-WithAddons.iso"
    	set isofile="${isoroot}/${isoname}"
    	loopback loop $isofile
    }
  • Medicat :
    menuentry "Medicat" {
    	insmod ntfs
    	search --no-floppy -s root -l MEDICAT
    	chainloader +1
    }

Cas de Windows

Supposons que les images soient dans le répertoire /isos-images et qu'il contienne :

Aller dans ce répertoire des fichiers isos :

$ cd /isos-images

Monter l'iso windows en loop :

$ sudo mount -o loop -t udf /isos-images/Windows10-32-64.iso /media/winsource/
mount: /dev/loop0 is write-protected, mounting read-only
nicolas@chateau:~$

Copier les isos et le contenu de l'iso windows sur ISOS :

Conclusion

Problèmes connus

Voir aussi


Basé sur « Lancer des images iso directement depuis GRUB 2 » par Documentation Ubuntu.