• # Installer GRUB sur la carte SD

    Posté par . En réponse au message Utiliser une carte SD comme "clé de démarrage". Évalué à 3.

    GRUB fonctionne comme ça:
    Le BIOS charge le premier secteur du média et exécute ce code. GRUB, ou n'importe quel lanceur, a son code de base qui tient dans ces 512 octets (moins quelques octets à la fin qui sont la table de partition). On est en mode 16-bits.
    Lorsque c'est GRUB, ces 512 octets (stage 1) contiennent le nécessaire pour demander au BIOS de charger un binaire situé un peu après le début du disque, et avant la première partition (stage 1.5 pour GRUB 1, stage 2 pour GRUB 2). Ce binaire contient un petite zone de données qui contient l'emplacement du fichier de configuration de GRUB. Par exemple (hd0,4)/boot/grub/menu.lst. Le binaire est capable d'aller fouiller dans le système de fichiers pour trouver le fichier de configuration. Il le charge, affiche le menu, et ensuite charge le noyau demandé (puisqu'il sait lire le contenu des partitions).

    Solution 1:
    Il te suffit juste d'installer un chainloader sur ta carte SD. Seul le premier secteur est nécessaire. GRUB, LILO, et bien d'autres.

    L'idée est simple: le chainloader d'un peu moins de 512 octets va chercher le secteur de boot de la partition active (indiquée à la fin des 512 octets). Et ta partition active, tu fais en sorte que ce soit celle de ton Linux.
    Tu installes GRUB sur ta partition Linux, puis tu installes ton chainloader sur le premier secteur de ta carte SD.

    Solution 2: installer GRUB directement. Ca revient au même, sans chainloader. Une fois que ton Linux est lancé, tu tapes: grub-install /dev/ta-carte-sd (pour GRUB 2)
    et voilà, il a écrit le nécessaire sur ta carte SD (qui doit au préalable être partitionnée): le premier secteur, puis le binaire dans les secteurs suivants.