Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tutoriel:grub2_lancer_des_images_iso [Le 28/06/2020, 13:27] – [Distributions Ubuntu et dérivés] il faut les guillemets doubles pour un echo. Et le fichier initrd se nomme initrd.lz 90.76.183.241tutoriel:grub2_lancer_des_images_iso [Le 05/02/2021, 21:37] (Version actuelle) – [Installation depuis l'iso lancé] orthographe frombenny
Ligne 1: Ligne 1:
 +{{tag>tutoriel grub-pc amorçage}}
 +
 +----
 +
 +====== Lancer des images iso directement depuis GRUB 2 ======
 +
 +Pour **lancer une distribution linux sans avoir à graver sur Cd**, les solutions existantes ont le plus souvent recours à une **clé USB** gravée avec :
 +  * **[[:live_usb#en_ligne_de_commandes|l'instruction "dd"]]** (en mode graphique avec [[:Etcher]])
 +  * un utilitaire comme :
 +    * **[[:usb-creator]]**
 +    * **[[:Unetbootin]]**
 +    * **[[:Multisystem]]**
 +    * etc.
 +On peut aussi utiliser **[[:Virtualbox]]** qui ne nécessite pas de clé USB mais dont l'inconvénient est qu'il ne teste pas votre configuration mais un matériel émulé.
 +
 +**Voici la procédure à suivre pour lancer vos ISOs présents sur le disque dur directement avec [[:grub-pc|Grub 2]]**.
 +
 +===== Généralités =====
 +
 +==== Pourquoi lancer ses ISOs avec Grub? ====
 +  * pouvoir **tester** n'importe quelle distribution Linux
 +  * pouvoir **installer** ses distributions préférées sans avoir à graver un CD
 +  * pouvoir **installer** les distributions de maintenance pour quand l'ordinateur ne marche plus (gparted live, rescueCD,.. )
 +
 +==== Prérequis ====
 +  * la version de Grub doit être en version 1.97 ou supérieure. <code>grub-install -V</code>
 +  * la page de doc principale pour grub est **[[:grub-pc|ici]]**.
 +  * ce type de lancement est très différent d'une distribution linux à l'autre voir impossible avec certaines d'entre elles.
 +
 +
 +<note important>Pour les **versions 19.10 et suivantes installées en mode Uefi** -> **[[#Problèmes connus]]** pour pouvoir continuer à utiliser cette fonctionnalité.</note>
 +
 +
 +==== Installation depuis l'iso lancé ====
 +**Par défaut, Ubuntu monte** le support d'installation dans **/isodevice**. 
 +
 +Pour permettre une installation ​vous devez : 
 +
 +- avoir ajouté l'​option "**​toram**"​ dans la **ligne "linux (loop)"** du menu de votre iso.
 +
 +- Mais à cause de ce [[https://bugs.launchpad.net/ubuntu/+source/casper/+bug/684280|bug]], la partition reste quand même montée. Pour contourner cela, on **lancera ces 2 commandes**:
 +
 +<code>sudo losetup -d /dev/loop0
 +sudo umount -lrf /isodevice</code>
 +
 +
 +**Maintenant**, il suffit de double cliquer sur "**installer ubuntu**".
 +
 +===== Ajout d'une option ISO à Grub =====
 +
 +==== En quelques clics avec GRML ====
 +
 +GRML rescueboot est un logiciel qui ajoute automatiquement des isos a votre menu GRUB2
 +
 +Installer **[[apt>grml-rescueboot]]**
 +
 +Copier un fichier iso dans /boot/grml ( en tant qu'admin bien sur) 
 +
 +Executer <code>sudo update-grub</code>
 +
 +Le menu est prêt ! Vous pouvez redémarrer et choisir votre iso.
 +
 +==== Manuellement ====
 +Dans ce tutoriel, les **fichiers "iso"** sont tous stockés **dans un dossier /isos à la racine** d'une des partitions présentes dans l'ordinateur.
 +  * On **ajoutera les menus** pour les isos **au fichier** de configuration //**/etc/grub.d/40_custom**// (avec les [[:permissions#modifier_les_permissions|droits 'administrateurs']]).
 +  * On lancera **ensuite dans un terminal** la commande:<code>sudo update-grub</code>
 +
 +Une méthode modulaire (plus souple) est d'utiliser un fichier de configuration par système d'exploitation et de le référencer dans grub.cfg : voir la section [[tutoriel:grub2_lancer_des_images_iso#une_configuration_sans_etre_root|Une configuration sans être root]]
 +
 +==== Méthode simple et rapide ====
 +Lorsque Grub est **en mode EFI**, on peut activer le **menu par défaut intégré** à l'iso avec ce menu type:
 +<file txt /etc/grub.d/40_custom>menuentry "..    Xubuntu Focal 20.04 (Daily build)" {
 + iso_path="/isos/focal-desktop-amd64.iso"
 + export iso_path
 + search --set=root --file $iso_path
 + loopback loop $iso_path
 +        echo "Lancement de l'iso en cours, veuillez patienter.."
 + root=(loop)
 + configfile /boot/grub/loopback.cfg
 + loopback --delete loop
 +}</file>
 +**Testé** sans souci avec les **variantes Ubuntu** actuelles (2019), Linux Mint 19.3 et Debian 10. Parfois, sur d'autres distributions, on a le menu mais ensuite le lancement échoue.
 +
 +C'est pratique et rapide à mettre en œuvre (**on ne change que le nom de l'iso**) mais la distribution n'est pas localisée en français..
 +
 +==== Distributions Ubuntu et dérivés ====
 +Ubuntu utilise le **paquet 'casper'** pour ses live-cd. Donc ce menu est **valable aussi** pour Linux-Mint et d'autres **distributions basées sur Ubuntu**.
 +<file txt /etc/grub.d/40_custom>menuentry "..    Xubuntu 20.04 LTS ...." { 
 + set iso_path="/isos/xubuntu-20.04-desktop-amd64.iso"
 + 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 --
 + initrd (loop)/casper/initrd.lz
 +}</file>
 +  * L'avantage principal de ce menu est qu'on **peut ajouter des options de boot** spécifiques à notre matériel (langue, clavier, résolution écran, etc). (Le "preseed" est utilisé lors d'une installation sur l'ordi).
 +  * Ce menu fonctionne **aussi avec les BIOS non EFI**.
 +
 +=== Sources des isos ===
 +== Ubuntu et ses variantes ==
 +<note important> **Attention ! pour certaines anciennes versions avant 18.04**, on peut avoir **vmlinuz.efi** (et non vmlinuz) et **une extension .lz ou .gz** à **initrd**.
 +
 +Pour vérifier, il faut ouvrir l'iso avec le gestionnaire d'archives (par clic droit) et regarder dans le dossier "casper".</note>
 +
 +Voici les lignes 'preseed' pour toutes les variantes d'Ubuntu :
 +  * **[[:Ubuntu]]** : [[http://releases.ubuntu.com/|versions soutenues]] - [[http://cdimage.ubuntu.com/ubuntu/daily-live/current/|versions en cours de développement]]\\ //file=/cdrom/preseed/ubuntu.seed//
 +
 +  * **[[:Kubuntu]]** : [[http://cdimage.ubuntu.com/kubuntu/releases/|versions soutenues]] - [[http://cdimage.ubuntu.com/kubuntu/daily-live/current/|versions en cours de développement]]\\ //file=/cdrom/preseed/kubuntu.seed//
 +
 +  * **[[:Lubuntu]]** : [[http://cdimage.ubuntu.com/lubuntu/releases/|versions soutenues]] - [[http://cdimage.ubuntu.com/lubuntu/daily-live/current/|versions en cours de développement]]\\ //file=/cdrom/preseed/lubuntu.seed//
 +
 +  * **[[:Budgie|Ubuntu-Budgie]]** : [[http://cdimage.ubuntu.com/ubuntu-budgie/releases/|versions soutenues]] - [[http://cdimage.ubuntu.com/ubuntu-budgie/daily-live/current/|versions en cours de développement]]\\ //file=/cdrom/preseed/ubuntu-budgie.seed//
 +
 +  * **[[:mate|Ubuntu-Mate]]** : [[http://cdimage.ubuntu.com/ubuntu-mate/releases/|versions soutenues]] - [[http://cdimage.ubuntu.com/ubuntu-mate/daily-live/current/|versions en cours de développement]]\\ //file=/cdrom/preseed/ubuntu-mate.seed//
 +
 +  * **[[:ubuntu_studio|Ubuntu Studio]]** : [[http://cdimage.ubuntu.com/ubuntustudio/releases/|versions soutenues]] - [[http://cdimage.ubuntu.com/ubuntustudio/dvd/current/|versions en cours de développement]]\\ //file=/cdrom/preseed/ubuntustudio.seed//
 +
 +  * **[[:Xubuntu]]** : [[http://cdimage.ubuntu.com/xubuntu/releases/|versions soutenues]] - [[http://cdimage.ubuntu.com/xubuntu/daily-live/current/|versions en cours de développement]]\\ //file=/cdrom/preseed/xubuntu.seed//
 +
 +  * **[[:ubuntukylin|Ubuntu Kylin]]** : [[http://cdimage.ubuntu.com/ubuntukylin/releases/|versions soutenues]] - [[http://cdimage.ubuntu.com/ubuntukylin/daily-live/current/|versions en cours de développement]] (développée pour les chinois avec un look proche de Windows7 et pas mal d'innovations)\\ //file=/cdrom/preseed/cli.seed//
 +
 +
 +== Dérivés : LinuxMint,.. ==
 +  * **[[:linux_mint|Linux Mint]]** : [[https://linuxmint.com/download.php|versions soutenues]] - [[https://community.linuxmint.com/iso|versions en cours de développement]]\\ //file=/cdrom/preseed/linuxmint.seed//
 +
 +  * **[[https://voyagerlive.org/|Voyager]]** : [[https://sourceforge.net/projects/voyagerlive/|site de téléchargement]]\\ //file=/cdrom/preseed/xubuntu.seed//
 +
 +
 +
 +==== Systèmes de maintenance ====
 +=== GParted Live ===
 +  * Elle contient [[:PhotoRec]] et [[:Testdisk]]. Par contre, le gestionnaire de fichiers est un peu limité (il n'affiche pas les partitions non montées) - **[[https://sourceforge.net/projects/gparted/files/gparted-live-stable/|Téléchargement]]**<file>menuentry "GParted Live" {
 +    linux (loop)/live/vmlinuz findiso=${iso_path} boot=live union=overlay username=user config components noswap toram=filesystem.squashfs ip= net.ifnames=0 nosplash locales=fr_FR.UTF-8 keyboard-layouts=fr
 +    initrd (loop)/live/initrd.img
 +}</file>
 +
 +=== SystemRescueCd ===
 +**À partir de la version 6**. Basé maintenant sur Arch (au lieu de Gentoo).\\ **[[https://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/|Page de téléchargement]] - [[http://www.sysresccd.org/Online-Manual-FR|Manuel d'utilisation]] - [[https://www.system-rescue-cd.org/manual/Installing_SystemRescueCd_on_the_disk/|Manuel d'installation (First approch using Grub2 with isoloop)]]**
 +
 +<file>menuentry "systemrescuecd > v6" {
 +    set iso_path="/systemrescuecd-amd64-6.1.6.iso"
 +    search --set=root --file $iso_path
 +    loopback loop $iso_path
 +    probe -u $root --set=iso_disk
 +    echo 'Lancement en cours, patientez ...'
 +    linux  (loop)/sysresccd/boot/x86_64/vmlinuz img_dev=/dev/disk/by-uuid/$iso_disk img_loop=$iso_path archisobasedir=sysresccd copytoram setkmap=fr-latin9
 +    initrd (loop)/sysresccd/boot/x86_64/sysresccd.img
 +}</file>
 +
 +=== CloneZilla ===
 +**[[wpfr>Clonezilla]]** vous permettra de cloner une partition vers une image ou une autre partition ou inversement.
 +
 +  * **[[http://clonezilla.org/downloads/download.php?branch=stable|version stable]]** (basée sur Debian)<file>  linux (loop)/live/vmlinuz persistent boot=live findiso=$iso_path union=overlay username=user config components quiet noswap lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 edd=on nomodeset nodmraid ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" keyboard-layouts=fr ocs_live_batch=\"no\" vga=normal ip=frommedia nosplash toram=filesystem.squashfs timezone=Europe/Paris utc=yes
 +  initrd (loop)/live/initrd.img</file>
 +  * **[[http://clonezilla.org/downloads/download.php?branch=alternative|version alternative stable]]** (basée sur Ubuntu)<file>  linux (loop)/live/vmlinuz persistent boot=live findiso=$iso_path union=overlay username=user hostname=xenial config components quiet noswap lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 edd=on nomodeset nodmraid noeject ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" keyboard-layouts=fr ocs_live_batch=\"no\" vga=normal ip=frommedia nosplash toram=filesystem.squashfs timezone=Europe/Paris utc=yes net.ifnames=0
 +  initrd (loop)/live/initrd.img</file>
 +
 +==== Distributions Linux principales ====
 +=== Arch ===
 +Ne connaissant aucune version livecd officielle, voici quelques distributions dérivées de Arch Linux (pas trouvé comment les lancer directement en français) :
 +  * **[[wp>Archbang]]** (environnement Openbox) : [[https://sourceforge.net/projects/archbang/|Téléchargement]]\\ **pensez à modifier 'img_dev'** selon la partition où est votre iso et **'archisolabel'**<code>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.img</code>
 +
 +  * **[[http://archex.exton.net/|ArchEX]]** (environnement Lxde) : [[https://sourceforge.net/projects/archex/|Téléchargement]]\\ **pensez à modifier 'img_dev'** selon la partition où est votre iso et **'archisolabel'**<code>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.img</code>
 +
 +  * **[[wpfr>Manjaro]] [[:Lxqt]]** : [[https://sourceforge.net/projects/manjarotorrents/files/|Lxqt et autres environnements]]\\ **'img_dev'** et **'misolabel'** sont trouvés avec la commande "probe".<code>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
 +}</code>
 +
 +=== Debian ===
 +Même si Debian est parent du projet Ubuntu, son lancement est différent car il n'utilise pas casper (pour connaître la version du vmlinuz et du initrd, il faut ouvrir l'iso avec votre gestionnaire d'archives).
 +
 +  * **Stable** (version 9.3 : Stretch) : [[http://cdimage.debian.org/mirror/cdimage/release/current-live/|Téléchargement]]<code>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</code>
 +
 +**Dérivées**
 +  * **[[:linux_mint|LMDE]]** : [[https://www.linuxmint.com/download_lmde.php|Téléchargement]]<code>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</code>
 +
 +=== Fedora ===
 +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.
 +
 +  * **[[wpfr>Fedora (GNU/Linux)|Fedora]]** live Workstation - [[https://getfedora.org/fr/workstation/download/|Téléchargement]]<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 ===
 +  * **[[wpfr>Gentoo Linux|Gentoo]]** Live DVD (les codes pour le lancer directement en français ne fonctionnent plus depuis la version 2016) - [[https://www.gentoo.org/downloads/|Téléchargement]]<code>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</code>
 +
 +**Dérivées**
 +  * **[[wpfr>Sabayon Linux|Sabayon]]** (lui peut être lancé en français sans problème) - [[ftp://ftp.belnet.be/mirror/sabayonlinux/iso/monthly/|Téléchargement]]<code>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</code>
 +
 +=== OpenMandriva Lx ===
 +
 +  * **[[wpfr>OpenMandriva Lx]]** - [[https://www.openmandriva.org/|Téléchargement]]<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 ===
 +
 +  * **[[wpfr>openSUSE]]** version install [[http://software.opensuse.org/421/fr|Téléchargement]]<code>linux (loop)/boot/x86_64/loader/linux install=hd:$iso_path
 +initrd (loop)/boot/x86_64/loader/initrd</code>
 +
 +=== Slackware ===
 +Un petit tour chez la grand-mère des distros. Pas réussi à lancer la version live depuis Grub.
 +
 +  * **[[wpfr>Slackware]]** version install. [[http://bear.alienbase.nl/mirrors/slackware/slackware-iso/|Téléchargement]]<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 ====
 +Ce sont des distributions dédiées à une certaine utilisation. N'oubliez pas les paramètres généraux et les lignes en italiques sont celles qui sont différentes du menu de base.
 +
 +=== Jeux ===
 +
 +  * **[[wpfr>Fedora (GNU/Linux)#Labs|Fedora]] Games** ([[#Fedora|voir plus haut]]) [[https://labs.fedoraproject.org/fr/games/|Téléchargement]] - [[https://labs.fedoraproject.org/|Autres suites logicielles]]<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.
 +
 +  * **[[https://fr.vikidia.org/wiki/PrimTux|PrimTux]]** : [[http://primtux.fr/telecharger-primtux/|Page de téléchargement]]<code>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.img</code>
 +
 +  * **[[wpfr>Uberstudent]]** (beaucoup de logiciels qui ne sont pas sur d'autres distros) : [[https://sourceforge.net/projects/uberstudent/|Téléchargement]]<code>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</code>
 +
 +=== Logiciels pour la MAO (Musique Assistée par Ordinateur) ===
 +  * **[[:ubuntu_studio|Ubuntu Studio]]** est déjà cité [[#Ubuntu et ses variantes|plus haut]].
 +
 +  * **[[:mao#distributions_orientees_mao|Musix]]** développée par des argentins : [[http://musix.najval.net/musix/isos/|Site de téléchargement]]<code>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</code>
 +  
 +==== Distributions pour test d'environnements ====
 +=== Enlightenment ===
 +  * **[[:Enlightenment|Elive]]** a quelques racourcis intéressants (Alt + clic glissé : clic gauche déplace la fenêtre, clic droit la redimensionne par exemple) : [[http://www.elivecd.org/download/beta/|téléchargement de la version beta]]<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 ===
 +**[[wpfr>Elementary_OS|elementary OS]]** (basé sur Ubuntu) a son propre environnement baptisé Pantheon.\\ [[http://www.elementaryos-fr.org/telecharger-elementary-os/|Page de téléchargement]] //(pour tester, on peut mettre 0€ et utiliser le magnet/torrent)//
 +
 +  * <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 ===
 +[[https://antixlinux.com/|Antix]] est une distribution pouvant tourner sur de vieux systèmes. Elle utilise notamment des environnements de bureau légers tels que [[:IceWm]] et [[:Fluxbox]].\\  [[https://antixlinux.com/download/|Page de téléchargement]]
 +
 +  * <code>probe -u $root --set=iso_disk
 +linux (loop)/antiX/vmlinuz fromiso=$iso_path bootuuid=$iso_disk lang=fr tz=Europe/Paris xres=1920x1080 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====
 +**Voici la configuration de base : **
 +
 +<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>
 +
 +**Adaptation :**
 +  - 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
 +
 +===== Pour aller plus loin =====
 +
 +==== GRUB sur une clé USB ====
 +Pour lancer ses ISOs, on peut créer une clé USB bootable avec Grub dessus. 
 +
 +  * La procédure décrite ci-dessous permet de démarrer **aussi bien** avec des **BIOS anciens** qu'avec des **BIOS [[:UEFI]]**. 
 +  * La **clé** sera totalement **effacée**. Pensez à sauvegarder son éventuel contenu! 
 +  * Bien **repérer** le **nom de la clé**.<code>sudo blkid</code>
 +  * exemple réalisé depuis un iso Xubuntu **lancé en 'live-cd'**.
 +
 +=== Remise à zéro de la clé ===
 +**Dans [[:Gparted]]**
 +| **Se positionner** sur le bon disque (ici sdc),\\  {{:aller_sur_le_bon_device.jpg?direct&200|cliquer sur la liste des périphériques dans gparted}} | Si une ou plusieurs **partitions** sont montées, la/les **démonter** par clic droit,\\  puis créer une **nouvelle table de partitions** de type **"msdos"**,\\  {{::creer_une_table_de_partition.jpg?direct&250|dans le menu "Périphérique" de gparted}} |
 +
 +=== Créer 2 partitions ===
 +  * créer une partition de **type "FAT32"** de **16Mo**, étiquette **EFI-USB**
 +  * créer une seconde partition de **type "FAT32"** pour le **reste**, étiquette **GRUB-SOS**
 +  * **Appliquer**
 +  * par clic-droit mettre le **drapeau "esp"** sur la partition **EFI-USB** (la rend bootable sur les systèmes UEFI)
 +
 +=== Installer Grub ===
 +  * s'assurer que les **binaires des 2 types de Grub** sont bien installés sur votre ordi: <code>sudo apt install grub-pc-bin grub-efi-amd64-bin</code>
 +  * créer les **points de montage et monter les 2 partitions** (sdc s'appelle peut-être différemment pour vous): <code>sudo mkdir /mnt/efi
 +sudo mkdir /mnt/usb
 +sudo mount /dev/sdc1 /mnt/efi
 +sudo mount /dev/sdc2 /mnt/usb</code>
 +  * lignes de commandes pour **installer** les 2 types de Grub **sur la clé**: <code>sudo grub-install --no-floppy --boot-directory=/mnt/usb --removable --target=i386-pc /dev/sdc
 +sudo grub-install --no-floppy --boot-directory=/mnt/usb --removable --target=x86_64-efi --efi-directory=/mnt/efi /dev/sdc</code>
 +
 +Pour faire fonctionner cette clé, il vous faudra **rajouter un fichier** dans /grub sur la clé: **grub.cfg**.
 +
 +=== exemple de fichier grub.cfg ===
 +Voici un **grub.cfg qui fonctionne**: <file txt grub.cfg>insmod part_gpt
 +insmod part_msdos
 +insmod fat
 +insmod ext2
 +insmod ntfs
 +#insmod all_video
 +insmod efi_gop
 +insmod efi_uga
 +insmod video_bochs
 +insmod video_cirrus
 +insmod gfxterm
 +set gfxmode=1920x1080
 +set locale_dir=/grub/locale
 +set lang=fr_FR
 +insmod gettext
 +terminal_output gfxterm
 +insmod gfxmenu
 +
 +rmmod tpm
 +
 +insmod gzio
 +insmod loopback
 +insmod iso9660
 +insmod png
 +insmod jpeg
 +insmod font
 +
 +loadfont /grub/fonts/unicode.pf2
 +loadfont /grub/themes/Crunchy-simple/ComicNeue_normal.pf2
 +loadfont /grub/themes/Crunchy-simple/ComicNeue_title.pf2
 +theme=/grub/themes/Crunchy-simple/theme-fog.txt
 +
 +#timeout=4
 +default=1
 +
 +background_image /grub/themes/Crunchy-simple/fog/foggy-forest.jpg
 +
 +gfxpayload=keep
 +
 +menuentry "-------------------     MAINTENANCE      -------------------" {
 + true
 +}
 +menuentry "...   Gparted live" {
 + set iso_path="/gparted-live-1.0.0-5-amd64.iso"
 + search --set=root --file $iso_path
 + loopback loop $iso_path
 + echo 'Lancement en cours, veuillez patienter ...'
 + linux (loop)/live/vmlinuz findiso=${iso_path} boot=live union=overlay username=user config components noswap toram=filesystem.squashfs ip= net.ifnames=0 nosplash locales=fr_FR.UTF-8 keyboard-layouts=fr
 + initrd (loop)/live/initrd.img
 +}
 +menuentry "-----------------       Linux à installer       -----------------" {
 + true
 +}
 +menuentry "....    Xubuntu 20.04 LTS" {
 + set iso_path="/xubuntu-20.04-desktop-amd64.iso"
 + search --set=root --file $iso_path
 + loopback loop $iso_path
 + echo 'Lancement 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 --
 + initrd (loop)/casper/initrd
 +}
 +menuentry "-----------     Accès aux systèmes installés     -----------" {
 + true
 +}
 +menuentry "..  Menu sur /dev/sda2 (e pour modifier)" {
 + set root='hd0,gpt2'
 + configfile /boot/grub/grub.cfg
 +}
 +menuentry "                       > »  ETEINDRE  « <" {
 + halt
 +}</file>
 +
 +Comme sur la clé, nous sommes sur une partition FAT32, nous pourrons **modifier** ce fichier **sans avoir besoin d'être 'root'**.
 +
 +Le **thème** utilisé provient de **[[https://www.gnome-look.org/p/1160963/|cette page]]**.
 +
 +==== Une configuration sans être root ====
 +=== le dossier /isos ===
 +Si ce dossier est à la racine, peut-être avez-vous des **problèmes de droits** avec. Il vous suffit de **changer l'appartenance** du dossier avec la commande: <code>sudo chown -R $USER:$USER /isos</code>
 +
 +=== Fichier de configuration non root ===
 +[[#Principe général|Plus haut]], nous avons dit qu'il fallait ajouter les menus dans le fichier "/etc/grub.d/40_custom". Cela oblige à faire un //update-grub// après chaque modification.
 +
 +La solution:
 +  * **utiliser**, par exemple, le fichier **grub.cfg** cité plus haut,
 +  * le **placer dans** le dossier **/isos**
 +  * le **renommer**, par exemple, grubiso.cfg
 +  * ajouter **cette entrée de menu** à "**/etc/grub.d/40_custom**":<file txt 40_custom>menuentry "===>> lancer mes isos" {
 + search --set=root --file /isos/grubiso.cfg
 + configfile /isos/grubiso.cfg
 +}</file>
 +  * lancer un //sudo update-grub//
 +  
 +Maintenant, **chaque modification** de grubiso.cfg dans /isos est **prise en compte** sans nouvel //update-grub// !
 +
 +===== Problèmes connus =====
 +====grub en version 2.04 installé en mode EFI====
 +
 +Selon ce [[https://bugs.launchpad.net/snapd/+bug/1878541|bug]], **pour les versions 19.10 et suivantes** avec un **grub en version 2.04 installé en mode EFI**, le boot iso via la commande ''loopback'' **ne fonctionne plus**.
 +
 +Un contournement plus simple a été suggéré au [[https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1851311/comments/51|post #51 du lien ci-dessus]], c'est de rajouter une ligne pour supprimer le module tpm avant la commande loopback:
 +
 +<file>rmmod tpm
 +loopback loop $iso_path</file>
 +
 +====Versions Ubuntu 32 bits en mode EFI====
 +
 +En résumé : **cela ne fonctionne pas**
 +
 +Détail : ...sans remasteriser l'ISO, car l'ISO standard n'a pas du tout de répertoire /EFI (contrairement aux versions 64 bits). La "philosophie" des versions 32 bits (donc avant la 20.04) est qu'elles étaient faites pour marcher sur des "vieilles machines", donc a priori en mode BIOS.
 +
 +Une façon de remasteriser (en anglais) pour obtenir ce support : [[https://askubuntu.com/questions/392719/32-bit-uefi-boot-support]]
 +
 +----
 +//Contributeurs principaux : [[:utilisateurs:Frombenny]] ...//