Ceci est une ancienne révision du document !
Table des matières
Lancer des images iso directement depuis GRUB 2
Lancer ses ISOs avec Grub permet de :
- tester n'importe quelle distribution Linux
- installer une distribution sans avoir à graver un CD
- installer une distribution de maintenance quand l'ordinateur ne marche plus (gparted live, rescueCD,.. )
Voici comment lancer vos isos présents sur le disque dur directement avec Grub 2.
Nous utiliserons un fichier de configuration par système d'exploitation et le référencerons dans grub.cfg.
Pré-requis
- version de Grub >= 1.97 :
...@...:~$ grub-install -V grub-install (GRUB) 2.04-1ubuntu26.15
Première étape
Dans les exemples, la partition pour les fichiers isos sera /dev/sdb5 → (hd1,5)
Rappel de la notation de GRUB :
- disque :
- sda → hd0
- sdb → hd1
- etc.
partition :- sda1 → 1
- sda2 → 2
- etc.
- Avec Gparted, créez la partition qui recevra les fichiers isos (ici, /dev/sdb5 en NTFS)
- Montez cette partition :
- Créez le répertoire /media/partisos :
...@...:~$ sudo mkdir /media/partisos
- Repérez l'UUID de la partition voulue (ici, /dev/sdb5) :
...@...:~$ sudo blkid /dev/sdb5 /dev/sdb5: LABEL="isos" UUID="19D22ADE39FB5783" TYPE="ntfs" PARTUUID="6db6c434-05"
- Éditez avec les droits d'administration le fichier /etc/fstab pour y ajouter la ligne :
- /etc/fstab
... UUID=19D22ADE39FB5783 /media/partisos ntfs-3g rw,user,auto,gid=1000,uid=1000,nls=utf8,umask=002 0 0
- Montez la partition :
...@...:~$ sudo mount /media/partisos
Créez le dossier /media/partisos/isos/ avec les droits d'écriture :...@...:~$ sudo mkdir -p /media/partisos/isos ...@...:~$ sudo chown $USER:$USER isos
Créez un lien symbolique dans le dossier Téléchargements pour un accès facile :...@...:~$ ln -f -s -r -t ~/Téléchargements isos
Désormais, les fichiers iso téléchargés pourront être déplacés dans ce dossier isos depuis le dossier ~/Téléchargements.
Les fichiers de configuration de grub dans /boot/grub/grub.cfg
Autres étapes
- Modifiez la configuration de GRUB pour ne plus devoir lancer la commande update-grub après chaque modification et pouvoir modifier les sous-menus sans droits d'administration :
- Éditez avec les droits d'administration le fichier /etc/grub.d/40_custom pour lui ajouter cette entrée de menu qui mène à un fichier de configuration situé sur la partition isos :
- /etc/grub.d/40_custom
... menuentry " " { true } menuentry "===>> lancer mes isos" { search --set=root --file /isos/grubiso.cfg configfile /isos/grubiso.cfg }
Les sous-menus seront écrits dans le fichier grubiso.cfg, accessible sans droits d'administrateur depuis ~/Téléchargements/isos/grubiso.cfg
- Activez cette configuration :
...@...:~$ sudo update-grub
Créez et éditez le fichier :- ~/Téléchargements/isos/grubiso.cfg
set iso_root="/isos" # à adapter selon le répertoire des isos menuentry "------------------- Sous-titre -------------------" { true } menuentry "Titre_entrée_menu" { set iso_name="nom_fichier_iso.iso" set iso_path="$iso_root/$iso_name" search --set=root --file $iso_path loopback loop $iso_path echo "Lancement de l'iso en cours, veuillez patienter.." <Lignes variables> }
Voici les lignes variables pour quelques cas :
- Distributions Ubuntu :
<...> set VAR="<variante>" linux (loop)/casper/vmlinuz locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$iso_path boot=casper \ file=/cdrom/preseed/$VAR.seed noprompt quiet splash toram -- initrd (loop)/casper/initrd
- Variantes :
Ubuntu set VAR=“ubuntu” Kubuntu set VAR=“kubuntu” Lubuntu set VAR=“lubuntu” Ubuntu-Budgie set VAR=“ubuntu-budgie” Ubuntu-Mate set VAR=“ubuntu-mate” Ubuntu Studio set VAR=“ubuntustudio” Xubuntu set VAR=“xubuntu” Ubuntu Kylin set VAR=“cli” Linux Mint set VAR=“linuxmint” Voyager set VAR=“xubuntu” -
Distributions Linux : - ArchArchbang linux (loop)/arch/boot/x86_64/vmlinuz img_dev=/dev/sda2 img_loop=$iso_path earlymodules=loop archisobasedir=arch archisolabel=ARCHBANG
initrd (loop)/arch/boot/intel_ucode.img (loop)/arch/boot/x86_64/archiso.imgenvironnement Openbox
(modifier 'img_dev' selon la partition où est votre iso et 'archisolabel')ArchEX linux (loop)/arch/boot/x86_64/vmlinuz img_dev=/dev/sda2 img_loop=$iso_path earlymodules=loop archisobasedir=arch archisolabel=ARCH_201607
initrd (loop)/arch/boot/intel_ucode.img (loop)/arch/boot/x86_64/archiso.imgenvironnement Lxde
(modifier 'img_dev' selon la partition où est votre iso et 'archisolabel')Manjaro Lxqt menuentry “.. Manjaro Lxqt” {
set iso_path=“/manjaro-lxqt-20.0-200423-linux56.iso”
search –set=root –file $iso_path
probe -u $root –set=iso_disk
set iso_device=“/dev/disk/by-uuid/$iso_disk”
loopback loop $iso_path
echo 'Lancement en cours, patientez …'
probe -l (loop) –set=klabel
linux (loop)/boot/vmlinuz-x86_64 img_dev=$iso_device img_loop=$iso_path misobasedir=manjaro misolabel=$klabel driver=free lang=fr_FR keytable=fr tz=Europe/Paris
initrd (loop)/boot/intel_ucode.img (loop)/boot/initramfs-x86_64.img
}('img_dev' et 'misolabel' sont trouvés avec la commande “probe”) -
Debian :Stable linux (loop)/live/vmlinuz-4.9.0-4-amd64 boot=live findiso=${iso_path} components keyboard-layouts=fr locales=fr_FR.UTF-8 timezone=Europe/Paris
initrd (loop)/live/initrd.img-4.9.0-4-amd64(version 9.3 : Stretch) LMDE linux (loop)/live/vmlinuz boot=live findiso=${iso_path} live-config lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr timezone=Europe/Paris utc=yes quiet splash
initrd (loop)/live/initrd.lz-
Fedora live Workstation : Par rapport au menu standard, on définira une variable de plus : $isolabel. Pour la trouver, il faut ouvrir l'iso avec le gestionnaire d'archives (clic droit). Dans le dossier 'isolinux', il faut ouvrir 'isolinux.cfg' puis rechercher CDLABEL<code - > set isolabel=“Fedora-WS-Live-32-1-6” linuxefi (loop)/images/pxeboot/vmlinuz root=live:CDLABEL=$isolabel iso-scan/filename=$iso_path rd.live.image rhgb initrdefi (loop)/images/pxeboot/initrd.img </code> - Gentoo :Gentoo Live DVD linux (loop)/isolinux/gentoo isoboot=$iso_path root=/dev/ram0 init=/linuxrc aufs looptype=squashfs loop=/image.squashfs cdroot vconsole.keymap=fr locale=fr_FR console=tty1 nomodeset
initrd (loop)/isolinux/gentoo.xz(les codes pour le lancer directement en français ne fonctionnent plus depuis la version 2016) Sabayon linux (loop)/boot/sabayon root=/dev/ram0 init=/linuxrc lang=fr_FR isoboot=${iso_path} cdroot looptype=squashfs loop=/livecd.squashfs overlayfs
initrd (loop)/boot/sabayon.igz(lui peut être lancé en français sans problème) -
OpenMandriva Lx :<code - > menuentry “OpenMandriva” { set iso_path=/isos/OpenMandrivaLx.4.1-plasma.x86_64.iso set isoname=OpenMandrivaLx_4.1 loopback loop $iso_path echo 'Lancement en cours, patientez …' linux (loop)/boot/vmlinuz0 root=live:LABEL=${isoname} iso-scan/filename=${iso_path} locale.LANG=fr_FR.UTF-8 vconsole.keymap=fr rd.live.image toram – initrd (loop)/boot/liveinitrd.img } </code> - openSUSE :<code - > linux (loop)/boot/x86_64/loader/linux install=hd:$iso_path initrd (loop)/boot/x86_64/loader/initrd </code> - Slackware :<code - > linux (loop)/kernels/huge.s/bzImage load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s locale=fr_FR.utf8 kbd=fr tz=Europe/Paris initrd (loop)/isolinux/initrd.img </code> - Distributions linux spécialisées : - Jeux : - Fedora Games (voir plus haut) :<code - > set isolabel=“Fedora-Game-Live-24-1-2” linux (loop)/isolinux/vmlinuz root=live:CDLABEL=$isolabel iso-scan/filename=$iso_path rootfstype=auto rd.live.image rhgb KEYTABLE=fr LANG=fr_FR.utf8 locale.lang=fr_FR vconsole.keymap=fr
initrd (loop)/isolinux/initrd.img </code> - Logiciels éducatifs :edubuntu pas d'iso depuis 2014 PrimTux linux (loop)/live/vmlinuz2 boot=live findiso=${iso_path} components live-config hostname=localhost lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr timezone=Europe/Paris utc=yes quiet splash
initrd (loop)/live/initrd2.imgUberstudent linux (loop)/casper/vmlinuz locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$iso_path boot=casper file=/cdrom/preseed/uberstudent.seed noprompt quiet splash
initrd (loop)/casper/initrd.lz-
Logiciels pour la MAO (Musique Assistée par Ordinateur) :Ubuntu Studio (déjà cité plus haut) Musix linux (loop)/live/vmlinuz boot=live findiso=${iso_path} live-config lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr timezone=Europe/Paris utc=yes quiet splash
initrd (loop)/live/initrd.img-
Distributions pour test d'environnements : - Enlightenment (Elive)<code - > linux (loop)/live/vmlinuz1 username=eliveuser boot=live findiso=${iso_path} live-config lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr timezone=Europe/Paris utc=yes loglevel=0 quiet splash initrd (loop)/live/initrd1.img </code> - Pantheon d'Elementary OS (basé sur Ubuntu)<code - > linux (loop)/casper/vmlinuz locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$iso_path boot=casper noprompt quiet splash initrd (loop)/casper/initrd.lz </code> - antiX: IceWm et Fluxbox :<code - > probe -u $root –set=iso_disk linux (loop)/antiX/vmlinuz fromiso=$iso_path bootuuid=$iso_disk lang=fr tz=Europe/Paris xres=1920×1080 toram hwclock=utc quiet splasht disable=lxF initrd (loop)/antiX/initrd.gz </code>Remarque : 'xres' est à adapter à votre configuration. Sur leur site web, on trouve aussi une autre distribution nommée MX19 qui fonctionne avec le même menu grub. - Windows 10 :<code - > menuentry “Windows 10” –class windows –class os { # Insert modules needed in order to access the iso-file insmod part_gpt #insmod part_msdos insmod ntfs #insmod ext2 # Insert module needed in order to find partition insmod search_fs_uuid # Set UUID of partition with the iso-image # and let grub2 find the partition # (save it's identifier to the variable $root) set uuid=“XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX” search –no-floppy –set=root –fs-uuid $uuid # Mount the iso image by addressing it with (partition)/path set iso=/ISO_PATH/file.iso loopback loop ($root)$iso # boot (chain-load) the image using the cdboot.efi file located # on the win10-image chainloader (loop)/efi/microsoft/boot/cdboot.efi } </code> - Remplacer XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX avec UUID de la partition ou est l'image Windows 10. - Activer les modules necessaires : - insmod part_gpt: ce module est nécessaire, si Win10-ISO-Image est sur une table de partition GPT. - insmod part_msdos: Choisir si l'image Windows est sur une table de partition DOS - insmod ntfs: ce module est nécessaire si l'image Windows est sur une table de partition NTFS. - insmod ext2: Remplacer insmod ntfs par insmod ext2, si l'image est sur des partitions ext2/ext3 ou ext4 - Remplacer /ISO_PATH/file.iso pas le chemin d'accès et le fichier iso - exemple :<code - ~/Téléchargements/isos/grubiso.cfg> menuentry “——————- Distributions Ubuntu ——————-” { true } menuentry “Ubuntu 20.04.4 LTS (Focal Fossa) 64 bits” { set iso_name=“ubuntu-20.04.3-desktop-amd64.iso” set iso_path=“$iso_root/$iso_name” search –set=root –file $iso_path loopback loop $iso_path echo “Lancement de l'iso en cours, veuillez patienter..” linux (loop)/casper/vmlinuz \ locale=fr_FR bootkbd=fr console-setup/layoutcode=fr \ iso-scan/filename=$iso_path boot=casper file=/cdrom/preseed/xubuntu.seed \ noprompt quiet splash toram – initrd (loop)/casper/initrd }</code> - Syntaxe : - Ligne vide :<code - > menuentry “ ” { true }</code> - Ligne de sous-titre :<code - > menuentry “——————- Sous-titre ——————-” { true }</code> - Entrée de menu :<code - > menuentry “Titre_de_menu” { set iso_name=“nom_du_fichier.iso” set iso_path=“$iso_root/$iso_name” search –set=root –file $iso_path loopback loop $iso_path echo “Lancement de l'iso en cours, veuillez patienter..” linux (loop)/casper/vmlinuz \ locale=fr_FR bootkbd=fr console-setup/layoutcode=fr \ iso-scan/filename=$iso_path boot=casper file=/cdrom/preseed/xubuntu.seed \ noprompt quiet splash toram – initrd (loop)/casper/initrd }</code> </subnumberlist> Voir aussi :Commandes disponibles dans GRUB ===== Conclusion ===== ===== Problèmes connus ===== ===== Voir aussi ===== * (fr) https://doc.ubuntu-fr.org/tutoriel/grub2_lancer_des_images_iso * (en) https://www.gnu.org/software/grub/manual/grub/grub.pdf * (fr)** http://tradinfo.e-monsite.com/medias/files/manuel-gnu-grub-2.04-multiboot-2.pdf
//Basé sur << [[https://doc.ubuntu-fr.org/tutoriel/grub2_lancer_des_images_iso|Lancer des images iso directement depuis GRUB 2]] >> par doc.ubuntu-fr.org.//