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

Ceci est une ancienne révision du document !


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

  1. ouvrez le fichier ISO avec le monteur d'archives : dans Nautilus, un clic droit sur le fichier ISO, sélectionnez Ouvrir avec le gestionnaire d'archives
  2. 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.
  1. Créez avec Gparted la partition qui recevra les fichiers isos.
  2. Créez le répertoire de montage /media/partisos :

    ...@...:~$ sudo mkdir /media/partisos

  3. Repérez l'UUID de la partition /dev/sdb5 :

    ...@...:~$ udo blkid /dev/sdb5
    /dev/sdb5: LABEL="isos" UUID="19D22ADE39FB5783" TYPE="ntfs" PARTUUID="6db6c434-05"

  4. É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
  5. Montez la partition :

    ...@...:~$ sudo mount /media/partisos

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

  7. 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
  1. É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