L'ancien grub se nomme Grub Legacy. Des précisions dans cet article d'ubuntu.org.frgrub legacy. Utilisé jusqu'à Ubuntu version 9.04. De moins en moins utilisé sauf sur de vieux systèmes linux équipant des machines anciennes. Sa mise à jour pour amélioration n'était plus possible; il a dû être abandonné.
Le nouveau ou grub2 ou grub PC. Une bonne partie de cet article est inspiré de la page grub PC sur Ubuntu.fr et de shell_grub_2_a_l_amorcage
Présent depuis Ubuntu 9.10, et sur toutes les distributions modernes.Des changements radicaux ont été apportés au chargeur de démarrage préféré des linuxiens. Ces modifications le rendent plus solide, il reconnait automatiquement les systèmes d'exploitation présents sur le disque et les ajoute au démarrage (en particulier windows, que ce soit XP, vista ou seven).
Le menu de Grub ne s'affiche pas sur un PC mono-système depuis Ubuntu Lucid / 10.04. Il suffit de laisser la touche Majuscule (shift) enfoncée avant le chargement de Grub pour afficher son menu.
Pour que le menu s'affiche systématiquement, il faut éditer le fichier /etc/default/grub puis il suffit d'ajouter le # au début de la ligne
GRUB_HIDDEN_TIMEOUT=0
GRUB 2 (version Compatibles PC)
gnu-head-sm.jpg GRand Unified Bootloader, version 2 (ou GRUB 2) est la seconde version de GNU GRUB.
C'est un logiciel permettant de charger un système d'exploitation. Il pourra amorcer par lui-même des systèmes compatibles avec la norme POSIX (GNU/Linux, *BSD, Mac OS, etc.) ou enchaîner vers un autre chargeur d'amorçage pour les autres systèmes.
Grub 2 ou GRUB-PC n'est pas grub-legacy !
Plus qu'une continuité du projet GRUB Legacy précédent, GRUB 2 en est une réécriture complète. Il a pour but d'être un chargeur d'amorçage plus modulaire et portable que son prédécesseur avec notamment :
une interface graphique, un chargement de modules au moment de l'exécution plutôt qu'à la compilation, une portabilité vers diverses architectures matérielles (BIOS, EFI, Coreboot…), un mode de secours qui reprend la main en cas d'erreur de chargement. Les stage1.5 ont été éliminés. une révision de la numérotation des partitions, ce qui ne pouvait être fait sur GRUB Legacy.
Une vérification peut être faite avec la commande :
grub-install -v
(si vous voyez : GNU GRUB 1.97 ou +, vous avez Grub 2, si c'est 0.97, vous avez Grub Legacy).
Vous avez modifié les options avancées lors de l'installation d'Ubuntu en choisisant de l'installer ailleurs que dans le MBR, et vous souhaitez l'installer à cet endroit dorénavant :
assurez-vous d'être lancé sur l'Ubuntu contenant la configuration de Grub 2, lancez cette commande (en remplaçant /dev/sda si ce disque n'est pas celui de votre ubuntu) :
sudo grub-install /dev/sda
Si vous n'avez plus Grub2 suite, par exemple, à l'installation d'un autre système d'exploitation, voici les étapes à suivre pour le remettre en place :
1.Munissez-vous d'un CD d'installation (ou clé USB d'installation) d'Ubuntu 9.10 ou ultérieure (Les versions antérieures d'Ubuntu n'incluant pas GRUB 2, il n'est pas possible d'utiliser un CD-ROM d'installation ou une clé USB d'installation d'Ubuntu en version 9.04 et antérieures pour réinstaller GRUB 2.);
2.Amorcez votre ordinateur avec ce CD-ROM ou cette clé USB en choisissant l'option, si besoin, Essayer Ubuntu sans rien changer sur votre ordinateur ;
3.Montez la partition qui contenait GRUB 2 auparavant. Cette partition est généralement la même qui contient tout le système Ubuntu. Dans une session d'essai d'Ubuntu, rendez-vous dans le menu Raccourcis et sélectionnez la partition à monter dans la liste des partitions existantes;
4. Allez dans Système → Administration → Utilitaire de disques…
a. notez l'identifiant de périphérique de votre disque dur primaire - « Périphérique », en haut à droite - (généralement /dev/sda),
b. cliquez sur la partition Linux principale, qui contenait GRUB 2 et qui a été montée précédemment,
c.notez le nom de montage de cette partition - « Point de montage », en bas à droite - (par exemple /mnt/sda6).
# Dans un terminal (Applications → Accessoires → Terminal), lancez la commande suivante en remplaçant “/mnt/sda6” et /dev/sda par votre point de montage et le périphérique noté précédemment :
sudo grub-install --root-directory=/mnt/sda6 /dev/sda
#Redémarrez en enlevant votre live-cd ou votre clé-usb.
Pour Linux, on a l'alphabet pour désigner les disques durs physiques et une numérotation partant de 1 pour le numéro de la partition, soit:
-hd ou sd désignant un disque dur (autrefois, les scsi, pata et sata étaient différenciés) et
-hda pour le premier disque dur, hdb,
-hda2 pour la seconde partition du disque UN, sdc1 pour la première partition du disque TROIS….
Pour les deux Grub on a une numérotation démarrant de 0 pour les disques physiques.
- Mais Grub-legacy l'ancien note 0 pour le numéro de la partition alors que Grub2 numérote les partitions à partir de “1”.
Donc (hd0,0) pour grub “legacy” devient (hd0,1) avec Grub2 (première partition du premier disque).
Par exemple :
/dev/hdc5 ou /dev/sdc5 sera nommé hd(2,4) par grub-legacy.
Pas évident ! Mais pour grub-pc:
/dev/hda1 ou /dev/sda1 sera nommé hd(0,1).
Une gymnastique (a→ 0, b→ 1, c→ 2,..)est donc à faire pour les disques physiques, mais assi pour les partitions.
Fichier utilisé par le système
/boot/grub/grub.cfg : il est généré automatiquement par update-grub et ne doit donc pas être modifié manuellement.
C'est lui qui est lu au démarrage comme l'était menu.lst sur grub-legacy.
Avant de commencer, il est souhaitable d'avoir un fichier grub.cfg à jour en lançant un update-grub (voir plus haut).
d'en garder une sauvegarde
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.autogénéré
de ne pas chercher à le modifier directement (il sera écrasé à un moment ou à un autre)
De même, aucun script de configuration présent dans /etc/grub.d/ ne doit être effacé.
On préférera les déplacer dans un dossier dormant créé pour cela (sudo mkdir /etc/grub.d/zz)
/boot/grub/device.map
Lors d'un update-grub, un périphérique peut être indiqué comme introuvable ou sa taille/size impossible à définir. L'erreur est due aux supports déclarés dans /boot/grub/device.map.
soit vous éditez le fichier manuellement avec
gksudo gedit /boot/grub/device.map
soit vous lancez la commande:
sudo grub-mkdevicemap
qui détecte les supports de stockage branchés actuellement.
Pour changer temporairement une entrée du grub.cfg on utilisera plutôt le shell de grub2 lors du démarrage. Taper e au démarrage de grub. Une ligne apparait et on entre ses modifications.
Pour un changement permanent, on créera un script dans /etc/grub.d.
Avec grub2 on n'édite pas directement le fichier grub.cfg, mais on intervient sur un ensemble de fichiers de configuration qui seront “sourcés” au moment de la génération du grub.cfg. Toute modification du grub.cfg faite directement sera écrasée très rapidement lors d'un appel à “update-grub” ou “grub-mkconfig”, à éviter donc.
/ETC/DEFAULT/GRUB est le principal fichier de configuration sur lesquel on peut intervenir.
Les autres fichiers de configuration se trouvent dans le répertoire /ETC/GRUB.D/, on y trouve sur Debian:
00_header 05_debian_theme (section spécifique à votre distribution, couleur, thème) 10_hurd (noyaux exotiques …) 10_linux 20_memtest86+ (si installé, permet de choisir de tester la mémoire )
30_os-prober
30_os-prober est issue du paquet “os-prober”, c'est un script additionnel à grub2 qui détecte les autres systèmes d'exploitation installés, et ajoute une entrée dans le grub.cfg automatiquement.
40_custom
40_custom C'est le script qui pourra faire l'objet de vos modifications, on peut y intégrer un script spécifique, une entrée supplémentaire pour un système qui ne serait pas détecté par “os-prober”,
Prenons l'exemple de Debian, où Grub2 est proposé à l'installation, mais grub “legacy” est encore le choix par défaut. Lors de l'installation grub “legacy” ne sera pas effacé du secteur d'amorçage (MBR) du disque, grub2 sera “chaîné” à partir du grub déjà existant, pour vérifier que tout fonctionne correctement. Au démarrage suivant il faudra choisir dans le menu grub habituel l'entrée commençant par “chainload into grub2 on …”
Ajoutez le PPA ppa:danielrichter2007/grub-customizer dans vos sources de logiciels, puis rechargez la liste des paquets.Ensuite, installez le paquet grub-customizer. Faites une sauvegarde de votre grub comme indiqué !
Pour installer Boot-Repair, il suffit d'ajouter à vos sources de logiciels le PPA ppa:yannubuntu/boot-repair, mettre à jour les paquets puis installer le paquet boot-repair.En une ligne:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update && sudo apt-get install -y boot-repair