Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

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,
  • savoir lancer des isos en dehors du monde Ubuntu (pour de la maintenance : gparted live, rescueCD,.. ou pour tester d'autres environnements : dernières versions de Gnome-Shell, Cinnamon, Mate, Lxqt,..)

8. Pré-requis

8.1. version de Grub

  • Vérifiez la version de Grub : version 1.97 ou supérieure :
    $ grub-install -V
    grub-install (GRUB) 2.02-2ubuntu8.13
    

  • Vérifiez le contenu du fichier ISO :
    • ouvrez le fichier ISO avec le monteur d'archives (Archive Manager/File Roller). (Dans le gestionnaire de fichiers Nautilus, cliquez avec le bouton droit sur le fichier ISO et sélectionnez Ouvrir avec le gestionnaire d'archives)
    • Repérez (pour ubuntu, dans le répertoire casper) et notez leur emplacement et leur nom dans le fichier iso :
      • le fichier du noyau (vmlinuz ou vmlinuz.*)
      • et l'image initrd (initrd ou initrd.*).

8.2. Créer une partition pour les fichiers isos

Avec Gparted, créez une partition qui recevra les fichiers isos.

Dans les exemples, ce sera la partition /dev/sdb5(hd1,5) dans la notation de GRUB (à adapter)

Par commodité, montez cette partition, par exemple sur /media/partisos

  • Créez le répertoire de montage /media/partisos :
    $ sudo mkdir /media/partisos
    

  • Repérez l'UUID de notre partition /dev/sdb5 :

    $ sudo blkid /dev/sdb5
    [sudo] Mot de passe de nicolas : 
    /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 defaults 0 0

  • et montez la partition :

    $ sudo mount /media/partisos
    

9. Première étape : Mise en place du répertoire pour les fichiers isos

Nous allons créer un dossier isos sur la partition dédiée (montée par exemple sur /media/partisos).

Allez à la racine de la partition choisie (dans le gestionnaire de fichiers, clic droit, Ouvrir un terminal ici à l'endroit choisi) et :

  • créez-y un dossier isos :
    $ cd /
    $ sudo mkdir isos
    

  • changez le propriétaire du dossier isos pour y avoir les droits d'écriture :

    $ sudo chown $USER:$USER isos
    

  • créez un lien symbolique dans le dossier Téléchargements pour y accéder facilement :

    $ 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.

10. Autres étapes

10.1.  Création d'un sous-menu

Nous allons modifier la configuration de GRUB pour :

  • ne plus avoir à lancer la commande update-grub après chaque modification
  • et pouvoir modifier les sous-menu 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
    (...)
    # pour afficher une ligne de titre (ici une ligne vide pour 'aérer' le menu) sans rien faire d'autre, ne mettre que true
    menuentry "   " {
    	true	
    }
    # entrée qui conduit au sous-menu
    menuentry "===>> Distributions lancées depuis leur fichier iso" {
        # emplacement de la partition choisie
        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.

  • menuentry "   " {
        true	
    }

    ajoute au menu une ligne de titre (ici une ligne vide) grâce à l'instruction true

  • set root=(hd1,5)

    définit /dev/sdb5 comme la partition qui contient le dossier isos

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.18.0-25-generic
Image mémoire initiale trouvée : /boot/initrd.img-4.18.0-25-generic
Image Linux trouvée : /boot/vmlinuz-4.18.0-24-generic
Image mémoire initiale trouvée : /boot/initrd.img-4.18.0-24-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Windows 10 trouvé sur /dev/sdb1
Windows Vista trouvé sur /dev/sdb6
fait

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

10.2. É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 les pré-requis

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
    }

10.3. 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
    }

11. Conclusion

12. Problèmes connus

13. Voir aussi


Navigation