GRUB 2
Basic summary of GRUB 2:
- A file called grub.cfg controls the Grub Screen.
- grub.cfg is automatically generated by the scripts in /etc/grub.d.
- Partitions are numbered from 1 instead of 0 and drives are numbered from 0:
Linux grub2 /dev/sda1 (hd0,1) /dev/sda2 (hd0,2) /dev/sda3 (hd0,3) /dev/sdb1 (hd1,1) /dev/sdb2 (hd1,2) /dev/sdb3 (hd1,3)
- As the grub.cfg file is the 'result' file the grub.cfg file should never be altered manually.
Le fichier de configuration par défaut de Grub 2
C'est le fichier /etc/default/grub qui contient les variables éditables pour grub2, comme par exemple le compte-à-rebours de lancement, les entrées par défaut à activer, les paramètres à adresser aux noyaux, les fantaisies graphiques, etc.
Les scripts de Grub 2
Les fichiers situés dans /etc/grub.d controlent en partie ce que grub.cfg, situé dans /boot/grub/ comportera, une fois celui-ci calculé.
Le fichier grub.cfg ne doit jamais êtré édité à la main. Toute modification ne peut que passer via l'édition des scripts de /etc/grub.d. Le détecteur d'OS gérant a minima 90% des cas de figure:
00_header:
05_debian_theme: Fixe les arrière-plans, couleurs des textes, thèmes
10_hurd: Localise les noyaux Hurd
10_linux: Localise les noyaux Linux en se fondant sur le retour de la commande lsb_release.
20_memtest86+: Si le fichier /boot/memtest86+.bin existe, l'inclue dans le menu de démarrage.
30_os-prober: Cherche Linux et les autres OS sur toutes les partitions et les inclue au menu.
40_custom: Un modèle pour ajouter des entrées personnalisées pour d'autres Systèmes d'Exploitation.
60_fll-fromiso: Un modèle pour ajouter des entrées personnalisées pour fromiso vers une clé USB/Une carte mémoire-SSD.
60_fll-fromiso ne doit pas être modifié autrement qu'en éditant le fichier /etc/default/grub2-fll-fromiso
Consultez Démarrer 'fromiso' avec Grub 2
Lorsqu'un fichier de configuration a été modifié, un nouveau fichier grub.cfg doit être calculé par grub pour prendre en compte les modifications. Lors des mises à jour des noyaux d'aptosid, la commande de mise-à-jour de grub se lance automatiquement. Dans tout autre cas où en tant qu'administrateur vous auriez modifié les fichiers sus-cités vous devrez lancer la commande:
update-grub
Le paquet Grub2 pour Debian est conçu afin que les configurations manuelles soient requises le plus rarement possible de votre part.
Éditer à la volée les options de Grub2 (au démarrage)
Si pour une raison ou pour une autre vous aviez besoin de modifier une entrée vers un noyau ou un OS au démarrage, appuyez sur la touche e après avoir sélectionné l'entrée à modifier. Utilisez le pavé fléché pour naviguer vers les lignes que vous voudrez éditer, puis toujours depuis le panneau d'édition, utilisez Ctrl+x pour démarrer en utilisant les options spécifiées.
Par exemple pour démarrer directement en mode 3 sans lancer X, ajoutez simplement 3 à la fin de la ligne linux /boot/vmlinuz.
Les modifications des entrées depuis le panneau de lancement ne sont que temporaires. Si vous avez vraiment besoin d'opérer des modifications permanentes alors il vous faudra éditer les fichiers appropriés. Reportez-vous à fichiers de Grub 2.
Multi démarrages avec Grub 2
La configuration modulaire de Grub 2 permet d'une simple commande de détecter tout nouveau système d'exploitation récemment installé et qui si il est trouvé, s'ajoute automatiquement aux choix de démarrage:
update-grub
Si vous deviez vraiment ajouter une entrée manuellement, par exemple si 30_os_prober échouait à écrire l'entrée souhaitée, il vous faudrait alors éditer le fichier /etc/grub.d/40_custom.
Exemples d'éditions du fichier 40_custom:
menuentry "second mbr"{ set root=(hd1) chainloader +1 }
menuentry "second partition"{ set root=(hd0,2) chainloader +1 }
Vos modifications effectuées n'oubliez pas :
update-grub
Si vous recevez un message suivant lequel grub ne connait pas le disque, celà signifie que devicemap doit être régénéré :
Assurez-vous de choisir la partition et non pas le MBR quand vous installez un système d'exploitation alternatif:
grub-mkdevicemap --no-floppy update-grub
Les avertissement peuvent être ignorés.
Si vous commetez une erreur, votre MBR peut éventuellement se retrouver effacé, auquel cas il faut une correction au moyen de Grub2 - MBR Écrasé.
Si ce que vous voulez est simplement ré-écrire grub2 sur le MBR d'un disque, faites:
/usr/sbin/grub-install --recheck --no-floppy /dev/sda
Il peut arriver qu'il faille répéter l'opération pour qu'elle fonctionne vraiment.
Secteur de démarrage du MBR effacé par Windows, Grub2 corrompu ou à restaurer
AVERTISSEMENT: pour restaurer Grub 2 vous aurez besoin d'une image iso aptosid 2009-04 (moros) ou suivantes. Alternativement il est possible chrooter à partir du mode live depuis n'importe quelle iso.
Pour ré-écrire grub2 sur le MBR et/ou restaurer grub 2 en général, vous démarrerez à partir d'un support aptosid.iso:
- Pour identifier et confirmer l'écriture sur les bonnes partitions (ex; [h,s]d[a..]X) toutes les commandes qui suivent doivent s'exécuter avec des privilèges root, donc devenez root (#):
$ su
- Quand vous êtes root, entrez:
fdisk -l cat /etc/fstab
Ceci pout obtenir les bonnes adresses. - Une fois assuré d'avoir identifié les bonnes partitions, créez un répertoire de montage:
mkdir -p /media/[hdxx,sdxx,diskx]
- Montez le média:
mount /dev/xdxx /media/xdxx
- Puis ré-écrivez sur le MBR du premier disque maître de votre ordinateur (generique):
/usr/sbin/grub-install --recheck --no-floppy --root-directory=/media/xdxx /dev/sda
Utiliser chroot pour régéner Grub sur un MBR corrompu ou effacé
Pour restaurer Grub, s'il a été recouvert ou corrompu sur le MBR, configurer un environnement chroot. Toute live.iso suffira étant donné que le chroot exploitera le système d'exploitation installé sur le disque dur, afin de vous permettre de restaurer la version de grub appropriée, qu'il s'agissse de grub1 (grub-legacy) ou de grub2.
Démarrez sur un support live aptosid.iso approprié à votre machine (CD, DVD, clé USB ou carte SSD 32 ou 64 bit) puis ouvrez une konsole. Entrez-y su puis appuyez sur "Entrée" pour disposer de droits d'adminstrateur.
Utiliser fdisk -l ou blkid, vous permet de vous assurer de l'adresse de la partition où se trouve le boot. Si vous préférez vérifier en mode graphique utilisez Gparted:
blkid
puis assurez-vous que le fstab corresponde à la sortie de blkid:
cat /etc/fstab
Imaginons ici que le système racine soit /dev/sda2
mkdir /mnt/aptosid-chroot mount /dev/sda2 /mnt/aptosid-chroot
Ensuite il faudra monter /proc, /run, /dev et /sys comme suit:
mount --bind /proc /mnt/aptosid-chroot/proc mount --bind /run /mnt/aptosid-chroot/run mount --bind /sys /mnt/aptosid-chroot/sys mount --bind /dev /mnt/aptosid-chroot/dev mount --bind /dev/pts /mnt/aptosid-chroot/dev/pts
If you boot using an EFI system partition you will also need to mount it. Assuming this is /dev/sda1:
mount /dev/sda1 /mnt/aptosid-chroot/boot/efi
Votre environnement chroot est à présent configuré, accédez-y comme ceci:
chroot /mnt/aptosid-chroot /bin/bash
Dès cet instant vous êtes en mesure d'utiliser le cache local d'apt ou de modifier les fichiers dont vous avez besoin comme si vous aviez réellement démarré l'OS, dans notre cas pour réparer grub sur le MBR.
Pour restaurer Grub 2
apt-get install --reinstall grub-pc
To ensure that grub was installed to the correct disk or partition, run:
dpkg-reconfigure grub-pc
To restore Grub 2 EFI
apt-get install --reinstall grub-efi-amd64
Pour restaurer Grub 1 (grub-legacy)
apt-get install --reinstall grub-legacy
Suivez les instructions fournies par l'installeur.
Pour libérer le chroot:
Ctrl+d
Redémarrez votre PC.