Forum Linux.général Utiliser une carte SD comme "clé de démarrage"

Posté par  .
Étiquettes : aucune
2
17
mai
2011

Bonjour,

J'aimerais profiter du fait que mon X200 est capable de booter sur carte SD pour m'affranchir de la contrainte d'un multiboot classique.
(Je souhaite une sorte de démarrage sans intervention humaine, une fois le bouton pressé)

Mon idée est de laisser l'OS propriétaire démarrer par défaut, sauf si la carte SD de boot est insérée, dans ce cas c'est ArchLinux qui devra se lancer.

J'aimerais donc savoir comment vous feriez pour lancer un Grub installé en local par le biais d'une carte SD, l'idée étant que l'étape SD prenne le moins de temps possible avant de rendre la main au Grub classique.

Si vous avez d'autres suggestions pour atteindre ce même but, je suis preneur aussi !

  • # Regle ton BIOS Luke

    Posté par  . Évalué à 7.

    rentre dans le BIOS de ta machine
    dis lui de booter d'abord sur le support USB-Disk/USB-floppy/USB-CDROM

    puis de booter sur le disque dur.

    ensuite tu fais ton installation archlinux entierement sur la carte SD, y compris le grub.

    au demarrage de ta machine, elle va essayer de trouver le USB-DD (disque dur USB ou SD card)
    si elle est là, elle va demarrer dessus
    sinon elle va demarrer sur le disque dur interne

  • # Petites précisions

    Posté par  . Évalué à -1.

    Ah, j'ai oublié de préciser que j'ai installé Arch sur mon SSD, pour profiter des avantages de ce dernier (vitesse de transfert, temps d'accès, espace).
    Dans l'idéal seule une micro partition de "boot" sera présente sur la carte SD, et le système utilisera au maximum le SSD.

    Merci quand même pour ta proposition !

    • [^] # Re: Petites précisions

      Posté par  . Évalué à 2.

      l'idée reste la meme
      configure ton systeme pour avoir le /boot sur la SDcard et Grub aussi

      et regle ton bios comme dit plus haut.

      => pas de carte SD => boot sur le disque dur (sur l'OS d'origine)
      => carte SD => boot sur grub qui donne alors le choix

      • [^] # Re: Petites précisions

        Posté par  . Évalué à 1.

        Avec la partition /boot sur la carte SD on s'approche de ce que je cherche, merci !
        Je vais chercher comment la déplacer, ou au pire refaire l'installation.

        Sinon de mon côté je pense avoir trouvé une piste avec le chainloading : je me demande si un Grub sur la carte SD ne pourrait pas renvoyer vers le Grub et la partition de boot installés sur le SSD. Ainsi la faible vitesse de la carte SD aurait le plus faible impact possible sur le temps de démarrage.

        • [^] # Re: Petites précisions

          Posté par  . Évalué à 3.

          j'ai du raté un episode mais c'est quoi alors l'interet du grub sur la carte SD si tu en as un sur le disque dur ?

          • [^] # Re: Petites précisions

            Posté par  . Évalué à 0.

            En fait, je veux pouvoir démarrer chacun des deux systèmes sans avoir de menu de boot qui s'affiche, je trouve ça énervant au quotidien.

            • Si la carte SD est insérée, Linux démarre automatiquement, sans demander de confirmation (je me laisse tout de même 2 secondes pour booter sur l'ancien noyal en cas de pépin).

            • Sinon, Windows se lance automatiquement, sans demander de confirmation non plus.

            Bien sur le fait d'insérer ou non la carte est une action aussi contraignante que de choisir un OS à démarrer, mais vu le peu de fois où je devrai l'enlever, je serai gagnant sur la majorité de mes démarrages.

            D'où le titre, ma carte SD sera une sorte de clé de démarrage !

            Et je souhaite avoir Grub sur mon SSD parce que la SD est plus lente, qu'elle pourrait me lâcher a tout moment et surtout, ça me laisse la possibilité de revenir à un multiboot classique si l'envie m'en prend / si mon lecteur SD rend l'âme.

            • [^] # Re: Petites précisions

              Posté par  . Évalué à 2.

              Et tu ne peux pas modifier l'ordre de démarrage dans le bios pour booter en premier sur le SSD ?

              • [^] # Re: Petites précisions

                Posté par  . Évalué à 0.

                Windows 7 et ArchLinux sont tous deux installés sur le SSD.
                Pour mettre en place mon multiboot spécial, mon bios doit d'abord vérifier les ports USB (car lecteur SD branché sur un port USB interne), puis le SSD.

                En résumé, bien sûr on peut faire plus "simple", mais je tiens à relever ce défi / caprice :)

  • # Installer GRUB sur la carte SD

    Posté par  . É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.

    • [^] # Re: Installer GRUB sur la carte SD

      Posté par  . Évalué à 0.

      Excellent, je vais opter pour la solution 1, c'est exactement ce dont j'ai besoin.
      Je vais essayer de mettre ça en place, merci à tous !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.