Booter un Raspberry sur une clé USB ou un Disque Dur

RPi_USB2

RPi_USB

Si vous êtes un bidouilleur et vous utiliser régulièrement un Raspberry Pi, vous avez du surement au moins une fois se heurter au probleme de la carte SD qui ne répond plus ! Et oui, durée de vie de la carte SD, et toute autres mémoire flash, dépende de son nombre de cycles d’écriture. Au repos, les cartes SD dépourvues d’alimentation propre ont pour une durée de vie plus de 100 ans. Mais en écriture, elles nécessitent l’application d’une tension électrique supérieur à celle nécessaire à la lecture. Bref.. cette durée de vie dépend du nombre de cycles d’écriture.

  • pour une carte SD elle est d’environs 10 000 cycles
  • pour une clé USB elle est d’environ 100 000 cycles
  • pour un disque SSD elle est de plus de 100 000 cycles

(donnée moyenne pour matériel MLC (Multi Level Cell) soit 2 bits de données par cellule)

Alors pourquoi de n’est pas booter sur clé USB ou disque SSD ce qui peut être une bénédiction pour les systèmes ayant de nombreuses lectures écritures (Jeedom, Domoticz, Serveur HA-Bridge, LAMP, LMS etc…). L’avantage est de supporté les vitesses de transferts propres à l’USB 2, le système est bien plus réactif que sur une simple carte SD et éviter les problèmes  de système se corrompu.

Matériels nécessaire:

Procédure pour un Raspberry Pi 3.

  1. Mise à jour de la framboise
    1
    
    sudo apt-get update && sudo apt-get upgrade
    sudo apt-get update && sudo apt-get upgrade
  2. Reprogrammer OTP (One-Time Programmable)
    1
    
    echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
    echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
  3. Redémarrer avec
    1
    
    sudo reboot
    sudo reboot
  4. Verifier si le changement a bien été pris en compte
    1
    
    $ vcgencmd otp_dump | grep 17:
    $ vcgencmd otp_dump | grep 17:
  5. Si 17:3020000a s’afficher alors c’est bon 😉
  6. Arrêter votre RPi
  7. installer une image vierge de Raspbian sur votre Clé USB
    ou
    installer une copie de sauvegarde de votre carte SD sur votre clé USB
  8. brancher la clé sans la carte SD et démarrer votre RPI
  9. Le démarrage est un peu plus long mais une fois fait, ça ronronne…

Pour un Raspberry Pi 1 et 2 essayer une mise a jour de firmware avec
sudo rpi-update puis continuer avec les étapes cité plus haut.
si cela ne fonctionne pas télécharger, installer sur une carte SD le fichier bootcode.bin et démarrer votre RPI pour modifier le firmware.

PS: On peut raccourcir le délai de boot sur USB en insérant une carte micro SD vierge.

J’ai fait tourner sur USB un serveur HA-Bridge, mon LSM et bientôt je vais faire passer mon Jeedom sur un SSD.
mes système désormais sont bien plus réactif que sur une simple carte SD, que du bonheurs 😉

Attention, tous les clé USB ne sont pas compatible, ci joint  les clés testées.

Matériels compatible.

Gearbest Clé USB 32 Go
Clé USB 32 Go

Gearbest Clé USB 64 Go
Clé USB 64 Go

Gearbest Disque SSD 120 GBDisque SSD 120 GB

 

Articles Similaires

33 Thoughts to “Booter un Raspberry sur une clé USB ou un Disque Dur”

  1. meumeu34

    Bonjour
    Cela fonctionne impecablement. Merci pour ce tuto.
    Penser cependant à vérifier que /boot est bien positionné sur la clé USB (ou le SSD dans mon cas) dans le fichier /etc/fstab.

      1. Thierry

        Quelle ligne doit être présente pour la vérification?

  2. F6GBZ

    bonjour

    réussite du premier coup
    MAIS si je connecte le hd sur un hb rien
    je le connecte sur un port usb du rpi 3 B OK

    une solution ?????

    1. R.Syrek

      Bonjour
      Oui il faut alimenter le hd avec une source extérieure.

  3. sebastien

    bonjour,

    merci pour le tuto

    petite question : si on laisse la carte microSD et on branche également la clé USB, sur quelle périphérique le rapsberry va démarrer ?

    merci

    1. R.Syrek

      Bonsoir.
      Si sur votre sd vs avez installé un système bootable. C’est sur sd qu’il va booter en premier.

  4. Philippe Birckel

    Bonjour !
    Tout d’abord, merci pour ce tuto !
    Je souhaiterai passer sur clé USB mon Jeedom qui est installé sur une micro carte de 8 Go géré par un Pi3.
    Mais comme je ne suis pas un expert dans le domaine, je préfère poser quelques questions !
    Si je comprends bien, les étapes 1 à 6 seront faites avec la carte SD actuellement installée dans mon Pi3.
    C’est à partir de l’étape 7 que je ne comprends pas bien:
    Étape 7: j’installe une image vierge de raspbian (stretch light actuellement)
    Étape 8: brancher la clé sans la carte SD: alors on ne se sert pas de ce qui a été fait dans les étapes 1 à 6 ??
    Autre choix:
    Etape 7: installer une copie de sauvegarde de votre carte SD sur votre clé USB: On parle bien ici d’installer une image de la carte SD ? (faite avec Win32DiskImager ou Etcher, par ex)
    Si c’est cela, et avec le second choix, mon Jeedom sera opérationnel de suite ?

    C’est peut être des questions idiotes, mais avant de faire une bêtise…
    En vous remerciant de votre aide,
    Cordialement,
    Philippe

    Etape 7:

    1. R.Syrek

      Bonjour,
      L’étape a 1 à 6 permet d’activer le multiboot sur RPi. Il peut être fait avec n’importe quelle carte SD.
      Les étapes 7 à 9 installe une nouvelle distribution sur la clé USB.
      Pour transferer ton Jeedom il faut que tu fasse 1 à 6.
      tu clones ton SD avec Win32DiskImager par exemple
      attention à la taille si besoins (USB > SD) tu dois redimensionner ta partition sur la clé, si non tu va te retrouver avec seulement 8 Go sur une clé plus grande.
      après tu insères ta clé USB avec Jeedom cloné et tu démarre ta Framboise (sans la SD).

      1. Philippe

        Bonsoir,

        Merci beaucoup pour vos réponses!!
        OK, je n’avais pas compris que l’activation du multiboot se faisait sur le RPi et non sur la carte SD !!
        OK pour graver une image de mon Jeedom sur la clé USB. Dans ce cas, pas besoin d’installer une nouvelle distribution sur la clé.
        J’ai une clé de 8 Go, donc pas besoin de redimensionner la partition ! Je fais le test avec cette clé. Mais merci pour cette remarque qui me servira si je veux passer sur une clé de plus grande capacité !

        Je me lance de suite dans l’aventure !!
        Je vous tiendrai au courant du résultats !!

        Merci encore pour votre aide !!
        Philippe

        1. Philippe

          Bonsoir,

          Retour d’expérience :
          Ça marche nickel !! Plus de carte SD !
          Merci beaucoup pour votre tuto et vos explications ! je ne devrai plus avoir de plantage comme c’était le cas avec les cartes SD.

          Pas contre suite au redémarrage du Pi3, la led verte clignote sans arrêt !
          Elle n’est plus représentative de l’activité de jeedom me semble t il.
          J’ai trouvé un tuto pour l’éteindre:

          En SSH, j’ai suivi ceci:
          Enter these commands into terminal:

          mount -o remount,rw /
          mount -o remount,rw /boot
          nano /boot/config.txt

          At the bottom of /boot/config.txt add this:

          # Disable the ACT LED.
          dtparam=act_led_trigger=none
          dtparam=act_led_activelow=off

          CTRL + X, then Y, then enter, reboot the pi. No more LED.

          Et ça à fonctionné, plus de led verte allumée !

          Si cela peut servir à d’autre, tant mieux !

          Encore merci pour votre aide.
          Philippe

  5. Berniard

    Bonjour ,
    j’ai une petite question , peut on revenir en arriére de cette procédure ? une fois que le boot est sur la clé USB et que l’on veut remettre une carte SD en boot comment on fait ? si on enlevé la clé USB le boot se fera automatiquement sur la carte SD ou faut il faire d’autres manipulations ?

    Merci d’avance pour vos futures réponses

    Patrice

    1. R.Syrek

      Bonjour,
      Le boot se fait normalement sur le SD si pas de USB.

  6. […] Pour commencer vous devez installer rasbian sur une carte SD ou une clef USB. Pour installation sur une clef USB consultez mon précédant article. […]

  7. xunil2003

    Bonjour,

    J’ai suivi vos conseil, j’ai fait sur mon RPI en ssh :
    cp -v /boot/config.txt /boot/config.txt.bak
    echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
    sudo reboot
    une fois le RPI démarrer en console j’ai tapé
    vcgencmd otp_dump | grep 17:
    le retour été correct :

    serveur@raspberrypi:~ $ vcgencmd otp_dump | grep 17:
    17:3020000a
    serveur@raspberrypi:~ $ exit
    d�connexion
    Connection to 192.168.1.32 closed.
    laurent@laurent-PC-Bureau:~$

    J’ai donc installer l’image disque de raspbian sur mon disque dur

    laurent@laurent-PC-Bureau:~$ sudo dd if=/home/laurent/Téléchargements/Raspberry/PI-3/2018-06-27-raspbian-stretch.img of=/dev/sdg bs=4M
    24+1 enregistrements lus
    24+1 enregistrements écrits
    100925440 octets (101 MB) copiés, 1,16834 s, 86,4 MB/s
    laurent@laurent-PC-Bureau:~$

    Puis avec gparted sur mon disque dur /dev/sdh j’ai coché boot dans Gérer les drapeaux
    puis j’ai brancher mon disque dur maxtor 1To, sans la carte SD et démarrer le RPI
    Rien ne fonctionné !!!!

    J’ai alors m’y ma carte sd sur un lecteur clé usb sd à lusb ainsi que mon disque dur le tout sur mon PC Linux.
    Puis j’ai fait un dd

    dd :
    laurent@laurent-PC-Bureau:~$ sudo dd if=/dev/sdh of=/dev/sdg bs=4M
    1900+0 enregistrements lus
    1900+0 enregistrements écrits
    7969177600 octets (8,0 GB) copiés, 95,2907 s, 83,6 MB/s
    laurent@laurent-PC-Bureau:~$ dd if=/dev/sdh of=/dev/sdg bs=4M

    Fdisk :
    laurent@laurent-PC-Bureau:~$ sudo fdisk -l

    Attention : identifiant de table de partitions GPT (GUID) détecté sur « /dev/sda » ! L’utilitaire fdisk ne prend pas GPT en charge. Utilisez GNU Parted.

    Disk /dev/sda: 4000.8 GB, 4000787030016 bytes
    255 têtes, 63 secteurs/piste, 486401 cylindres, total 7814037168 secteurs
    Unités = secteurs de 1 * 512 = 512 octets
    Taille de secteur (logique / physique) : 512 octets / 4096 octets
    taille d’E/S (minimale / optimale) : 4096 octets / 4096 octets
    Identifiant de disque : 0x00000000

    Périphérique Amorçage Début Fin Blocs Id. Système
    /dev/sda1 1 4294967295 2147483647+ ee GPT
    La partition 1 ne commence pas sur une frontière de cylindre physique.

    Disque /dev/sdh : 7969 Mo, 7969177600 octets
    246 têtes, 62 secteurs/piste, 1020 cylindres, total 15564800 secteurs
    Unités = secteurs de 1 * 512 = 512 octets
    Taille de secteur (logique / physique) : 512 octets / 512 octets
    taille d’E/S (minimale / optimale) : 512 octets / 512 octets
    Identifiant de disque : 0xd27dfcf5

    Périphérique Amorçage Début Fin Blocs Id. Système
    /dev/sdh1 * 8192 93814 42811+ c W95 FAT32 (LBA)
    /dev/sdh2 94208 15564799 7735296 83 Linux

    Disk /dev/sdg: 1000.2 GB, 1000204885504 bytes
    255 têtes, 63 secteurs/piste, 121601 cylindres, total 1953525167 secteurs
    Unités = secteurs de 1 * 512 = 512 octets
    Taille de secteur (logique / physique) : 512 octets / 4096 octets
    taille d’E/S (minimale / optimale) : 4096 octets / 33553920 octets
    Identifiant de disque : 0x000cb048

    Périphérique Amorçage Début Fin Blocs Id. Système
    /dev/sdg1 8192 30719999 15355904 c W95 FAT32 (LBA)
    /dev/sdg2 30720000 1953523711 961401856 83 Linux
    laurent@laurent-PC-Bureau:~$
    laurent@laurent-PC-Bureau:~$ dd if=/dev/sdh of=/dev/sdg bs=4M
    dd: impossible d’ouvrir «/dev/sdh»: Permission non accordée
    laurent@laurent-PC-Bureau:~$

    Puis j’ai demarrer le RPI sans carte SD avec le disque dur USB 3.0 Maxtor 1To.
    Et ça marche nickel, au début il faut un peut attendre env 20mn.
    Tout ça pour dire c’est dommage je préférer partir d’une image vierge, voila si ça peut aider certain.

    Merci.

    1. R.Syrek

      Merci pour ton retour

  8. Valmone

    Bonjour,

    Après plusieurs tentative, il m’est impossible d’avoir le résultat obtenu, je me retrouve toujours avec le même résultat:
    17:1020000a

    Merci d’avance pour l’aide apporté

    1. R.Syrek

      Bonjour,
      Installer sur une carte SD le fichier bootcode.bin et démarrer votre RPI pour modifier le firmware.

      1. Valmone

        Bonjour,
        Merci de la rapidité de votre réponse.
        Rien n’y fait, malgré la mise à jour de la framboise, et du firmware. Tout fonctionne parfaitement, aucune erreur, excepté la modification du boot.

        J’ai même pris l’initiative de rajouter moi même la ligne de commande dans le fichier config.txt, sans résultat positif.

        Je continu mes recherches, et je vous remercie pour l’aide apporté.

        Cordialement, Valmone

        1. QuentinBtd

          Bonjour,

          Je suis dans le même cas que vous, sur mes 2 RPI, un RPI 1 et un RPI 1 B+.

          Il semblerait qu’ils soient trop vieux pour supporter cela, même avec une MAJ du firmeware…

          1. Planetibo

            Essayez avec le nouveau bootcode.bin. A mettre SEUL sur une carte SD formatée en FAT32, c’est que j’ai fait sur RPI 1B. Il faut un RPI 3 pour s’affranchir d’une SD dans le slot.

  9. Stephane

    Bonjour, j’ai tenté la manipulation sur mon rpi3b.
    Les étapes 1 à 6 ont fonctionnées, mais je bloque au moment de copier l’image de ma carte sd sur mon disque ssd. Je l’ai formaté en fat32, puis copié l’image sur mon ssd. Ensuite, j’éteins le rpi, j’enleve la sd, je connecte le ssd, je rebranche le rpi, le ssd s’allume fixe mais rien ne se passe (j’ai attendu longtemps au cas ou…)
    Quelqu’un peut me dire de quel côté regarder svp? Merci!

    1. R.Syrek

      Bonjour
      Ton usb doit être bootable. De cette façon tu ne copies pas toutes les partitions.

  10. Flo

    Bonjour, sur mon installation pour un nas j’ai un ssd avec l’os, et un hdd pour le stockage nas. Lorsqu’il n’y a que le SSD de branché tout fonctionne parfaitement, cela boot sur le ssd, mais lorsque les 2 disques sont branché, cela ne boot plus du tout, aucun clignotement de la led verte. J’ai tout essayé, le fichier cmdline est correctement configuré avec le bon partuuid, j’ai essayé avec une carte sd contenant juste bootcode.bin, etc… rien ne marche. Pour que cela boot je doit débranché le hdd de stockage !! Vraiment pas pratique. Est-ce que vous avez une solution? Je suis sur un pi 3 model B v1.2

    1. R.Syrek

      Bonjour
      Regardez si vous n’avez pas une autre partition de boot sur votre disque de données.

    2. Daniel

      Hello,
      J’ai exactement le même problème et malgré bcp de recherche je ne trouve pas de solution…
      si quelqu’un a une solution je suis preneur…

  11. Masch

    Bonjour,

    J’ai suivi votre tuto pour transféré ma carte SD 16 Go vers un disque USB de 500 Go. Je n’ai pas réinstallé Raspbian sur le DD mais copié l’image de ma carte SD vers le disque avec Etcher.
    Forcément, mon /dev/sda2/ ne fait que 16 Go. Comment puis-je l’agrandir de façon à l’étendre à tout le disque ?

    Merci d’avance pour votre aide.

    1. R.Syrek

      Bonjour,
      avec Gparted sous Linux ou Windows
      https://gparted.fr/

      1. Masch

        Merci.
        Aucun moyen d’étendre la partition en ligne de commande ?

        1. R.Syrek

          si bien-sur tu peux utiliser cfdisk
          sudo cfdisk /dev/sda -> ton disque USB

          pour avoir la liste de disques connectés
          sudo fdisk -l

          1. Masch

            Finalement j’ai été sage… 🙂
            Gparted sur ne clé bootable a très bien fait l’affaire !
            Mon Home Assistant tourne toujours et j’ai maintenant de la place pour y mettre un petit Samba pour partager le disque avec le reste de la famille 🙂
            Merci beaucoup.

  12. fidoboulettes

    Un grand merci pour le tuto,
    parfaitement fonctionnel avec clé usb en remplacement de la SD.
    Comme je suis passé d’une carde 7Go à clé 36Go… il me reste de la place…

    Sinon, petite question, est ce que Expand file system ne fonctionne pas pour étendre la partition sur la clé?
    je vais tenter d’utiliser cette place supplémentaire pour en faire un docker (j’ai domoticz qui tourne actuellement).

Leave a Comment


La période de vérification reCAPTCHA a expiré. Veuillez recharger la page.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.