Table des matières

,

Cette page ne concerne qu'une des utilisations possibles de Grub2 dont la documentation détaillée est disponible ici.

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 le recours à une clé USB gravée avec l'instruction "dd" ou avec un utilitaire comme usb-creator, Unetbootin, Easy2boot, 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 2.

Ce type de lancement ne fonctionne pas avec toutes les distributions Linux. Le fonctionnement est aussi très différent d'une distribution à l'autre.

Objectifs de ce tutoriel

Pré-requis

Parti pris pour ce tutoriel

Un dossier unique

Pour simplifier les descriptions dans ce tutoriel, on créera un dossier unique pour tous les fichiers 'iso' :

Pour cela, on saisira les commandes suivantes dans le terminal:

cd /					# pour aller à la racine de la partition si ce n'est déjà fait
sudo mkdir isos
sudo chown ben:ben isos			# username:groupname : à adapter à votre configuration (le plus souvent le nom du groupe est identique à celui de l'utilisateur)
ln -f -s -r -t ~/Téléchargements isos

Donc, tous les fichiers 'iso' téléchargés seront désormais déplacés dans ce dossier 'isos' dans 'Téléchargements'.

Un sous-menu

Modifier le menu principal en configurant le fichier /etc/grub.d/40_custom ou /boot/grub/custom.cfg nous obligerait à lancer la commande 'sudo update-grub' après chaque modification. Pour éviter cela :

On configure donc le fichier /etc/grub.d/40_custom ainsi :
(Cliquez sur le nom du fichier pour l'afficher dans votre éditeur de texte)

/etc/grub.d/40_custom
menuentry "   " {
	true	# true permet d'afficher la ligne de titre (ici une ligne vide pour 'aérer' le menu) sans rien faire d'autre
}
menuentry "===>> Distribs lancées depuis leur fichier 'iso'" {
	set root=(hd0,2)
	configfile /isos/00_isoboot.cfg
}

Note : avec la commande 'set root=(hd0,2)', on définit comme partition où est le dossier 'isos' /dev/sda2 (c'est donc à adapter à votre configuration).

Pour activer ce changement, il faut lancer la commande :

sudo update-grub

On aura ainsi une ligne à notre menu grub pour se rendre sur une page dédiée aux lancements de fichiers 'iso'.

Le fichier de configuration

Paramètres généraux

Ce sont des paramètres qui concernent tous les menus qu'on évite ainsi de répéter dans chacun d'entre eux :

/isos/00_isoboot.cfg_(paramètres)
### Lancement des modules grub qui ne seraient pas déjà lancés en standard
#insmod ntfs		# décommentez si les isos sont sur une partion MS Windows
insmod loopback
insmod iso9660
 
### la racine est définie pour tous les menus qui suivront car tous les isos sont au même endroit
set root=(hd0,2)		# correspond à /dev/sda2 (la commande peut être aussi set root=(hd0,msdos2) ou (hd0,gpt2) selon le type de votre partition)
 
### effacer les deux lignes ci-dessous si vous ne voulez pas de menu par défaut
set default="2"		# la ligne de menu qui sera sélectionnée par défaut sera la 3ème (on compte à partir de 0 dans grub !)
set timeout=8		# durée en secondes avant le lancement du menu par défaut

Habillage (mode texte)

Si votre grub principal est en mode texte, il est préférable de conserver ici un habillage en mode texte.

/isos/00_isoboot.cfg_(habillage)
#insmod gfxterm			# nécéssaire pour personnaliser l'aspect du menu. Peut être déjà lancé si vous avez une image de fond pour votre menu principal
set gfxmode=1920x1200	# définit la résolution d'affichage du menu grub
 
insmod jpeg													# insmod png   si votre image de fond est au format png
background_image -m stretch /isos/0_image_de_fond.jpg		# si votre image ne s'affiche pas, se référer à la doc (tutoriel:Grub2_paramétrage_manuel#Fond d'écran)
### note: pour que le texte des menus reste lisible, une image plus foncée que la normale est conseillée.
 
### couleurs dispo : black, blue, green, cyan, red, magenta, brown, light-gray, dark-gray, light-blue, light-green, light-cyan, light-red, light-magenta, yellow, white 
### black équivaut à transparent lorsqu'on a une image de fond
set color_normal=light-cyan/black				# définit les couleurs de texte/fond d'écran autour du cadre de menu
set menu_color_normal=light-cyan/black			# définit les couleurs de texte/fond d'écran dans le cadre de menu
set menu_color_highlight=light-magenta/blue		# définit les couleurs de texte/surbrillance pour le menu sélectionné
 
set gfxpayload=1920x1200		# définit la résolution d'affichage par défaut en sortant du menu grub (par défaut il est à 'keep')

Thème

Si votre grub principal s'affiche via un thème, on pourra en définir un autre ici pour se repérer plus facilement (on ne cumulera pas avec le paragraphe précédent : c'est soit l'un soit l'autre).

Le thème utilisé vient de cette page. Les polices de caractères doivent être lancées 'manuellement' ainsi que le fond d'écran.

/isos/00_isoboot.cfg_(theme)
insmod png	# s'il n'est pas déjà lancé pour le thème du menu principal
 
loadfont /isos/themes/Crunchy-ubuntu-ish/Ubuntu_normal.pf2
loadfont /isos/themes/Crunchy-ubuntu-ish/Ubuntu_title.pf2
background_image /isos/themes/Crunchy-green/term_borders_c.png		# le fond d'écran n'est utile que pour la ligne de commande ou l'édition d'un des menus
 
theme=/isos/themes/Crunchy-ubuntu-ish/theme-fr.txt

Cet extrait de fichier est à ajouter éventuellement à votre fichier de configuration et à modifier à votre convenance.

/isos/00_isoboot.cfg_(ubuntu et ses variantes)
menuentry ".. Ubuntu 16.04" {
	set isofile="/isos/ubuntu-16.04-desktop-amd64.iso"
	loopback loop $isofile
	linux (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/ubuntu.seed noprompt quiet splash --
	initrd (loop)/casper/initrd.lz
}

On dupliquera ce menu autant de fois que de menus souhaités. 'root=..' étant déjà indiqué dans les paramètres généraux, il n'est pas répété dans le menu type.

set isofile est à adapter en fonction du fichier iso téléchargé,
loopback loop $isofile peut être modifié en loopback loop (hd0,2)$isofile si le fichier n'est pas trouvé par grub,
/cdrom/preseed/ est à adapter en fonction de la variante (C'est souvent la seule chose qui diffère dans la ligne 'linux loop' des variantes ubuntu, cf paragraphe suivant).

Ubuntu et ses variantes

Voici les lignes 'vmlinuz' pour toutes les variantes d'Ubuntu :

Attention ! Pour les versions 32 bits d'Ubuntu et ses variantes, vmlinuz.efi doit être modifié en vmlinuz tout court.

Dérivés : LinuxMint,..

Installer en mode graphique

2 solutions :

L'option 'only-ubiquity' ou 'maybe-ubiquity' ne fonctionne pas toujours. Le démontage de 'isodevice' puis clic sur l'icône 'installer ubuntu', lui, a toujours fonctionné.

Installer en mode texte

Distributions dédiées à la maintenance

Comme pour ubuntu, n'oubliez pas les paramètres généraux (surtout les 'insmod' et 'set root') et le menu de base dont on modifiera les lignes 'linux loop' et 'initrd loop' comme indiquées en italique.

Parted Magic (payant)

Très complet mais pas gratuit (liste des programmes, téléchargement) :

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) - Téléchargement

SystemRescueCd

Seuls les outils via l'interface graphique sont accessibles. Aucune tentative de lancer les outils en mode texte lancés via syslinux n'a abouti.
Page de téléchargement - Manuel d'utilisation - Documentation Officielle SystemRescue ISO et grub2

CloneZilla

CloneZilla vous permettra de cloner une partition vers une image ou une autre partition ou inversement.

Quelques grands noms

N'oubliez pas les paramètres généraux et les lignes en italiques sont celles qui sont différentes du menu de base.

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) :

Debian

Même si Debian est parent du projet Ubuntu, son lancement est différent car il n'utilise pas casper.

Dérivées

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'archive (clic droit). Dans le dossier 'isolinux', il faut ouvrir 'isolinux.cfg' puis rechercher CDLABEL.

Gentoo

Dérivées

openSUSE

Slackware

Un petit tour chez la grand-mère des distros. Pas réussi à lancer la version live depuis Grub.

Distributions 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

Logiciels éducatifs

Logiciels pour la MAO (Musique Assistée par Ordinateur)

Expérimenter d'autres environnements

Enlightenment

LxQt

Pantheon d'Elementary OS

Article Wikipédia

Distributions légères

antiX

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.
Page de téléchargement

Remarque : 'bootdev' correspond à la même partition que 'set root=(hd0,2)' dans les paramètres généraux. Il faut l'adapter ainsi que 'xres' à votre configuration.

Slitaz

Un linux qui tient sur une "iso" de 50 Mo. Seules les versions "core" peuvent être lancées depuis Grub :
version 4 (stable), version rolling 32 et 64-bit

Qu'en est-il des isos BSD

FIXME:pas réussi à amorcer complètement une BSD depuis un fichier iso. Debian est l'essai le plus encourageant. Parmi les tests effectués :

Debian kfreeBSD

Site de téléchargement de l'iso-cd ou l'iso-dvd

GRUB 2 sur une clef USB

Pour lancer ces isos on peut créer une clé USB ayant un grub d'intégré en suivant cette procédure. Ensuite on intégrera les menus directement au fichier /boot/grub/grub.cfg de celle-ci.


Contributeurs principaux : Frombenny