|
Table des matières
Grub2Avec Ubuntu 9.10, un nouveau Grub apparaît, le Grub2 qui correspond au paquet grub-pc. La configuration ne se fait plus par /boot/grub/menu.lst, elle est élaborée maintenant par /etc/default/grub et /boot/grub/grub.cfg.
Attention. La convention de numérotation des partitions dans grub-pc a changé: celle des disques durs physiques démarre toujours de 0, mais celle des partitions commence à 1, à la différence de grub-legacy (l’ancien grub).
Par exemple :
Sauvegarde du MBRC’est un réflexe à acquérir avant l’installation d’un OS. Surtout, sur un PC avec un Windows pré-installé, si on a besoin plus tard de le réinstaller. Le MBR est le premier secteur du disque. Le Master Boot Record, zone d’amorçage principale, est une zone de 512 premiers octets :
SauvegardeA partir d’une session ouverte:
sudo dd if=/dev/sda of=~/mbr.img bs=512 count=63 # la sauvegarde est faite dans le dossier courant
Restauration
sudo dd if=~/mbr.img of=/dev/sda bs=446 count=1 # indiquer le chemin de la sauvegarde
sudo dd if=~/mbr.img of=/dev/sda bs=512 count=1 # indiquer le chemin de la sauvegarde
sudo dd if=~/mbr.img of=/dev/sda bs=1 skip=446 seek=446 count=66 # indiquer le chemin de la sauvegarde Sauvegarde GrubPour sauvegarder le Grub: * Se déplacer à l’endroit voulu pour stocker la sauvegarde. * Sauvegarder le grub sudo sfdisk -d /dev/sdX > sdX.out # mettre la bonne identification sdX du disque La sauvegarde se fera dans le répertoire courant. Ne pas oublier de la mettre en lieu sûr (clé USB par exemple)
Sauvegarde table de partition
sudo sfdisk -d /dev/sda > bak-sda
sudo sfdisk /dev/sda < bak-sda ConfigurationLa configuration de Grub2 dépend de plusieurs fichiers.
Configuration automatiquela commande update-grub permet la mise à jour automatique du Grub. sudo update-grub Elle lit le contenu de ces fichiers un à un :
Configuration à la main
Attention, prendre au préalable les précautions suivantes :
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.copy sudo cp /etc/default/grub /etc/default/grub.copy sudo cp -R /etc/grub.d /etc/grub.d.copy
Avec Grub2, plusieurs fichiers peuvent néammoins être paramétrés:
On peut avoir besoin d’un update-grub, si un périphérique est indiqué introuvable ou sa taille est impossible à définir. L’erreur est due aux supports déclarés dans /boot/grub/device.map. Deux possibilités: - 1. éditer le fichier à la main gksu gedit /boot/grub/device.map - 2. lancer la commande grub-mkdevicemap pour détecter les supports de stockage branchés: sudo grub-mkdevicemap
Modifier (en mode administrateur) le fichier des valeurs par défaut de grub. Par exemple, sous Gnome, saisir la commande suivante dans un terminal: gksu gedit /etc/default/grub
A l’issue des changements, ne pas oublier de faire la mise à jour pour regénérer le fichier /boot/grub/grub.cfg:
sudo update-grub
Ajout d'une entréePour rajouter une entrée manuellement dans le menu de démarrage, deux solutions. Solution 1: Utiliser le fichier 40_customAjouter les 3 lignes impérativement à la fin du fichier existant (exemple ici, Win XP): #!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Windows XP" {
set root=(hd0,1)
chainloader +1
}
Après génération de grub.cfg, on retrouve alors: ### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Windows XP" {
set root=(hd0,1)
chainloader +1
}
### END /etc/grub.d/40_custom ###
Solution 2: créer un autre scriptSachant que son emplacement dans le menu dépendra du préfixe numérique à deux chiffres attribué. Attention, le préfixe minimum est 06. Par exemple, on veut rajouter une entrée Windows entre les entrées du système GNU/Linux et les entrées memtest. Les premières sont dans un script portant le préfixe 10 et les deuxièmes 20. On peut donc créer un script ayant pour nom 11_windows, par exemple (entre 11 à 19 inclus). Reste à régler la question du contenu. On peut entrer la même chose que dans l’exemple avec le fichier 40_custom, seulement, il faut que ce fichier soit un script et non pas un simple texte. Il suffit donc de s’inspirer du fichier 40_custom. Il faut absolument mettre dans l’en-tête du script, les lignes suivantes : #!/bin/sh exec tail -n +3 $0 Après, il reste à ajouter à la main les entrées, c’est à dire ici: #!/bin/sh
exec tail -n +3 $0
menuentry "Windows 7" {
set root=(hd0,1)
chainloader +1
}
Ce qui génère dans le fichier grub.cfg : ### BEGIN /etc/grub.d/11_windows ###
menuentry "Windows 7" {
set root=(hd0,1)
chainloader +1
}
### END /etc/grub.d/11_windows ###
Après avoir créé ce script, ne pas oublier pas de lui donner la permission d’exécution avant de générer le fichier grub.cfg: sudo chmod +x 11_windows sudo update-grub Sélection d'un OS par défaut
sudo grub-set-default x
sudo update-grub Changer l'ordre du Grub
gksu gedit /boot/grub/grub.cfg.copy /etc/grub.d/40_custom Copier à partir du grub.cfg.copy toutes les lignes entre ### BEGIN /etc/grub.d/30_os-prober ### et ### END /etc/grub.d/30_os-prober ###
sudo chmod +x /etc/grub.d/07_custom
sudo update-grub
Quand on a plusieurs versions Ubuntu, on peut décider de mettre par défaut une version particulière. Pour cela, démarrer avec cette version et lancer la commande suivante:
~$ sudo grub-install --root-directory=/ /dev/sdX
Nombre de noyaux affichésEn attendant la rédaction du paragraphe, consulter Grub ne s'affiche pasAu début du démarrage, si le Grub ne s’affiche pas, appuyer sur la touche Maj (SHIFT) pour le faire apparaître. Grub2 Erreur 15Pour réparer le Grub2 suite à erreur 15, suivre la procédure suivante:
sudo fdisk -l # pour identifier la partition-racine (si besoin, ouvrir Gparted) sudo mount /dev/sdaX /mnt # monter la bonne partition (remplacer le X par le bon numéro) sudo mount --bind /dev /mnt/dev # lien symbolique du dossier /dev en cours d'utilisation vers le disque monté sudo mount -t proc /proc /mnt/proc # lien pour que Grub2 trouve /proc/mounts sudo chroot /mnt # mise à la racine du disque monté apt-get install grub-pc # installation du logiciel Grub2 (sur le disque chrooté à la racine) update-grub # crée un nouveau fichier de configuration : grub.cfg grub-install /dev/sda # installation de grub sur le MBR Ensuiteà, sortir du disque monté par Ctl+D. Puis, démonter ce disque : sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt Redémarrer, la réparation est faite. Modifications GrubChoix de l'OS par défautLe premier OS dans le Grub est celui qui a été installé en dernier. En fait, cela correspond à la dernière installation Grub à partir d’un Linux. Donc, pour changer l’OS Linux par défaut, il suffit de démarrer sur cet OS et relancer une commande d’installation du Grub: sudo grub-install /dev/sda StartupManagerStartupManager apporte une solution graphique à ces problèmes. Trés simple d’emploi et compatible grub-legacy et grub2. Pour l’installer, cliquer sur le lien startupmanager. Pour le lancer, faire Système/Administration/Gestionnaire d’Amorçage StartupManager. StartupManager permet de changer des paramètres suivants: choix de l’OS, délai de lancement et affichage. Si on change la priorité au démarrage, le menu du grub ne change pas, mais la sélection par défaut se met sur l’OS par défaut.
Le développeur a décidé de stopper le développement de StartupManager. Grub-Customizer le remplace. Voir § suivant
Grub-CustomizerInstallationPour l’installation de Grub-Customizer:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer && sudo apt-get update && sudo apt-get install -y grub-customizer FonctionsLes onglets du menu permettent de:
Option Grub supplémentaireS’il manque un item dans Grub, Grub-Customizer permet aussi d’ajouter une nouvelle option d’OS dans le Grub:
Réinstallation Grub2En cas de besoin, on peut avoir à réinstaller le Grub2 (après déplacement de la partition-racine ou installation/réparation de Windows par exemple). Pour cela, il faut utiliser un LiveCD Ubuntu. Plusieurs solutions sont possibles. Réparateur de démarrageLe Réparateur de Démarrage (ou Boot-Repair) est un outil qui permet de réparer certains problèmes de démarrage de l’ordinateur :
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update && sudo apt-get install -y boot-repair
gksu boot-repair & On voit que l’on peut choisir l’emplacement du Grub ainsi que la version Ubuntu de son choix à lancer par défaut.
Attention, Boot-Repair ne sait changer l’ordre de boot que pour les OS Linux
DocumentationPour plus de détails, voir la page http://forum.ubuntu-fr.org/viewtopic.php?pid=8236441#p8236441 Solutions en ligne de commandeMéthode 1Le plus simple est de restaurer les fichiers Grub2 à partir d’un LiveCD.
~$ sudo os-prober # qui donne directement quelles sont les partitions-racine /dev/sda1:Microsoft Windows XP Professionnel:Windows:chain /dev/sda2:Ubuntu 12.04.1 LTS (12.04):Ubuntu:linux /dev/sda5:Ubuntu 10.04.4 LTS (10.04):Ubuntu1:linux /dev/sda7:Ubuntu 12.10 (12.10):Ubuntu2:linux /dev/sdb1:Windows NT/2000/XP (loader):Windows1:chain
sudo mount /dev/sdXY /mnt # exemple /dev/sda5 si la racine est en sda5
sudo grub-install --root-directory=/mnt/ /dev/sdX # exemple /dev/sda pour le disque sda
Cas particulier: pour une partition /boot séparée, changer le point de montage pour /mnt/boot.
sudo update-grub [sudo] password for xxx: Generating grub.cfg ... Found linux image: /boot/vmlinuz-2.6.31-16-generic-pae Found initrd image: /boot/initrd.img-2.6.31-16-generic-pae Found memtest86+ image: /boot/memtest86+.bin Found Microsoft Windows XP Professionnel on /dev/sda1 done Méthode 2Copie des fichiers Grub2 à partir de la partition-racine.
sudo grub-setup -d /media/XXXX/boot/grub /dev/sda # où XXXX est l'UUID et sda est le disque Exemple: sudo grub-setup -d /media/bcfb36ef-5ec4-4108-9c3f-ef15cc4f1039/boot/grub /dev/sda En cas de message “error: Cannot open /boot/grub/device.map”, ajouter l’option -m avec le chemin du device.map sudo grub-setup -d /media/XXXXX/boot/grub -m /media/XXXXX/boot/grub/device.map /dev/sda Exemple: sudo grub-setup -d /media/bcfb36ef-5ec4-4108-9c3f-ef15cc4f1039/boot/grub -m /media/bcfb36ef-5ec4-4108-9c3f-ef15cc4f1039/boot/grub/device.map /dev/sda
Méthode 3S’il n’y a plus Grub2 suite à l’installation d’un autre système d’exploitation, suivre les étapes ci-après :
sudo mount /dev/sdXY /mnt # exemple /dev/sda5 si la racine est en sda5
sudo grub-install --root-directory=/mnt/ /dev/sda
Méthode 4 (chroot)Démarrer en LiveCD et exécuter les commandes suivantes : 1) lister les partitions avec la commande fdisk: sudo fdisk -l # pour repérer les partitions concernées et surtout la racine-Ubuntu ainsi que les disques. 2) monter la partition racine-Ubuntu et lier dessus les répertoires /dev et /proc : sudo mount /dev/sdxy /mnt # remplacer xy par les bonnes valeurs sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc 3) “chrooter” la partition root LiveCD sur celle de son installation. sudo chroot /mnt 4) (ré)installer Grub à l’endroit voulu (soit sur le MBR soit sur la partitioin-racine /) Pour l’installer sur le MBR du disque : grub-install /dev/sdx # adapter le x de sdx. S'il n'y a qu'un disque, c'est bien sûr sda Grub: choix de l'emplacement du GrubSi Ubuntu démarreEntrer la commande suivante dans un terminal: sudo grub-install /dev/sdx # pour installer Grub sur le disque sdx Le prochain démarrage se fera à partir du Grub sur sdx. Si Ubuntu ne démarre pas
sudo mount /dev/sda1 /mnt # si la racine est en sda1 sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo chroot /mnt # pour basculer la partition root du LiveCD sur celle de l'installation
sudo grub-install /dev/sdx # pour installer Grub sur le disque sdx
sudo reboot Vérification du Grub
sudo grub-mkconfig
grep menuentry /boot/grub/grub.cfg OS présentsPour rechercher les autres OS présents sur la machine et les rajouter au GRUB automatiquement, on peut utiliser le logiciel OS-prober. Pour cela,
sudo apt-get install os-prober
sudo os-prober [sudo] password for guy: /dev/sda1:Microsoft Windows XP Professionnel:Windows:chain /dev/sda2:Microsoft Windows XP Professionnel:Windows1:chain /dev/sda6:Ubuntu 9.04 (9.04):Ubuntu:linux /dev/sda7:Ubuntu 9.10 (9.10):Ubuntu1:linux /dev/sda8:Ubuntu 9.10 (9.10):Ubuntu2:linux
Noter que Os-Prober ne présente pas l’OS en service
sudo update-grub Mode RescueOn peut, en cas de problème Grub, se retrouver en mode Rescue. On le reconnaît avec le prompt suivant: grub rescue>
Le clavier se trouve alors en QWERTY
Les commandes supplémentaires suivantes sont disponibles:
Les commandes suivantes sont disponibles en mode rescue du grub: Au prompt grub rescue, suivre les indications suivantes pour essayer de redémarrer sur le dernier kernel.
Après un redémarrage réussi, il faut,
Si le grub rescue ne marche pas, faire une réinstallation Gub2 (Méthode 1 ou 2)
Boot Info ScriptBootInfoScript est un outil génial pour avoir nombre d’informations utiles sur: - l’emplacement du Grub, - les informations de boot, - les partitions (comme sfdisk -l), - les UUIDs des partitions, - le contenu du Grub. Pour cela:
tar -zxvf bootinfoscript-061.tar.gz
sudo ./bootinfoscript
Boot Info Script 0.55 dated February 15th, 2010
============================= Boot Info Summary: ==============================
=> Grub 2 is installed in the MBR of /dev/sda and looks on the same drive in
partition #7 for /boot/grub.
=> Grub 2 is installed in the MBR of /dev/sdb and looks on the same drive in
partition #5 for /boot/grub.
sda1: _________________________________________________________________________
File system: ntfs
Boot sector type: Grub 2
Boot sector info: Grub 2 is installed in the boot sector of sda1 and
looks at sector 202082064 of the same hard drive for
core.img, but core.img can not be found at this
location. No errors found in the Boot Parameter Block.
Operating System: Windows XP
Boot files/dirs: /boot.ini /ntldr /NTDETECT.COM
sda2: _________________________________________________________________________
File system: swap
Boot sector type: -
Boot sector info:
sda3: _________________________________________________________________________
File system: Extended Partition
Boot sector type: -
Boot sector info:
...
Créer un rapport Boot-InfoUn tutoriel est disponible sur http://doc.ubuntu-fr.org/tutoriel/boot-info Windows en double dans Grub2La procédure à suivre est tirée de http://www.michel-eudes.net/blog/index.php?2010/10/11/98-grub2-en-double-boot-window Le problème est que GRUB trouve 2 systèmes windows, et ce n’est pas l’idéal : /dev/sdax –> système de restauration le choix n ubuntu /dev/sday –> Windows le choix n+1 ubuntu Pour corriger ce désagréement:
GRUB_DISABLE_OS_PROBER=true pour ne plus détecter les systèmes étrangers.
Windows Recovery Environment (loader) (on /dev/sday) par Windows (on /dev/sday)
sudo update-grub Et enfin, tester le nouveau grub.cfg Suppression d'un grubDans certains cas (installation de deux grubs sur les MBR de deux disques), le démarrage se termine en grub rescue sans pouvoir réparer avec les commandes grub rescue). Il faut alors supprimier le grub en trop sans effacer tout le MBR qui contient la table de partition.
Passer en root sudo -s
sfdisk -d /dev/sdX > sdX.out
dd if=/dev/null of=/dev/sdX bs=446 count=1 DocumentationCette page a été rédigée par compilation des documents suivants: - http://doc.ubuntu-fr.org/grub-pc - http://grub.enbug.org/OptionsDeGrub. - http://www.benlaug.com/node/37 - https://help.ubuntu.com/community/Grub2 |