<> Le logiciel grub est un ''bootloader'', c'est à dire un petit programme lancé au démarrage pour charger le système d'exploitation. Celui-ci à la particularité d'offrir beaucoup de fonctionnalités, ce qui est très utile en cas de problème de démarrage (au moins). == Réinstaller grub « à la main » == * Démarrer sur un LiveUSB, ou LiveCD, ou en réseau, l'important est d'obtenir un shell Linux assez récent. * Monter la partition racine du système : {{{ mount /dev/sda1 /mnt }}} * Y lier les dossiers permettant la liaison avec le noyau : {{{ for d in proc dev sys ; do mount --bind /$d /mnt/$d ; done }}} * Entrer dans le système installé : {{{ chroot /mnt su - }}} * Y monter les éventuels autres dossiers utiles (`/var` par exemple) : {{{ mount -a }}} * Générer un menu de démarrage : {{{ update-grub }}} * Installer grub sur le MBR : {{{ grub-install /dev/sda --recheck }}} * Démonter les dossiers montés (`/var` par exemple) : {{{ umount -a }}} * Quitter le système installé : {{{ exit }}} * Délier les dossiers permettant la liaison avec le noyau : {{{ for d in proc dev sys ; do umount /mnt/$d ; done }}} * S'assurer que tout est bien sauvé sur le disque : {{{ sync }}} * Redémarrer la machine. {i} sda1 et sda sont à remplacer par les bons disques ici ; vérifier `/proc/partitions` au besoin. == Passer de grub 1 à grub 2 == Le code de démarrage de Grub 2 est généralement plus volumineux que celui de Grub 1, en particulier quand celui-ci doit contenir le support RAID et/ou LVM. L'espace habituel de 31 Kio (62 secteurs de 512 octets) au début du disque (juste avant la première partition) ne suffit donc plus pour contenir le code de démarrage. Les outils modernes de partitionnement — `fdisk` pour MBR ou `gdisk` pour GPT — réservent maintenant par défaut un espace de 2 Mio avant la première partition. == Passer de lilo à grub == . `# cp -a /etc/lilo.conf /root/` ''(pour vérifier l'ancienne configuration en cas de souci)'' . `# apt-get remove -u --purge lilo` . `# rm -f /initrd.img* /vmlinuz*` ''(pour supprimer les liens anciennement utilisés par lilo)'' . `# apt-get install -u grub` . `# grub-install /dev/hda` ''(sur le MBR, ou sinon sur la partition racine de l'installation Linux)'' . `# update-grub` ''(accepter la proposition de créer une configuration)'' Modifier aussi le fichier `/etc/kernel-img.conf` pour y trouver au moins ceci : {{{ do_symlinks = no do_initrd = yes do_bootloader = no postinst_hook = /sbin/update-grub postrm_hook = /sbin/update-grub }}} '''Note de ProgFou :''' si vous faites l'installation sur la partition racine de Linux, pensez à installer également un code de démarrage sur le MBR faute de quoi vous pourriez ne plus pouvoir booter correctement ; utilisez pour cela le paquet `mbr` et lancez la commande `install-mbr /dev/hda` ; pensez également à rendre la partition Linux active avec `fdisk` ou `cfdisk`. En effet, le MBR qui est installé par `install-mdr` va chercher son ''boot'' sur la première partition ''active'' (ou ''bootable'' sur `cfdisk`). '''Note de ThomasNoel :''' sur une '''machine sans lecteur de disquette''', `grub-install` ne fonctionne pas (il bloque) même si vous ajoutez l'option `--no-floppy`. En attendant un patch dans Etch (d'ici 2 ou 3 ans), retirez toute ligne concernant les périphériques `fd` dans `/boot/grub/device.map` et relancez `grub-install` (voir le [[BogueDebian:282063]]). == Discussions == Pour ma part, je conseille d'installer GRUB sur le MBR directement, mais n'étant pas un spécialiste du dual-boot je ne connais pas les implications exactes. -- ThomasNoel . J'ai (ProgFou) plusieurs raisons pour ne pas l'installer sur le MBR : * préservation du MBR d'origine : c'est un problème que l'on ne rencontre que dans le cas d'une configuration multi-système ; cela arrive essentiellement avec les (anciens ?) « systèmes » de Microsoft qui vérifient d'abord la « signature » du MBR avant d'accepter de s'installer ou se mettre à jour ; * sauvegarde/restauration complète d'un système GNU/Linux mono-partition (typiquement un poste client) en ne sauvant que sa partition, sans avoir besoin de sauver le MBR en plus à coté * adressage non-absolu pour le démarrage : le code du logiciel `mbr` démarre le code se trouvant au début de la partition active, selon la table des partitions ; cette partition peut donc être déplacée sans gêner le démarrage * le MBR, secteur numéro 0 du disque dur, d'une taille de 512 octets, n'est pas assez grand pour contenir `grub` en entier ; rien que le code de lecteur de système de fichier ext2 fait plus 7,5 Ko (16 secteurs) ; le démarrage de grub se fait donc en deux étapes (en anglais ''stage'', cf `/boot/grub`), la 1ère étant un code de taille réduite pouvant tenir sur le MBR et permettant de charger la seconde ; je suspecte (je n'ai pas vérifié) que la seconde partie soit placée sur la partition de démarrage (celle possèdant le `/boot`), ce qui apporterait alors l'inconvénient de démarrer selon une adresse (LBA ou autre) fixe du disque dur . /!\ '''Mise à jour''' /!\ : maintenant que nous utilisons grub 2 et que nous ne faisons plus d'installation multi-systèmes (grace à la virtualisation) il est de nouveau préférable d'installer grub au niveau du MBR plutôt qu'au niveau de la partition. ----