samedi 12 avril 2014

Grub2 chainload sur autre disque ou autre partition

Salut à tous,

Si comme moi :
  • Vous jouez avec de multiples distributions
  • Votre distribution principale utilise le chargeur Grub2
  • Vous souhaitez pouvoir "sauter" (faire un chainload) sur le chargeur Grub des autres distributions plutôt qu'elles soient intégrées directement dans votre chargeur principal
Voici comment je procède sur ma distribution ROSA Fresh (mais ceci doit être valable pour beaucoup d'autres)

1) Démarrer sur la distribution principale puis ouvrir une console en root.
2) Désactiver la détection automatique de nouveaux systèmes par Grub2 (c'est un choix personnel pour éviter d'encombrer la fenêtre de présentation des systèmes)
[root@Rosa2012Fresh grub.d]# chmod -x /etc/grub.d/30_os-prober

3) Modification du fichier "/etc/grub.d/40_custom" pour y ajouter les chaînages souhaités.

Dans cet exemple, deux entrées sont ajoutées, la première pointe sur le MBR du deuxième disque (sdb), la seconde pointe sur la partition sda3 du premier disque.
Pour éditer ce fichier en console et en root, personnellement j'utilise l'éditeur "nano"

Ajouter ces lignes à la fin du fichier sans modifier les lignes déjà présentes.
menuentry "Boot sur partition SDA3 ROSA Marathon"{
set root=(hd0,3)
chainloader +1
}
menuentry "Boot sur disque SDB MBR"{
set root=(hd1)
chainloader +1
}
4) Sauvegarder le fichier puis faire la commande suivante

[root@Rosa2012Fresh grub.d]# update-grub2

5) Redémarrer et tester les chaînages

Plus d'informations sur Grub2 ici ou encore ici.