Publié le 11 août 2016 - par

Bootez votre Raspberry Pi 3 sur une clé USB

boot_USB_250pxOn attendait cette possibilité depuis la sortie du Raspberry Pi. Coincés par ce démarrage sur la carte SD imposé par les précédents SoC, on attendait l’arrivée de cette nouvelle.
Eh bien ça y est il est possible de booter sur une clé USB avec le Raspberry Pi 3 ! Bon, ça nécessite quelques manipulations mais après… ça fonctionne.

Booter le Raspberry Pi 3 sur sur un périphérique de stockage USB

Comment démarre le SoC

En fait ce qui nous intéresse ici, ce sont les toutes premières secondes de ce démarrage. Juste après que vous ayez branché la prise micro-usb d’alimentation, ou appuyé sur le bouton reset fraîchement installé sur votre Raspberry Pi. Dans un premier temps, le signal RUN s’établit, le SOC se réveille. Le SOC c’est le System On a Chip (Système Sur une Puce) de Broadcom. Ce SOC BCM2837 contient un processeur ARM cadencé à 1,2 GHz, un GPU VideoCore IV, de la mémoire cache et d’autres babioles qui accompagnent généralement les microprocesseurs (GPIO, timers, BUS divers et variés – I2C – SPI, contrôleur d’interruption – PIC, contrôleur de mémoire -MMU, UART…).

etape_01

A la mise sous tension, seul le GPU est activé. Le processeur ARM reste en veille, la SDRAM est désactivée. Le SOC comporte une ROM (Read Only Memory – Mémoire Morte) dans laquelle le fabricant a programmé le premier étage du bootloader. Lors de son réveil, le GPU est paramétré pour exécuter le programme qui est dans cette ROM. C’est ce qu’il fait et le firmware contenu en ROM a pour seul objectif d’accéder à la carte micro SD, qui doit être formatée en FAT (enfin, au moins la première partition)… SAUF si on a modifié un registre de l’OTP (One Time Programmable memory) qui dit au BCM2837 (celui qui équipe le Raspberry Pi 3) que lorsqu’il démarre, il va déjà voir s’il y a une carte SD opérationnelle. Si ce n’est pas le cas, il peut baguenauder et essayer de démarrer sur l’USB le SPI ou l’Ethernet…

boot_USB_01

Un Raspberry Pi 3 équipé d’une carte HiFiberry DAC + remarquez à droite de limage la carte SD posée sur le socle et pourtant… ça fonctionne !

Donc ce que je vous propose de faire c’est de commencer cette modif, prévoyez un peu de temps quand même…
Ce tutoriel est paru sur le blog raspberrypi.org, en voici une traduction.

 

Attention !
Ce tutoriel  EXPÉRIMENTAL est accessible aux débutants. Cependant vérifiez qu’il n’y a pas de messages d’erreur ni d’avertissements. Ce tutoriel ne fonctionne qu’avec certains modèles de clés USB si votre modèle de clé ne permet pas de booter le Raspberry Pi 3, inutile de m’incendier 🙂

Mise à jour du firmware

Commencez par une mise à jour du systéme

sudo apt-get update
sudo apt-get upgrade

Ensuite on met à jour le firmware dans /boot (start.elf et bootcode.bin) mais avec la version de la branche NEXT (expérimentale) : sudo BRANCH=next rpi-update

pi@raspberrypi:~ $ sudo BRANCH=next rpi-update
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
*** Performing self-update
*** Relaunching after update
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
*** Downloading specific firmware revision (this will take a few minutes)
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 168 0 168 0 0 294 0 --:--:-- --:--:-- --:--:-- 294
100 51.1M 100 51.1M 0 0 413k 0 0:02:06 0:02:06 --:--:-- 468k
*** Updating firmware
*** Updating kernel modules
*** depmod 4.4.15-v7+
*** depmod 4.4.15+
*** Updating VideoCore libraries
*** Using HardFP libraries
*** Updating SDK
*** Running ldconfig
*** Storing current firmware revision
*** Deleting downloaded files
*** Syncing changes to disk
*** If no errors appeared, your firmware was successfully updated to 47d64831ccbc99080f98c1bc8948717c3416cb0f
*** A reboot is needed to activate the new firmware

 Autorisation du boot USB

On va modifier le fichier config.txt pour autoriser le boot USB :

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

Ceci ajoute program_usb_boot_mode=1 à la fin du fichier /boot/config.txt.

On peut maintenant redémarrer le Raspberry Pi et vérifier que le registre 17 de l’OTP a bien été modifié

sudo reboot

et pour vérifier le registre :

pi@raspberrypi:~ $ vcgencmd otp_dump | grep 17:
17:3020000a
pi@raspberrypi:~ $

Vérifiez bien que la valeur du registre 17 est    3020000a   ! (0x3020000a pour ceux qui parlent couramment en hexadécimal 😀 ).

Si vous le souhaitez vous pouvez effacer la ligne program_usb_boot_mode du fichier config.txt (attention de ne pas laisser de ligne blanche à la fin du fichier !) de façon à ce que si vous employez votre carte micro SD sur un autre Raspberry Pi, elle ne programme pas le mode de boot sur USB 😉 Vous pouvez faire la modif avec sudo nano /boot/config.txt, par exemple.

Les clés qui fonctionnent à coup sûr

Les tests ont pour le moment été réalisés avec

  • Sandisk Cruzer Fit 16Go
  • Sandisk Cruzer Blade 16Go
  • Sandisk Cruzer Blade 32Go (merci Michel)
  • Samsung 32Go USB 3.0 drive
  • MeCo 16Go USB 3.0
  • Sandisk Cruise Slice16 Go => celle que j’ai utilisé
  • Disque dur WD Pi Drive 314Go

boot_USB_05

Préparation d’une clé USB déjà partitionnée

Attention !
La clé va être effacée et toutes les données qu’elle contient seront perdue à tout jamais !

Commencez par insérer la clé USB dans un des ports USB du Raspberry Pi. Plutôt que de télécharger à nouveau l’image Raspbian, nous allons copier le système existant sur la carte micro SD du Raspberry Pi. La source (carte SD) sera /dev/mmcblk0 et la destination (clé USB) devrait être /dev/sda en supposant que vous n’ayez pas d’autres périphériques USB connectés.

boot_USB_07

On commence par utiliser parted pour créer une partition FAT32 de 100Mo, suivie d’une partition Linux ext4 qui occupera le reste de la place disponible.

La clé que j’ai utilisé contenait déjà une partition. Si votre clé n’a pas de partition, passez à l’étape suivante.

pi@raspberrypi:~ $ sudo parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mktable msdos
Warning: Partition(s) on /dev/sda are being used.
Ignore/Cancel? i
Warning: The existing disk label on /dev/sda will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? y
Error: Partition(s) 1 on /dev/sda have been written, but we have been unable to
inform the kernel of the change, probably because it/they are in use. As a
result, the old partition(s) will remain in use. You should reboot now before
making further changes.
Ignore/Cancel?

Sortez par CTRL + C et rebootez le Raspberry Pictrl c et reboot

Préparation d’une clé USB non partitionnée

On commence par utiliser parted pour créer une partition FAT32 de 100Mo, suivie d’une partition Linux ext4 qui occupera le reste de la place disponible.

pi@raspberrypi:~ $ sudo parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mktable msdos
Warning: The existing disk label on /dev/sda will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? y
(parted) mkpart primary fat32 0% 100M
(parted) mkpart primary ext4 100M 100%
(parted) print
Model: SanDisk Cruzer Slice (scsi)
Disk /dev/sda: 16,0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 99,6MB 98,6MB primary fat32 lba
2 99,6MB 16,0GB 15,9GB primary ext4 lba

(parted) quit
Information: You may need to update /etc/fstab.

Nous allons maintenant formater les partitions et créer les systèmes de fichiers boot et root (ça peut prendre un certain temps selon la taille de la clé USB)

pi@raspberrypi:~ $ sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
mkfs.fat 3.0.27 (2014-11-12)
pi@raspberrypi:~ $ sudo mkfs.ext4 /dev/sda2
mke2fs 1.42.12 (29-Aug-2014)
En train de créer un système de fichiers avec 3884032 4k blocs et 971040 i-noeuds.
UUID de système de fichiers=545cd535-8405-42eb-aafe-e92300be1f10
Superblocs de secours stockés sur les blocs :
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocation des tables de groupe : complété
Écriture des tables d'i-noeuds : complété
Création du journal (32768 blocs) : complété
Écriture des superblocs et de l'information de comptabilité du système de
fichiers : complété

Transfert du système Raspbian sur la clé USB

On va monter les systèmes de fichiers nouvellement créés et installer rsync

pi@raspberrypi:~ $ sudo mkdir /mnt/target
pi@raspberrypi:~ $ sudo mount /dev/sda2 /mnt/target/
pi@raspberrypi:~ $ sudo mkdir /mnt/target/boot
pi@raspberrypi:~ $ sudo mount /dev/sda1 /mnt/target/boot/
pi@raspberrypi:~ $ sudo apt-get update; sudo apt-get install rsync
Atteint http://archive.raspberrypi.org jessie InRelease
.../...
Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en
Lecture des listes de paquets... Fait
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
rsync est déjà la plus récente version disponible.
rsync passé en « installé manuellement ».
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

Maintenant que les systèmes de fichiers de la clé USB sont montés, on peut copier le boot et le root file system (rfs) dessus… Comptez une demi heure voire plus selon la taille du système ! Vous pouvez aller boire un café, une bière ou une boisson au cola selon votre préférence. Quoi ? De l’eau ? Non, Monsieur chez moi l’eau ne sert qu’à laver les patates 😉

sudo rsync -ax --progress / /boot /mnt/target

boot_USB_06

Régénérer les clés SSH

pi@raspberrypi:~ $ cd /mnt/target
pi@raspberrypi:/mnt/target $ sudo mount --bind /dev dev
pi@raspberrypi:/mnt/target $ sudo mount --bind /sys sys
pi@raspberrypi:/mnt/target $ sudo mount --bind /proc proc
pi@raspberrypi:/mnt/target $ sudo chroot /mnt/target
root@raspberrypi:/# rm /etc/ssh/ssh_host*
root@raspberrypi:/# dpkg-reconfigure openssh-server
Creating SSH2 RSA key; this may take some time ...
2048 7a:f7:33:4c:01:71:a3:fc:c1:2c:b4:9c:3c:3f:4b:19 /etc/ssh/ssh_host_rsa_key.pub (RSA)
Creating SSH2 DSA key; this may take some time ...
1024 28:c6:4b:d1:5e:d9:cb:8c:ca:ad:70:fe:87:08:a1:21 /etc/ssh/ssh_host_dsa_key.pub (DSA)
Creating SSH2 ECDSA key; this may take some time ...
256 f7:f1:9e:3f:6b:13:41:d2:d9:ee:a1:00:e2:ef:ed:db /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA)
Creating SSH2 ED25519 key; this may take some time ...
256 fc:98:8c:c3:52:45:95:c1:67:78:41:0c:00:c6:23:f0 /etc/ssh/ssh_host_ed25519_key.pub (ED25519)
[ ok ] Restarting OpenBSD Secure Shell server: sshd.
root@raspberrypi:/# exit
exit
pi@raspberrypi:/mnt/target $ sudo umount dev
pi@raspberrypi:/mnt/target $ sudo umount sys
pi@raspberrypi:/mnt/target $ sudo umount proc

Modifier cmdline.txt

Il faut maintenant modifier cmdline.txt pour que la clé USB soit le root file system (RFS) à la place de la carte SD :

pi@raspberrypi:/mnt/target $ sudo sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/target/boot/cmdline.txt

/!\ il n’y a qu’une ligne de code et /mnt/target/boot/cmdline.txt est en un seul bloc

Modifier fstab

pi@raspberrypi:/mnt/target $ sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/target/etc/fstab

/!\ il n’y a qu’une ligne de code et /mnt/target/etc/fstab est en un seul bloc

Démonter le système de fichier de la clé USB

pi@raspberrypi:/mnt/target $ cd ~
pi@raspberrypi:~ $ sudo umount /mnt/target/boot
pi@raspberrypi:~ $ sudo umount /mnt/target

Arrêter le Raspberry Pi 3

pi@raspberrypi:~ $ sudo poweroff

Maintenant vous pouvez débrancher la prise micro USB d’alimentation et enlever la carte SD

boot_USB_04

Attendez 2,87 secondes (nan c’est une connerie 😉 )

Redémarrer le Raspberry Pi 3

et… reconnectez l’alim… suspens 🙂

ecran_boot

Bon bin chez moi après ce bel écran coloré, ça boote 😀

Raspbian démarre et j’arrive sur le bureau en mode graphique. J’avais installé x11vnc, depuis mon PC je me reconnecte… Ma foi tout ça fonctionne !

Allez une petite verification :

pi@raspberrypi:~ $ df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/root 15G 4,0G 9,8G 29% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 463M 0 463M 0% /dev/shm
tmpfs 463M 6,4M 457M 2% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 463M 0 463M 0% /sys/fs/cgroup
/dev/sda1 93M 20M 73M 22% /boot
tmpfs 93M 0 93M 0% /run/user/1000

et aussi

fdisk -l

/dev/sda1 2048 194559 192512 94M c W95 FAT32 (LBA)
/dev/sda2 194560 31266815 31072256 14,8G 83 Linux

Et avec Ubuntu Mate ?

Là je n’ai pas testé personnellement, c’est Michel qui s’y est collé… Volà ce qu’il en dit :

« Pour Ubuntu Mate 16.10.1 je n’ai rien touché du tout. Ma carte SD était bien chargée d’applications et il a fallu une bonne heure pour faire le transfert de la carte SD vers la clé USB.

Le 1er démarrage un peu long…….20 secondes environ et ensuite un peu plus court.

Aucun fichier n’a été modifié, j’ai uniquement suivi le tuto à la lettre près. »

Si comme Michel vous avez testé d’autres distributions que Raspbian ou d’autres clés n’hésitez pas à ajouter les infos dans les commentaires, je les reprendrai en fin d’article 🙂

Conclusion

Depuis le temps qu’on attendait cette possibilité, elle est enfin disponible. Le Raspberry Pi boote sur autre chose que la carte micro SD !

Certes ceci est encore expérimental mais fonctionne bien. Il faudra tester le boot sur un disque dur classique et sur un SSD mais c’est déjà très encourageant.

boot_USB_02

Le boot Ethernet fonctionne, j’espère le tester bientôt. C’est un peu plus compliqué à mettre en oeuvre et il reste des points à améliorer sur ce démarrage mais c’est déjà fonctionnel 🙂

Sources

Pi 3 booting part I: USB mass storage boot beta

 

Pi 3 booting part II: Ethernet

 

 

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. .

42 réflexions au sujet de « Bootez votre Raspberry Pi 3 sur une clé USB »

  1. Dodutils

    Le titre de cet article est un poil réducteur je pense car démarrer sur une clé USB n’a que peu d’intérêt par rapport à une SDCard (la SDCard est plus petite et mieux intégrée) mais cette nouveauté va surtout permettre de démarrer sur une unité de stockage USB (d’ailleurs le message original parle bien de « USB mass storage » donc disque dur mécanique ou SSD ce qui devient alors nettement plus intéressant 🙂

    Le titre de ce billet original aurait peut-être du être « Bootez votre RasPi 3 sur un périphérique de stockage USB ».

    Répondre
    1. François MOCQ Auteur de l’article

      bonjour dodutils
      complètement d’accord. J’hésite toujours à donner des titres à rallonge aux articles
      sans doute une résurgence de l’écriture des bouquins ou la longueur des titres est limitée à 40 caractères 🙂
      j’ai modifié le premier titre de l’article pour intégrer périphériques de stockage mais pour le titre de l’article le lien est déjà diffusé sur facebook et twitter…
      bonne fin de journée
      cordialement
      François

      Répondre
      1. Horace

        Bonjour,
        N’étant pas un gourou de linux ni de Framboise, je suis un peu désarconné !
        J’ai suivi le tuto, mais à l’instruction :
        vcgencmd otp_dump | grep 17:
        J’obtiens comme réponse :
        error=2 error_msg= »Invalid arguments »

        Où me suis-je paumé ?
        Merci d’un renseignement
        Cordialement
        Horace

        Répondre
  2. Ping : Bootez votre Raspberry Pi 3 sur une clé USB

    1. François MOCQ Auteur de l’article

      bonjour Romain
      ça élimine la carte SD complètement mais surtout ça ouvre la porte au boot sur le réseau ce qui peut se révéler très pratique en école ou en entreprise… les mises à jour se font à un seul endoit (sur le serveur) et quand une station démarre elle est à jour !
      Il y a un hôpital près d’ici qui utilise plus de 100 Raspberry Pi en terminaux légers, imagine le temps gagné !
      Pour le lien pas de souci au contraire plus il y a de sources d’information, mieux c’est 🙂 donc pas de souci vers cet article daté de déc. 2013
      euhhh j’avais écrit un article là dessus en expliquant complètement le système de boot du Raspberry en mars 2013 😉
      http://www.framboise314.fr/booter-le-raspberry-pi-sur-un-disque-dur-usb
      Je pense qu’écrire un tutoriel comme une recette c’est bien
      Mais quand ça ne fonctionne pas les lecteurs du blog se posent des questions. L’explication de fonctionnement est importante et doit leur permettre d’avancer par eux mêmes. La simple recopie d’un tutoriel n’est pas suffisante, c’est juste de la « consommation » (c’est mon avis et je le partage 😉 )
      cordialement
      François

      Répondre
  3. francis

    Je viens de faire un test sur un dd, , au départ il était alimenté que par la prise usb, ça n’a pas maché, je l’ai alimenté par une autre source et ça a marché, mais UNE seule fois. mais depuis rien!
    J’ai mis ce paramètre program_usb_timeout=1.

    Bonnne journé
    Francis

    Répondre
  4. Doudy

    Bonjour,
    Y-a-t’il une évolution :
    « Le boot Ethernet fonctionne, j’espère le tester bientôt. C’est un peu plus compliqué à mettre en oeuvre et il reste des points à améliorer sur ce démarrage mais c’est déjà fonctionnel  »
    Déjà testé ?
    Merci.
    Bonne journée.

    Répondre
  5. zeb

    Plop

    Pour une fois, J’avais lu l’article de Gordon H. avant le tien. Mais j’ai quand même lu le tien 😉
    Et bien m’en a pris : je n’avais pas vu à la lecture de l’article original que le boot sur réseau était aussi au menu. Je me précipite de ce clic sur le site raspberrypi.org…
    …Mais c’est promis, je reviens ici rapidement. Et je lirai ton prochain article sur le boot réseau 😉

    Merci François !

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour zeb
      aucun problème il n’y a pas de concurrence 😉
      a mon avis plus il y a d’articles plus les lecteurs peuvent progresser… le but c’est ça !
      test du boot réseau prévu mais pas tout de suite…
      cordialement
      François

      Répondre
      1. zeb

        @home, test du boot prévu très prochainement 😉
        ____________________

        Quelle concurrence ? Entre la source officielle brute et en anglais d’une part, et un le blog francisé, et amélioré, et commenté, et câliné (*) d’autre part ! Ben il n’y a pas photo.
        ____________________
        (*) si, si, il y a bien un nounours en arrière plan.

        Répondre
        1. François MOCQ Auteur de l’article

          ah ah merci zeb 🙂
          bonne chance pour le test de boot ici ça marche bien plusieurs redémarrage sans souci
          le « nounours » c’est Babbage la mascotte du Raspberry Pi
          http://www.kubii.fr/goodies-fondation-raspberry/1611-babbage-bear-la-mascotte-raspberry-pi-3272496004047.html
          c’est pas n’importe quel nounours 😀 il est déjà monté aux limites de l’atmosphère avec un ballon et a visité plein d’endroits
          tiens ici tu le verras pendant ma conférence à Nevers au mois d’avril c’est Alan qui l’avait amené 😉
          Babbage la mascotte du Raspberry Pi
          @+
          François

          Répondre
  6. michel580

    Bonsoir,
    Je viens de tester avec une clé Sandisk Cruzer Blade 32Go et Ubuntu 16.10.1 et tout fonctionne parfaitement (avec Jessie çà doit encore mieux aller je pense)
    Merci François pour ton tuto qui est parfait (comme d’hab)
    Cordialement

    Répondre
  7. Kerdalle

    Bonjour François,
    Merci pour ton (tes!!) super tutos
    J’ai un Jeedom qui tourne sur Raspi2B+ et qui tourne sur un ssd installé grace à ton tuto super bien documenté pitié pour votre SD.
    Je viens de recevoir un RPI3 B pour booster mon Jeedom dont j’ai un peu chargé la mule !
    Je me pose une question: est-il possible de faire un retour arrière du RPI3 si ça ne boot pas sur le SSD?

    Répondre
      1. Kerdalle

        Merci François, non je pensais à la modif du firmware / registre OTP. Pour l’OS je suis déjà sur SSD et j’ai fait une image propre en backup dernier recours.

        Répondre
        1. François MOCQ Auteur de l’article

          oups d’accord !
          OTP = one time programming
          donc on ne pourra pas remodifier le registre
          par contre il ne fait qu’autoriser le SoC à aller lire les supports autres que la carte micro SD APRES avoir accédé à la carte micro SD
          donc il suffira de retirer la ligne à la fin de config.txt (juste pour ne pas modifier un autre RasPi3 au cas ou la carte déménage 🙂 ) et de remettre la carte SD dans le connecteur
          Le RasPi va lire la carte et démarrer dessus si elle est présente.
          cordialement
          François

          Répondre
  8. Yves Kerdalle

    Bonjour,
    Juste une question,
    avec un RPI3 qui boot actuellement sur sd puis passe ensuite sur un ssd usb partitionné en sda1 fat32 (inutilisé), sda2 ext4 os (jessy) et sda3 swap, la sd n’étant alors plus utilisée. (selon ton tuto pitié pour la sd)
    et le firmware BRANCH=next rpi-update chargé et l’otp correctement modifié:
    (avec sudo vcgencmd otp_dump | grep 17: j’ai bien 17:3020000a)
    Puis je simplement copier la partition fat32 de la sd sur la partition fat32 du ssd usb inutilisée et y faire les modif nécessaire du config.txt et laisser le reste (sda2 ext4 qui tourne) sans changement ?
    Comme je ne suis pas pointu en linux je préfère poser la question avant plustot qu’après si plus rien ne marche :-))
    Merci du conseil

    Répondre
  9. Yves Kerdalle

    Bonjour,
    je reviens sur cette migration.
    J’ai un RPI3 sur lequel j’ai appliqué ton Tuto « Pitié pour la carte SD de votre framboise », tout étant parfaitement décrit et commenté.
    J’ai donc doté ce RPI3 sur lequel tourne le logiciel de domotique Jeedom sous Jessy d’un petit SSD de 32G. Jy ai fait 3 partitions, sda1 fat32 inutilisé, sda2 ext4 dur lequel a été transféré le contenu de mmcblk0p2 et aussi sda3 partition swap.
    Tout baigne.
    J’ai appliqué l’update kernel du début du tuto Bootez votre Raspberry Pi 3 sur une clé USB
    jusqu’à obtenir avec sudo vcgencmd otp_dump | grep 17:
    17:3020000a.
    Ma question:
    ayant un système opérationnel sur ssd , puis je simplement copier le contenu de la partition fat32 de la sd (mmcblk0p1) sur la partition sda1 fat32 du DD et ignorer le reste du tuto (avec bien sur la motif du config.txt) ?

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Yves
      désolé pour le délai j’étais en vacances 🙂
      s’il y a assez de place dans la partition sda1 je pense que ça devrait rouler 🙂
      de toute façon avec une carte SD le Pi démarre normalement
      c est donc possible de faire marche arrière
      bon, au cas où si des données sensibles sont sur le DD vaut mieux faire une sauvegarde 😉
      cordialement
      François

      Répondre
  10. DUTHOIT

    Bonjour François,
    Merci pour le tuto.
    J’ai un problème, quand je tape : vcgencmd otp_dump | grep 17:
    La valeur du registre est :
    17:1020000a

    Une piste ?

    Merci d’avance.

    Répondre
  11. jal

    Bonjour,
    Merci pour le tuto, n’étant pas expert en commande linux et erreur linux j’ai le problème suivant lors de la commande: sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
    ça me répond:
    mkfs.fat 3.0.27 (2014-11-12)
    /dev/sda1: no such device or address

    pourtant j’ai bien une partition sur sda1 qui vaut
    /dev/sda1 start_add 16065 end 224909 sector 208845 size 102M id f type W95 Ext’d (LBA)

    (et pour info j’ai créer cette partition non pas sur le raspberry mais sur un outil windows et pour moi sa fonctionne j’ai faisait deja comme ça pour créer ma partition linux ubuntu sa posait pas de soucis)

    merci d’avance
    cdt, Julien

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Julien
      effectivement c’est bizarre
      mais il semble que la partition soit déjà existante et formatée en FAT32
      essayez de sauter l’étape du formatage pour voir…
      cordialement
      François

      Répondre
  12. François

    Bonjour,

    Merci pour votre auto très détaillé et clair. J’ai donc effectué les différentes étapes et le boot sur ma clé usb marche très bien. Le problème est que quand je veut me servir d’un autre périphérique de stockage le rapsberry le reconnais mais impossible d’y accéder les partitions n’étant pas montées. Meme en les montant manuellement impossible d’y accéder quand même. Des idées de résolution pour ce problème ?

    Cordialement,

    François.

    Répondre
  13. flimo

    Merci .
    Je viens de migrer sur un SSD de 120 GO Gost acheter 44€ chez Boulanger et ça fonctionne nickel.

    Attention sinon de penser à arrêter Mysql et Apache avant le rsync.

    sudo service stop mysql
    sudo service stop apache2

    Répondre
    1. Dodutils

      On peut aussi faire un dump avant d’effectuer la sauvegarde et faire le Rsync sur ce dump ce qui évite d’avoir à arrêter la base, mais bon après on est pas sur un serveur de prod avec une grosse activité non plus 😉

      Répondre
  14. Roland

    Bonsoir,

    J’ai suivi le tuto mais le raspberry s’arrête à l’écran de couleur puis plus rien….???
    Auriez-vous une idée ?

    Cordialement.

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      Désolé avec aussi peu d’infos on ne peut rien déduire
      en fait quand vous dites ça ne marche pas il faut vraiment fournir des infos sur ce qui a été fait pour qu’on puisse vous aider. Imaginez : vous appelez un garagiste et vous lui dites : « ma voiture ne démarre pas ». Pensez vous qu’il saura si c’est la batterie, l’antidémarrage, le démarreur, le manque d’essence ou… autre chose ?
      Eh bien en informatique c’est pareil si vous ne donnez pas de détails comment voulez vous qu’on trouve ce qui ne va pas ?
      Reprenez pas à pas, testez une autre clé (autre marque) le tuto a été suivi par de nombreuses personnes et fonctionne donc….
      cordialement
      François

      Répondre
      1. Roland

        Bonjour
        Effectivement avec plus de détails ce sera plus clair.
        J’ai donc un pi3 avec un wd pi drive 314 Go.
        Il boot sur la sdcard pour ensuite passe sur le pidrive qui contient deux partitions :
        /dev/sda1 formatée en fat32 qui contient la copie de /boot de la sdcard.
        /dev/sda2 formatée en ext4 qui contient /.

        J’ai suivi étape par étape le tuto :
        sudo apt-get update -> ok
        sudo apt-get upgrade -> ok
        sudo BRANCH=next rpi-update -> ok
        echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt -> ok
        sudo reboot
        vcgencmd otp_dump | grep 17: -> ok (17:3020000a)

        Copie (rsync) de /boot de la sdcard sur /boot du pidrive (/dev/sda1)
        Pas besoin de modifier le cmdline.txt puisque déjà opérationnel pour utiliser le pidrive.
        Modification du /etc/fstab pour utiliser le /boot du pidrive.

        Poweroff et alim débranchée.
        Retrait de la sdcard.
        Reconnection de l’alim……

        Affichage de l’écran de couleur puis plus rien.

        Je remets la sdcard et là il boot normalement et monte bien la partition /boot du pidrive /dev/sda1).

        Je ne comprends pas pourquoi il ne veut pas booter sans la sdcard ?

        Merci de votre aide.

        Cordialement.

        Répondre
  15. Jablo

    Salut, j’ai fait l’opération avec un ssd, il y a déjà quelques temps. Aujourd’hui, j’essaye de le refaire avec la dernière version de Raspbain Pixel, tout se passe bien jusqu’au boot sur le disque. Ca ne boot pas !

    Quand on refait l’opération, on repart de quelle étape du tuto ? Normalement, on n’a plus besoin de faire les premières étapes , le firmaware qui autorise le boot sur USB devrait déjà être à jour… On devrait pouvoir commencer le tuto au chapitre de préparation de l’USB ?

    Est-ce qu’on risque quelque chose à remettre program_usb_boot_mode=1 ?
    Est-ce qu’il y a un problème particulier avec Pixel ?

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.