GRUB Legacy
(→Entrée complète : à déplacer dans la rubirque chainage) |
(→Chaînage : Fin du déplacement du chainage grub-> grub2) |
||
| Ligne 173 : | Ligne 173 : | ||
#Autre distribution | #Autre distribution | ||
| − | grub-install /dev/sda6 # ou en utilisant le shell de grub | + | "grub-install /dev/sda6 # ou en utilisant le shell de grub |
{{tip|Si vous vous dites que vous avez oublié de faire ça avant et que vous pensez ne plus avoir accès à votre autre distribution... Pas de panique: pensez [[chroot|chroot]] (n'oubliez pas de copiez le /etc/mtab dans votre chroot ! ) ou plus simplement: appliquez la méthode décrite précédemment avec une entrée complète avant de poursuivre (il n'y a aucun problème à avoir des amorces sur différentes partitions... tant qu'elles sont à jour)... ;-) }} | {{tip|Si vous vous dites que vous avez oublié de faire ça avant et que vous pensez ne plus avoir accès à votre autre distribution... Pas de panique: pensez [[chroot|chroot]] (n'oubliez pas de copiez le /etc/mtab dans votre chroot ! ) ou plus simplement: appliquez la méthode décrite précédemment avec une entrée complète avant de poursuivre (il n'y a aucun problème à avoir des amorces sur différentes partitions... tant qu'elles sont à jour)... ;-) }} | ||
| Ligne 194 : | Ligne 194 : | ||
{{tip|On peut éventuellement réaliser le même type d'opération, entrée complète ou chaînage, depuis l'autre distribution (double chaînage).}} | {{tip|On peut éventuellement réaliser le même type d'opération, entrée complète ou chaînage, depuis l'autre distribution (double chaînage).}} | ||
| + | |||
| + | =====chainage vers Grub2 (par exemple avec ubuntu)===== | ||
| + | Comme grub2 n'aime pas trop être installé dans le VBR d'une partition, autant chainloader directement sur le core.img. Attention, il faut que le fs soit supporté par grub. | ||
| + | La syntaxe devient: | ||
| + | |||
| + | title Autre Linux utilisant Grub2 | ||
| + | root (hd0,6) | ||
| + | kernel /boot/grub/core.img | ||
== Sécurité == | == Sécurité == | ||
Version du 28 avril 2012 à 16:26
GRUB est un chargeur d'amorçage (bootloader) multiboot. Bien qu'il ne soit plus développé (mais la correction de bugs existe toujours), il est actuellement le bootloader par défaut.
Sommaire |
Installation
grub est en théorie installé par défaut, mais au cas où:
pacman -S grub
Configuration
Le fichier de configuration est /boot/grub/menu.lst, exemple (en supprimant quelques commentaires):
# general configuration: timeout 5 default 0 color light-blue/black light-cyan/blue # (0) Arch Linux title Arch Linux [/boot/vmlinuz-linux] root (hd0,0) kernel /vmlinuz-linux root=/dev/sda3 ro initrd /initramfs-linux.img # (1) Windows #title Windows #rootnoverify (hd0,0) #makeactive #chainloader +1
Si vous utilisez d'autres images (fallback, linux-lts ou noyaux compilés par vos soins), il vous faut rajouter les entrées adéquates dans votre menu.lst afin de pouvoir les sélectionner au démarrage. Par exemple, pour rajouter l'image fallback:
# (1) Arch Linux title Arch Linux Fallback root (hd0,0) kernel /vmlinuz-linux root=/dev/sda3 ro initrd /initramfs-linux-fallback.img
kernel /vmlinuz-linux root=/dev/disk/by-uuid/8887210b-72d3-4899-99f7-3f39ea0a0eeb ro
rm /boot/{vmlinuz26,kernel26.img,kernel26-fallback.img}
et de mettre à jour votre menu.lst avec les nouveaux noms: vmlinuz-linux, initramfs-linux.img, initramfs-linux-fallback.img.
Options
- timeout: le temps en secondes avant de lancer le système par défaut ;
- default: l'entrée à lancer par défaut au bout de timeout secondes ;
default saved retient la dernière entrée de démarrage sélectionnée et la fait devenir la nouvelle entrée par défaut. Placez savedefault à la fin de chaque section de démarrage pour que cette fonctionnalité prenne effet. - (hdn,m): est la partition m sur le disque n, les nombres commencent à partir de 0 ;
- timeout m: m secondes d'attente avant la sélection automatique de l’entrée par défaut ;
- password -md5 str: mot de passe chiffré ;
- title str: Titre d'une entrée ;
Directive root
GRUB doit connaître la partition où il trouvera les fichiers dont il a besoin, cette partition est indiquée à l'aide de la directive root:
root (hd0,0)
Afin de connaître celle de votre système, vous pouvez lancer le shell grub et utiliser la commande find:
# grub grub> find /grub/stage1 (hd0,0)
L'argument à passer à find dépend de votre partitionnement. Ainsi, si vous n'avez pas de partition dédiée à /boot, cela donne:
grub> find /boot/grub/stage1
root (hd0,0) kernel /boot/vmlinuz-linux root=/dev/sda1 ro initrd /boot/initramfs-linux.img
Installation du chargeur
Les fichiers de GRUB sont copiés à l'installation du système, si vous ne l'avez pas installé à cette étape, copiez les manuellement:
cp -a /usr/lib/grub/i386-pc/* /boot/grub
Shell grub
A adapter selon l'emplacement des fichiers GRUB:
grub> root (hd0,0)
Pour installer sur le MBR:
grub> setup (hd0)
Installation sur la première partition:
grub> setup (hd0,0)
grub-install
#montage du système: /, /boot si séparé, etc. ... #montage des dossiers spéciaux: /dev /sys /proc ... #pour utiliser grub-install grep -v rootfs /proc/mounts > /mnt/etc/mtab #chroot chroot /mnt/
Installation sur le MBR:
grub-install /dev/sda
Sur la première partition:
grub-install /dev/sda1
Amorçage multiple
Afin de pouvoir lancer un autre système d'exploitation qu'Arch au démarrage (le MBR étant donc occupé par son grub), certaines opérations sont à réaliser. Le choix se fera alors au démarrage de la machine via le menu de grub.
Double amorçage (Dual boot) avec Windows
L'entrée est à décommenter dans le /boot/grub/menu.lst.
title Windows rootnoverify (hd0,0) makeactive # Cette ligne est à commenter pour Windows 7 chainloader +1
L'argument de rootnoverify doit correspondre à la partition qui comprend l'amorce de Windows, qui peut être trouvée avec (en root):
fdisk -l
Par exemple, si l'amorce est située sur un second disque dur (hd1):
title Windows map (hd0) (hd1) map (hd1) (hd0) rootnoverify (hd1,0) makeactive # Cette ligne est à commenter pour Windows 7 chainloader +1
Double Amorçage avec GNU/Linux
Entrée complète
Il peut être réalisé de la même façon que pour Arch avec une nouvelle entrée dans /boot/grub/menu.lst désignant partition de boot (sur la ligne root), partition racine (sur la ligne du kernel) et chemins vers le kernel et l'image RAM du système minimal. Par exemple:
title Autre Linux root (hd0,6) kernel /path/to/kernel root=/dev/sda7 ro initrd /path/to/initrd
L'inconvénient de ces méthodes est de devoir mettre à jour le menu.lst si l'autre distribution emploie des noms différents sur ses mises à jour de kernel (ajoutant le numéro de version, par exemple parce qu'elle conserve différents noyaux).
Chaînage
En revanche, grâce au chaînage, les problèmes de maintenance ne se posent plus, l'inconvénient étant de passer par plusieurs menus au démarrage (en ce cas, pensez à réduire le timeout dans le menu.lst).
Pour se faire, il convient simplement d'installer le grub de la seconde distribution sur le secteur d'amorçage d'une autre partition (ou directement sur le MBR d'un autre disque, si, par exemple, le second système occupe un autre disque).
Mettons que la seconde distribution ait son /boot sur la partition n°6, on obtient:
#Autre distribution "grub-install /dev/sda6 # ou en utilisant le shell de grub
Il ne reste alors qu'à rajouter l'entrée adéquate dans le menu.lst:
#menu.lst d'Arch title Other Linux root (hd0,5) chainloader +1
Ou si l'autre distribution occupe un autre disque et que son grub est situé sur le mbr de ce second disque:
#Autre distribution grub-install /dev/sdb # ou en utilisant le shell de grub
#menu.lst d'Arch title Other Linux root (hd1) chainloader +1
chainage vers Grub2 (par exemple avec ubuntu)
Comme grub2 n'aime pas trop être installé dans le VBR d'une partition, autant chainloader directement sur le core.img. Attention, il faut que le fs soit supporté par grub. La syntaxe devient:
title Autre Linux utilisant Grub2 root (hd0,6) kernel /boot/grub/core.img
Sécurité
Il est possible de protéger Grub par mot de passe, empêchant ainsi tout contrôle interactif à ce niveau sans le mot de passe adéquat (particulièrement conseillé si vous partagez votre ordinateur, en complément de la sécurité que peut vous apporter certaines options du BIOS).
Protection de l'édition de Grub au démarrage
Pour choisir un mot de passe et l'encrypter:
# grub-md5-cryptPassword: Retype password: $1$pZvnc0$8YTOT0c83qhPGpc9Oq8cr/
Puis ajoutez dans votre /boot/grub/menu.lst au niveau de la configuration générale:
# general configuration: timeout 3 default 0 color white/black light-magenta/black password --md5 $1$pZvnc0$8YTOT0c83qhPGpc9Oq8cr/
Ce faisant, vous devrez fournir le mot de passe pour débloquer les options d'édition au démarrage de grub.
Restreindre l'accès à certaines entrées
Il est également possible de ne faire démarrer un système d'exploitation que lorsqu'un mot de passe est fourni. Pour utiliser le mot de passe défini précédemment, il vous suffit de rajouter la directive lock pour les entrées concernées. Par exemple:
# (0) Arch Linux title Arch Linux lock root (hd0,4) kernel /vmlinuz-linux root=/dev/disk/by-uuid/8887210b-72d3-4899-99f7-3f39ea0a0eeb ro vga=0x0345 quiet initrd /initramfs-linux.img
Cependant si vous souhaitez protéger le lancement de tout ou partie de vos systèmes disponibles, préférez l'emploi de différents mots de passe en remplaçant lock par une nouvelle entrée password pour chaque entrée. Ainsi, le mot de passe défini au niveau de la configuration générale donne l'accès à l'édition du menu au démarrage tandis que chaque système est protégé par son propre mot de passe:
# general configuration: timeout 3 default 0 color white/black light-magenta/black password --md5 $1$pZvnc0$8YTOT0c83qhPGpc9Oq8cr/
# (0) Arch Linux title Arch Linux password --md5 $1$pZ3oc0$NVBFwpLwjMcIDw5eGsyX.. root (hd0,4) kernel /vmlinuz-linux root=/dev/disk/by-uuid/8887210b-72d3-4899-99f7-3f39ea0a0eeb ro vga=0x0345 quiet initrd /initramfs-linux.img