Ceci est une ancienne révision du document !
Table des matières
Créer une partition avec GRUB2 contenant les cd d'installation et des isos
Voici comment lancer vos isos présents sur le disque dur directement avec Grub 2.
Créer une partition avec GRUB2 contenant les cd d'installation et des isos
Ce tutoriel vous permettra de :
- tester toutes les versions Ubuntu sur votre matériel,
- installer ces distributions sans avoir à graver un CD,
- lancer des isos en dehors du monde Ubuntu (pour la maintenance : gparted live, rescueCD,.. ou pour tester d'autres environnements : dernières versions de Gnome-Shell, Cinnamon, Mate, Lxqt,..)
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 ou supérieure :
...@...:~$ grub-install -V grub-install (GRUB) 2.02-2ubuntu8.17
Première étape
- 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éer une partition pour les fichiers isos
Dans les exemples, ce sera la partition /dev/sdb5 → (hd1,5) dans la notation de GRUB (à adapter)
Rappel :
- disque :
- sda → hd0
- sdb → hd1
- etc.
partition :- sda1 → 1
- sda2 → 2
- etc.
- Créez avec Gparted la partition qui recevra les fichiers isos.
- Créez le répertoire de montage /media/partisos :
...@...:~$ sudo mkdir /media/partisos
- Repérez l'UUID de la partition /dev/sdb5 :
...@...:~$ udo 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 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 sur la partition un dossier isos avec les droits d'écriture :
...@...:~$ cd /media/partisos ...@...:/media/partisos$ sudo mkdir isos ...@...:/media/partisos$ sudo chown $USER:$USER isos
- créez un lien symbolique dans le dossier Téléchargements pour un accès facile :
...@...:/media/partisos$ 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
Création d'un sous-menu
Nous allons modifier la configuration de GRUB pour :
- ne plus devoir lancer la commande update-grub après chaque modification
- et pouvoir modifier les sous-menus sans avoir les droits d'administration
- Éditez avec les droits d'administration le fichier /etc/grub.d/40_custom pour lui ajouter des lignes de menu qui mènent à un fichier de configuration situé sur la partition isos :
- /etc/grub.d/40_custom
... menuentry " " { # true permet d'afficher la ligne de titre sans rien faire d'autre # ici une ligne vide pour aérer le menu true } # entrée qui conduit au sous-menu menuentry "===>> Distributions lancées depuis leur fichier iso" { # partition choisie # /dev/sdb5 : b => hd1 ; 5 => 5 set root=(hd1,5) # fichier de configuration du sous-menu configfile /isos/00_isoboot.cfg }
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 :
- ubuntu-16.04.3-desktop-amd64.iso
- boot-repair-disk-64bit.iso
- Windows10-32-64.iso
- medicat.17.10.02.stable-004.iso
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 :
- cd d'installation de Windows 10 :
menuentry "Installation de Windows 10" { insmod ntfs search --no-floppy -s root -l WIN10 chainloader +1 }
Conclusion
Problèmes connus
Voir aussi