Dans un précident article j'ai parlé de comment créer sa clé usb Multiboot avec syslinux, là je vais expliquer comment la créer avec grub2.
Attachez vos ceintures ça va un peu secouer!
GNU GRUB (acronyme signifiant en anglais «GRand Unified Bootloader») est un programme d'amorçage de micro-ordinateur: un bootloader. Il s'exécute à la mise sous tension de l'ordinateur, après les séquences de contrôle interne et avant le système d'exploitation proprement dit, puisque son rôle est justement d'en organiser le chargement.
Lorsque le micro-ordinateur héberge plusieurs systèmes (on parle alors de multi-amorçage: multiboot), il permet à l'utilisateur de choisir quel système démarrer.
Bon tout ça vous vous en foutez éperdument donc je vous épargnierais les détails sordides!
Commençons sans plus tarder! >
Nous allons utiliser la même fenêtre terminal pour toutes les étapes; passez en mode Super Utilisateur avec un petit:
sudo su
et c'est parti!
Commencez par repérez votre flash disque, faîtes un:
fdisk -l
Vous aurez un affichage du genre
Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 têtes, 63 secteurs/piste, 60801 cylindres, total 976773168 secteurs Unités = secteurs de 1 * 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Identifiant de disque : 0x00088d7f Périphérique Amorce Début Fin Blocs Id Système /dev/sda1 * 2048 968667135 484332544 83 Linux /dev/sda2 968669182 976771071 4050945 5 Étendue /dev/sda5 968669184 976771071 4050944 82 partition d'échange Linux / Solaris Disque /dev/sdb : 8103 Mo, 8103395328 octets 47 têtes, 20 secteurs/piste, 16837 cylindres, total 15826944 secteurs Unités = secteurs de 1 * 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Identifiant de disque : 0x00017384 Périphérique Amorce Début Fin Blocs Id Système /dev/sdb1 * 2048 15826942 7912447+ b W95 FAT32
Vous pouvez vous aider aussi de la commande:
blkid
Moi j'ai ça:
/dev/sda1: UUID="6ccd7efb-8550-47d0-a97d-2466d35307a9" TYPE="ext4" /dev/sda5: UUID="cb5108b7-ac35-45bb-89dc-9e15de646bc0" TYPE="swap" /dev/sdb1: LABEL="discus" UUID="5DFA-A0DA" TYPE="vfat"
Pour moi donc mon flash disque est sur sdb et il contient une seule partition qui est sdb1. C'est sur ce disque et cette partition que je vais travailler pour le reste du tuto.
Vérifiez bien votre disque(il n'est peut-être pas sur sdb et peut-être qu'il contient plusieurs partitions et pas qu'une seule et c'est pas sdb1 que vous voulez utiliser comme partition); vous devrez adapter les commandes qui vont suivre à votre configuration à vous; une erreur à ce niveau peut endommager un autre disque et AUCUN RETOUR EN ARRIERE N'EST POSSIBLE!
Démontez le volume:
umount /dev/sdb1
Formattez la paritition en vfat:
mkfs.vfat -F 32 -n discus /dev/sdb1
Définir la 1ère parition du disque comme bootable(amorce):
parted /dev/sdb set 1 boot on
Si vous en avez envie vous pouvez faire 2 partitions sur votre disque avec fdisk ou gparted; vous pouvez alors mettre la 1ère partition bootable ou la deuxième: parted /dev/sdb set 2 boot on
Créez un nouveau point de montage pour votre disque pour ne pas interférer avec le système d'exploitation: (et n'oubliez pas de le démonter et de le supprimer comme je le dis à la fin)
mkdir /media/discus
Montez le disque sur le point de montage qu'on a créé:
mount /dev/sdb1 /media/discus
Installez le MBR (Master Boot Record: zone amorce) de grub sur la racine de votre disque:
grub-install --force --no-floppy --root-directory=/media/discus /dev/sdb
sdb et non pas sdb1; c'est sur la racine du disque qu'on veut l'installer!
Créez un dossier pour les fichiers iso des distributions que vous voulez mettre sur votre disque:
mkdir /media/discus/iso
Démontez votre disque: (comme j'ai dit que j'allais le dire un peu plus haut! )
umount /dev/sdb1
Supprimez le point de montage qu'on a créé:
rmdir /media/discus
Quittez la fenêtre terminal.. Ca y est on a terminé!
Déjà?!
Eh bein non pas tout-à-fait.. Mais c'est plus simple de terminer la suite en mode graphique!
Maintenant si vous allez voir votre flash disque vous y trouverez quelque chose comparable à ça:
/ ├── iso/ Dossier de nos fichiers iso ├── boot/ ├── grub/ ├── fonts/ Polices de caractères ├── i386-pc/ Modules de grub ├── locale/ Dossier des fichiers de traduction ├── grub.cfg Fichier de configuration de grub ├── grubenv Fichier de sauvegarde de grub2
Bein maintenant il reste plus qu'à copier les fichiers iso des distributions que vous voulez installer sur votre clé et les mettre dans le dossier iso c'est pas trop compliqué n'est-ce pas?
Et à configurer grub en éditant le fichier grub.cfg avec votre éditeur de texte favori et en y collant ceci:
set timeout=10 set default=0
timeout: temps d'attente avant de démarrer le choix par défaut; mettez à 0 pour un boot sans attente et à -1 pour une attente infinie!
default: l'élément du menu qui sera choisi par défaut (numéro de l'entrée de menu en partant de 0).
En fonction des distributions que vous voulez mettre sur votre disque copiez ces entrées du menu: (à adapter bien entendu en fonction du nom du fichier .iso; là je l'ai fait court pour simplifier)
Ubuntu 12.10 Quantal Quetzal:
menuentry "Ubuntu" { loopback loop /iso/ubuntu.iso linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/iso/ubuntu.iso noeject noprompt splash -- initrd (loop)/casper/initrd.lz }
Kali 1.0.2:
menuentry "Kali" { search --set -f /iso/kali.iso loopback loop /iso/kali.iso linux (loop)/live/vmlinuz findiso=/iso/kali.iso boot=live noconfig=sudo username=root hostname=kali quiet splash initrd (loop)/live/initrd.img }
Mantra-OS Bodhi:
menuentry "Mantra-OS" { loopback loop /iso/mantra-os.iso linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/iso/mantra-os.iso noeject noprompt splash -- initrd (loop)/casper/initrd.lz }
Je ne peux pas être exaustif sur la liste des distributions. Si vous avez besoin d'aide sur l'entrée de menu d'une distribution en pariticulier postez-la avec la version exacte et je l'ajouterais à cette liste!
D'autres options et trucs surtout graphiques sur la configuration de grub2 existent biensûr; je n'ai fait qu'effleurer la carapace de la bête!
Peut-être qu'un de ces jours je mettrais un tuto sur comment faire un thème graphique pour grub2..
Des commentaires?! Des demandes?! N'hésitez pas!
Quelques lectures sur le sujet:
[1] Le manuel de grub2: http://www.gnu.org/software/grub/manual/grub.html
[2] "Theming grub: a beginner's guide" http://ubuntuforums.org/showthread.php?t=1534689