Publié le 28 février 2014 - par

Clonez la carte SD de votre Raspberry Pi

clone_250pxÇa y est, votre projet est arrivé à son terme, tout tourne parfaitement. Comme vous devez équiper plusieurs Raspberry Pi, Il est temps de réaliser une copie de sauvegarde de la carte SD.

La méthode classique consiste à réaliser une image de la carte SD, puis de la recopier sur une carte de même taille. Et c’est là que ça se corse…

Cloner la carte SD du Raspberry Pi

Plusieurs possibilités en fonction de la taille de la carte SD de destination

  1. La carte SD sur laquelle vous souhaitez copier l’image a une taille largement supérieure à celle de la carte d’origine. Par exemple, la carte d’origine est une carte de 4 GB – 4 Giga Octets – et la carte de destination est une carte de 8 GB. Pas de souci dans ce cas, l’image tiendra largement sur la carte. Il suffira de choisir l’option expand-rootfs dans raspi-config pour que le système de fichiers s’étende à la totalité de la place disponible (voir configuration de Raspbian).
  2. pile_ou_face-213x187La carte SD sur laquelle vous souhaitez copier l’image a une taille égale à celle de la carte d’origine. Enfin… c’est ce qui est écrit dessus. Mais… tiens, ce n’est pas la même marque ! Alors là, vous avez une chance sur deux. Si vous avez tiré le bon numéro, la carte destinataire de l’image aura la même taille que l’image, ou mieux sera un tout petit peu plus grande. Pas de souci, l’image sera copiée sur la carte.
  3. Vous avez tiré le mauvais numéro ! La carte sur laquelle vous voulez transférer l’image de votre carte SD d’origine est bien marquée comme faisant la même taille mais….
    win32diskimager_02Eh oui, il en manque… Et pourtant la carte Lexar et la Transcend utilisées sont deux HDSC de 4 Gb :-(. Essayez dans un premier temps de reformater la carte avec l’outil SD Formatter 4.0 du consortium Carte SD. Si ça ne suffit pas, continuez de lire cet article, la solution est proche !
  4. La carte SD de destination est volontairement choisie de taille plus petite. Vous avez mis au point votre projet sur une carte 8 GB et vous décidez de finaliser en produisant des cartes 4 GB qui seront largement suffisantes. Là encore soyez patient(e), la solution arrive !

rpi-clone

C’est en cherchant une solution à ce problème de transfert de carte SD quand une carte est trop petite pour recevoir l’image que j’ai abouti sur le script de Bill WILSON, déposé sur GitHub.

Objectif du script

rpi-clone est un script shell qui va sauvegarder (cloner en utilisant dd et rsync) le système de fichier d’un Raspberry Pi en fonctionnement sur une carte SD de destination connectée sur un port USB du Raspberry Pi (via un lecteur de carte USB). Bill l’utilise pour gérer les sauvegardes de ses cartes SD de Raspberry Pi sur des cartes SD de sauvegarde taille différente (inférieure ou supérieure) à la carte SD sur laquelle le Raspberry Pi a démarré.

rpi-clone peut cloner le système en cours d’exécution sur une nouvelle carte SD ou peut réaliser un rsync incrémental pour sauvegarder des cartes SD utilisées sur Raspberry Pi. Pendant l’opération de clonage, rpi-clone vous donne la possibilité de donner un nom à la partition 2 de sorte que vous pouvez garder une trace des cartes SD sauvegardées. Il suffit de coller une étiquette portant le même nom sur chaque carte SD. Vous pouvez alors consulter la date du dernier clone de cette carte dans le fichier journal rpi-clone /var/log/rpi-clone. Bill utilise la convention suivante pour son jeu de cartes : les cartes de 8 Go s’appellent  SD-RPI-8A , SD-RPI-8B, … et les cartes SD de 4 GB SD-RPI-4A, …

Si la carte SD de destination a déjà des partitions existantes 1 et 2, correspondant aux types de partition en cours d’exécution, rpi-clone suppose (à moins d’utiliser l’option -f) que la carte SD est une sauvegarde existante avec les partitions correctement dimensionnées et mises en place pour un Raspberry Pi. Tout ce qui est nécessaire est de monter les partitions et de les synchroniser avec le système en cours de fonctionnement.

Si ces partitions sont introuvables (ou si vous avez utiliser -f), rpi-clone demande si vous voulez initialiser les partitions sur la carte SD de destination. Cela se fait par un ‘dd’ partiel  de la partition de démarrage /dev/mmcblk0 vers la carte SD /dev/SDN suivi d’un redimensionnement et d’un mkfs.ext4 de /dev/SDN partition 2. Cela crée une partition 1 contenant tous les fichiers de démarrage et une partition 2 rootfs vide, mais ayant la bonne taille. Les partitions de la carte SD sont ensuite montés sur /mnt/clone et synchronisées au système en cours de fonctionnement .

Vous devez éviter l’exécution d’autres programmes pouvant écrire sur le disque lors de l’exécution de rpi-clone, mais rpi-clone fonctionne très bien quand on le lance à partir d’une fenêtre de terminal. Cependant il vaut mieux fermer le navigateur s’il est ouvert car il peut écrire de nombreux fichiers temporaires.

rpi-clone doit être exécuté en tant que root et vous devez avoir le programme rsync installé sur votre système.

Quand rpi-clone a terminé l’opération de clonage il s’arrête et demande confirmation avant de démonter la carte SD sur laquelle le clone a été réalisé. C’est à ce moment que vous pouvez aller voir les résultats du clonage ou faire les derniers ajustements si nécessaire. Par exemple, si vous utilisez deux Raspberry Pi et que vous en utilisez un comme maître, lorsque vous réalisez le clone destiné au deuxième Pi, faites un « cd /mnt/clone/etc » et corrigez les fichiers nécessaires à la personnalisation du deuxième Raspberry Pi. Cela peut par exemple consister à changer le nom d’hôte et modifier le fichier de gestion de l’interface réseau. Il suffit de garder tous les fichiers sur le maître :

/etc/hostname       # hostname is trivial, so don't really need the
/etc/hostname.rpi0  # multiple copies - but I'll just list it here.
/etc/hostname.rpi1
/etc/hosts
/etc/hosts.rpi0
/etc/hosts.rpi1
/etc/network/interfaces
/etc/network/interfaces.rpi0
/etc/network/interfaces.rpi1

Dans cet exemple, rpi0 est la machine maître, donc il n’est pas vraiment nécessaire de garder les copies .rpi0, mais c’est juste au cas où. Ensuite, lors du clonage la mise à jour se fait simplement en recopiant les fichiers .rpi1 avant de laisser rpi-clone démonter les partitions. Mais n’oubliez pas de faire un ‘cd’ pour sortir de l’arborescence /mnt/clone avant de dire à rpi-clone qu’il peut procéder au démontage…github_rpi-clone

rpi-clone est sur ​​github, pour le récupérer et l’installer dans /usr/local/sbin : rendez vous sur https://github.com/billw2/rpi-clone et téléchargez le fichier zip, ensuite :

$ unzip rpi-clone-master.zip
$ cd rpi-clone-master
$ cp rpi-clone /usr/local/sbin

ou, utilisez git pour cloner le dépôt :

pi@raspberrypi ~ $ git clone https://github.com/billw2/rpi-clone.git
Cloning into 'rpi-clone'...
remote: Reusing existing pack: 31, done.
remote: Total 31 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (31/31), done.
pi@raspberrypi ~ $ cd rpi-clone
pi@raspberrypi ~/rpi-clone $ ls
README.md  rpi-clone
pi@raspberrypi ~/rpi-clone $ sudo cp rpi-clone /usr/local/sbin

Utilisation de rpi-clone

Lancez rpi-clone en super user (utilisez sudo) et passe en paramètre le nom de la carte SD tel qu’il apparait dans /dev.

ATTENTION : Soyez bien certain(e) du nom de votre carte SD car l’opération de clonage va écraser sans espoir de retour toutes les données présentes sur la carte SD de destination…

pi@raspberrypi ~ $ sudo rpi-clone sda

Clone destination disk   :  sda
Clone destination rootfs :  /dev/sda2 (no label) on /mnt/clone
Clone destination bootfs :  /dev/sda1 on /mnt/clone/boot
Verbose mode             :  off
===============================
Final check, is it Ok to proceed with the clone (yes/no)?: y
=> Mounting /dev/sda2 (no label) on /mnt/clone
=> Mounting /dev/sda1 on /mnt/clone/boot
===============================
Starting the filesystem rsync to sda
(This may take several minutes)...
*** Done with clone to /dev/sda ***
Started: 17:30:26    Finished: 17:41:47

Hit Enter when ready to unmount the /dev/sda partitions...
unmounting /mnt/clone/boot
unmounting /mnt/clone
===============================
pi@raspberrypi ~ $

Il a fallu environ 10 minutes pour cloner une carte SD vers une autre.

  • Raspberry Pi Model B / Rev. 2 – pas d’overclock
  • Carte d’origine : Micro SDHC  4 Go SanDisk Class 4
  • Carte de destination : Lexar Premium – SDHC 4 Go – Class 6 dans un lecteur All in 1 Amarina branché sur le port USB.

rpi-clone en français

Avec l’accord de Bill, je vous propose une version de rpi-clone dont les messages sont francisés (pas les commentaires, mais ils ne sont pas affichés pendant le déroulement du clonage…). On s’y jette ?

pi@raspberrypi ~ $ wget http://www.framboise314.fr/docs/rpi-clone/rpi-clone.sh<br />--2014-02-28 18:47:42--  http://www.framboise314.fr/docs/rpi-clone/rpi-clone.sh<br />Résolution de www.framboise314.fr (www.framboise314.fr)... 88.190.253.244<br />Connexion vers www.framboise314.fr (www.framboise314.fr)|88.190.253.244|:80...connecté.<br />requête HTTP transmise, en attente de la réponse...200 OK<br />Longueur: 11956 (12K)

<br />Sauvegarde en : «rpi-clone.sh»<br /><br />100%[======================================&amp;gt;] 11 956      --.-K/s   ds 0,01s<br /><br />2014-02-28 18:47:42 (799 KB/s) - «rpi-clone.sh» sauvegardé [11956/11956]<br /><br />pi@raspberrypi ~ $ sudo chmod +x rpi-clone.sh<br />pi@raspberrypi ~ $<br />

Commencez par récupérer la version française de rpi-clone sur framboise314 :
wget http://www.framboise314.fr/docs/rpi-clone/rpi-clone.sh

Donnez les droits d’exécution :
sudo chmod +x rpi-clone.sh

Enfin lancez le clonage. Ici j’ai forcé l’initialisation des partitions de la carte de destination car elle avait déjà servi pour des tests.

pi@raspberrypi ~ $ sudo ./rpi-clone.sh sda -f
Une partition de destination est occupée (montée).  Status de montage:
/dev/sda2:  /mnt/clone
/dev/sda1:  /mnt/clone/boot
Voulez vous démonter /mnt/clone/boot? (oui/non): o
Voulez vous démonter /mnt/clone? (oui/non): o

*** Forçage des partitions sur la destination 'sda' ***
Les partitions existantes sur le disque de destination 'sda' sont:
Disk /dev/sda: 4009MB
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
1      4,19MB  62,9MB  58,7MB  primary  fat16        lba
2      62,9MB  4009MB  3946MB  primary  ext4

Ce script peut initialiser la structure de partition du disque de destination
en s'appuyant sur celle du système actuel et ensuite redmensionner
la partition 2 (le système de fichiers racine) pour utiliser tout l'espace de la carte SD.
Voulez vous initialiser la destination /dev/sda? (oui/non): o

Copie de la structure des partitions, copie de 70 megaoctets...
70+0 enregistrements lus
70+0 enregistrements écrits
73400320 octets (73 MB) copiés, 8,70737 s, 8,4 MB/s
Redimensionnement de la partition 2 (système de fichiers racine) pour utiliser tout l'espace de la carte SD...
mke2fs 1.42.5 (29-Jul-2012)

/dev/sda est initialisé et redimensionné. Ses partitions sont:
Disk /dev/sda: 4009MB
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
1      4,19MB  62,9MB  58,7MB  primary  fat16        lba
2      62,9MB  4009MB  3946MB  primary  ext4

Vous avez démarré /dev/mmcblk0p2 nom du système de fichiers racine actuel:
Vous pouvez donner un nom au systèmes de fichiers racine destination /dev/sda2:

Disque destination cloné                     :  sda
Systéme de fichiers racine destination cloné :  /dev/sda2 (no label) on /mnt/clone
Systéme de fichiers de démarrage cloné       :  /dev/sda1 on /mnt/clone/boot
Mode bavard                                  :  off
===============================
Dernière vérification : Voulez vous vraiment lancer le clonage (oui/non)?: o
=> Montage de /dev/sda2 (no label) sur /mnt/clone
=> Montage de /dev/sda1 sur /mnt/clone/boot
===============================
Début de la synchronisation du système de fichiers vers sda
(Soyez patient, ça peut prendre plusieurs minutes)...
*** Clonage terminé sur /dev/sda ***
Début: 19:04:04    Fin: 19:16:58

Appuyez sur Entrée lorsque vous êtes prêt à démonter les partitions de /dev/sda...
Démontage de /mnt/clone/boot
Démontage de /mnt/clone
===============================
pi@raspberrypi ~ $

Conclusion

Un outil à garder précieusement si vous avez besoin de réaliser des clones de vos cartes SD sur des cartes différentes de la carte d’origine.

Merci à Bill WILSON pour l’écriture de ce script et pour son autorisation de le traduire en français.

Vous avez testé,utilisé ce script ou vous en utilisez un autre (peut-être encore mieux que celui-là ?), n’hésitez pas à en informer les lecteurs du blog dans les commentaires ci-dessous. Ils sont à votre disposition !

Share Button

A 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. .

39 réflexions au sujet de « Clonez la carte SD de votre Raspberry Pi »

  1. fidoboulettes

    Pas mal du tout ce script… ce qui serait bien c’est de pouvoir l’adapter pour non pas cloner la carte sur une autre SD mais de pouvoir l’envoyer sur un site distant histoire de faire des sauvegardes… après il y a peut être moyen (?)

    Répondre
    1. bil

      Bonjour à tous
      Je ne sais pas si je suis dans la bonne section pour poser ma question.Désolé si c’est le cas.
      Je voudrais savoir si il existe une solution pour empècher le clonage de la carte sd du raspberry.

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

        Bonjour
        pas de souci pour le bon endroit… sur framboise314 le modérateur est magnanime 😉
        Malheureusement il n’est pas possible d’empêcher le clonage de la carte
        il suffit d’insérer la carte dans un lecteur et un programme comme win32diskimager ou dd sous Linux copie la carte sans problème…
        cordialement
        François

        Répondre
  2. bon_lth

    Ou à la main :
    – dd pour faire une image de la carte SD ;
    – kpartx pour déclarer la table de partition dans l’OS ;
    – gparted pour diminuer une partition ;
    – dd pour copier les partitions redimensionnés sur la nouvelle carte SD.

    Répondre
    1. mic78000

      Bonjour,
      Tu aurais la syntaxe que j’essaie ton système ? (pas réussi avec le système proposé dans l’article : Le Raspi refuse de redémarrer avec la carte clonée.

      Répondre
        1. admin Auteur de l’article

          Bonjour Mic
          J’ai testé avec plusieurs cartes différentes en classe 4 et 6 et ça a fonctionné. La syntaxe est celle indiquée. Il n’y a pas de message d’erreur?
          tu as bien attendu la fin du script pour que les partitions du clone soient démontées correctement?
          Cordialement
          François

          Répondre
          1. mic78000

            En fait, j’ai un message d’erreur au départ qui revient après :
            pi@raspberrypi ~ $ sudo ./rpi-clone.sh sda -f

            *** Forçage des partitions sur la destination ‘sda’ ***
            Les partitions existantes sur le disque de destination ‘sda’ sont:
            Error: Can’t have a partition outside the disk!
            … Impossible de trouver un système de fichier de démarrage de type: fat32

            Ce script peut initialiser la structure de partition du disque de destination
            en s’appuyant sur celle du système actuel et ensuite redmensionner
            la partition 2 (le système de fichiers racine) pour utiliser tout l’espace de la carte SD.
            Voulez vous initialiser la destination /dev/sda? (oui/non): o

            Copie de la structure des partitions, copie de 1455 megaoctets…
            1455+0 enregistrements lus
            1455+0 enregistrements écrits
            1525678080 octets (1,5 GB) copiés, 112,054 s, 13,6 MB/s
            Redimensionnement de la partition 2 (système de fichiers racine) pour utiliser tout l’espace de la carte SD…
            mke2fs 1.42.5 (29-Jul-2012)
            mkfs.ext4: taille_i_noeud (128) * nombre_i_noeuds (0) trop grand pour un
            système de fichiers avec 0 blocs, indiquer un ratio_i_noeud (-i)
            plus grand ou un nombre d’i-noeud plus petit (-N).

            /dev/sda est initialisé et redimensionné. Ses partitions sont:
            Error: Can’t have a partition outside the disk!
            e2label: La tentative de lecture d’un bloc depuis le système de fichiers a produit une lecture tronquée lors de la tentative d’ouverture de /dev/mmcblk0p2
            Impossible de trouver un superbloc de système de fichiers valide.

            Vous avez démarré /dev/mmcblk0p2 nom du système de fichiers racine actuel:
            Vous pouvez donner un nom au systèmes de fichiers racine destination /dev/sda2:

        2. Caro

          Bonjour Mic,
          J’ai eu le même problème que toi « Can’t have a partition outside the disk! » et en fait c’était un problème avec ma carte sd, j’ai réalisé la correction expliquée sur cette page et depuis ça fonctionne très bien :
          http://gparted.org/h2-fix-msdos-pt.php#partition-outside-disk

          Tu as peut être corrigé ton problème depuis le temps mais si ça peut servir à quelqu’un.
          En tout cas merci à Bill pour le développement et à toi François pour la traduction.

          Répondre
  3. Ping : Clonez la carte SD de votre Raspberry Pi | Fram...

  4. Ping : Clonez la carte SD de votre Raspberry Pi | Libr...

  5. Ping : Clonez la carte SD de votre Raspberry Pi | Fram...

  6. Oliv'

    Ca n’a pas fonctionné …
    J’ai fait 3 essais avec des cartes SD différentes.
    Les 2 premières étaient des classe 10 … j’ai cru que c’était à cause de cela (la seconde a fait un très grand nombre d’erreurs lors du clonage).
    Ma dernière tentative avec un carte de classe 4 et 16 Go retourne un KERNEL PANIC lors du redémarrage sur la carte.
    Dommage, il va falloir que je trouve une autre solution.
    Merci tout de même.

    Répondre
    1. admin Auteur de l’article

      Bonjour Oliv
      Tous les clones réalisés ici fonctionnent. Cartes de taille différentes / cartes de classe différente… pas de souci
      Si une carte est récalcitrante, il faudrait essayer de la « remettre à zéro » avec l’outil de formatage SD : https://www.sdcard.org/downloads/formatter_4/ fourni par SD Association. C’est d’ailleurs également recommandé avant d’installer un système dessus.
      Cordialement
      François

      Répondre
      1. Oliv'

        Merci beaucoup,

        Effectivement, sous Windows 7, j’ai reformaté mes cartes SD avec Sdformatter, puis j’ai pu facilement faire une copie de l’image de ma carte système du Raspberry avec Win32Diskimager (logiciel gratuit).
        C’est pratique et 100 % efficace, mais j’aurai préféré réussir à le faire directement sur le Raspberry … tout semble fonctionner, malgré un p’tit message d’erreur de lecture de superblock qui ne bloque pas le process, mais une fois le clonage achevé, la carte ne fonctionne pas (je n’ai pas eu la patience de noter le message en question).

        Répondre
  7. anthony

    Bonjour,
    j’ai l’impression que ma carte destination (branchée avec un lecteur de carte) n’est pas reconnu sur mon raspberry car les périphériques porte le même nom (/DEV/mmcblk0).
    Comment je peux faire pour renommer ma carte destination en /dev/sdb par exemple ?
    Merci de votre aide.

    Répondre
    1. admin Auteur de l’article

      bonjour Anthony
      /dev/mmcblk0 est la carte d’origine (celle qui sert à démarrer le Raspberry Pi. C’est Linux qui détermine le nom des périphériques et il n’est pas possible de « renommer ». Si vous n’avez qu’une carte SD dans le lecteur vous devriez trouver /dev/sda. https://www.sdcard.org/downloads/formatter_4/ Pensez à reformater la carte destination avec cet utilitaire dans un premier temps. Regardez ce qui apparait dans dmesg quand vous insérez la carte destination dans le lecteur…
      Cordialement
      François

      Répondre
  8. Guillaume

    Bonjour et merci pour l’article sur le papier très intéressant ! Je dis sur le papier car j’ai essayé à plusieurs reprises et de façons différentes ce script, mais n’arrive décidément pas à faire fonctionner la carte SD de destination.
    J’essaye de copier mon installation XBian d’une carte de 16Go SanDisk Classe 4 vers une SanDisk 8Go Classe 10. (Le but est par la suite de faire un BerryBoot avec 2 systèmes sur la 16Go).
    Je lance donc le script qui reconnait très bien ma carte de destination, recréé une table à l’identique mais j’obtiens une vingtaine de message d’erreur de rsync ;
    rsync: chown "/mnt/clone/boot" failed: Operation not permitted (1)
    J’execute le script en root.
    Le script se termine mais impossible de démarrer sur la nouvelle carte … Est-ce dû à ces messages d’erreur ?
    J’ai essayé de redimensionner la partition avec GParted mais j’obtiens un message d’erreur sur le BTRFS … (Pourtant compatible sur les dernières version du live CD).
    J’ai également testé avec les btrfs-tools mais ça ne redimensionne que la partition secondaire (vu sur GParted) et donc ne modifie pas la taille …
    Je ne sais plus quoi faire, je formate toujours mes cartes avec SDFormater. J’espère que quelqu’un pourra m’aider !
    Merci !

    Répondre
  9. Ping : rpi-clone: Clonez la carte SD de votre Raspberry Pi | Blog de F8ASB

  10. Nicolas

    Bonjour,
    merci pour le partage d’info sur ce tuto.
    De mon coté j’ai un soucis dans l’utilisation de ce script:
    la copie sur la nouvelle carte sd se passe bien (pas de message d’erreur) mais ma raspberry ne boot pasavec la nouvelle carte.
    Des idées pour pouvoir investiguer de mon cote? merci.

    ma config:
    Raspberry B.
    kernel: Linux rapsberrypi 3.12.22+ #691
    carte SD sanDisk 8GB clonée vers une HC 8GB

    messages d’erreur du boot:
    VFS: Cannot root device « mmcbclk0p6 » or uncknownblock
    b300 767628 mmclk0 driver: mmcbclk
    b301 1501763 mmcbclk0p1
    b302 6169600 mmcbclk0p2

    Répondre
  11. Ping : Carnet de notes : Quelques paramètres de configuration de la Raspberry PI | Okimi

  12. Cmauki

    Bonjour,
    Merci pour ces précieuses informations mais pour moi : ça ne fonctionne pas.
    J’ai une carte SD 8Gb Kingston sur laquelle est installée mon système et je cherche à la cloner sur une SD 8Gb Sandisk. Une chance sur deux…j’ai tiré la mauvaise carte !

    J’ai donc continué la procédure décrite mais la procédure s’arrête, faute de présence du système de fichier sad2.

    J’ai copié ci dessous le message d’erreur :
    ============================================================================

    e2label: Aucun fichier ou dossier de ce type lors de la tentative d’ouverture de /dev/sda2
    Impossible de trouver un superbloc de système de fichiers valide.

    Clone destination disk : sda
    Clone destination rootfs : /dev/sda2 (no label) on /mnt/clone
    Clone destination bootfs : /dev/sda1 on /mnt/clone/boot
    Verbose mode : off
    ===============================
    Final check, is it Ok to proceed with the clone (yes/no)?: yes
    => Mounting /dev/sda2 (no label) on /mnt/clone
    mount: special device /dev/sda2 does not exist
    Mount failure of /dev/sda2, aborting!
    ===================================================================================
    Raspberry pi model B+

    je débute, soyez indulgents !…
    Quelqu’un pourrait-il m’aider ?

    Répondre
    1. julien quiévreux

      Est-ce la carte micro sd est bien partitionné et donc la partition sda2 est bien présente?
      Si pas, pour y remédier, vous pouvez ajouter l’option -f à rpi-clone pour que celui-ci formate la partition de destination. Attention à bien indiquer la bonne destination ou à faire une sauvegarde manuel du système d’origine si vous avez des doutes.

      Répondre
  13. Paul

    Bonjour

    désolé mais cela ne marche pas pour moi

    en entrée : carte Noobs 8Go avec raspbian installé
    en sortie : carte 16Go neuve
    tout semble fonctionner correctement, et je teste le résultat :
    je mets la nouvelle carte à la place de l’ancienne dans le RPi, … rien ne démarre

    après avoir redémarré avec l’ancienne carte, je compare rapidement le contenu des deux cartes :
    /bin /etc /home /lib ===> OK
    /boot /dev =====> vides !!!???

    effectivement, c’est normal que ça ne démarre pas.

    que faire ?

    Répondre
  14. Jean-Pierre

    Après installation de Raspbian, Domoticz et Heyu sur une SD 16 Go classe 10 avec une Raspi2, je viens d’utiliser RPI-clone en français en suivant à la lettre ce tuto.
    La SD de destination est une 8 Go classe 10 qui boote sans aucun problème ma Raspi2.
    Je n’ai pas donné de nom au système de fichiers racine de destination.
    Tout s’est déroulé exactement comme décrit, un rêve par rapport à de nombreuses autres publications moins rigoureuses.
    Bravo et un grand merci.

    Répondre
  15. Ping : Raspe | Pearltrees

  16. bil

    Bonsoir
    Dommage.Cela fait plusieurs années que j’essaie de faire quelque chose de pas mal avec un ras Perry.J’aurais bien voulu commercialiser l’image de la carte si mais la protéger contre la copie.Je crois entendre les hou hui un des pro open source.Mais croyez moi des heures devant l’écran,j’en ai passé. J’aurai bien voulu tirer quelque profit de tout cela.Bonne fin de journée a tous

    Répondre
  17. matric

    Bonsoir,

    Après bien des interrogations suivies de tentatives pour faire une copie de la carte SD de 16Go, repartitionnée de 16 en 8Go, sur une carte de 8Go j’ai suivi le tuto ci-dessus qui propose l’usage de rpi-clone.
    La méthode est sans appel, le résultat est au rendez-vous.
    J’avais cru initialement que win32diskimager serait la solution, que neni, car celui-ci veut copier l’intégralité de la carte, 16Go en l’occurrence ici, même si seulement 8Go utiles.

    Merci pour cette aide qui m’a redonné le sourire !
    Cordialement

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

      Merci pour ce retour Didier
      ça fait plaisir d’avoir des retours positifs
      car en général les commentaires arrivent quand ça ne fonctionne pas 😛
      Bonne année 2016
      Cordialement
      François

      Répondre
          1. Manu

            Bonjour,

            En utilisant la commande « yes », on peut automatiser rpi-clone avec une tache cron (en utilisateur root), mais il faut savoir *exactement* ce que l’on fait sous peine de perdre les données d’un disque.
            ATTENTION: les lignes suivantes s’appliquent uniquement à une carte SD de clonage dans un lecteur usb énuméré sur /dev/sda:
            sudo crontab -e
            ajouter la ligne suivante avec l’éditeur de cron:
            0 4 * * * yes | sudo rpi-clone sda
            De cette manière, on clone le boot et le root filesystem de la pi sur /dev/sda tous les jours à 4h du matin.

            NB: rpi-clone ne fonctionne pas avec NOOBS.

  18. Squale76

    Bonjour,
    J’aimerais utilisé ce script qui est très bien mais sur des clé USB. J’ai suivi ce tuto (http://www.framboise314.fr/booter-le-raspberry-pi-sur-un-disque-dur-usb/) pour déplacer mon root file system sur une clé USB. Ce qui fonctionne très bien.
    Je développe des scripts sur mon RPi et je voudrais garder une clé USB de « Recette » et une « Opérationnelle » et pouvoir, une fois validé ma recette, copier l’intégralité de ma clé de recette sur ma clé opérationnelle.
    Que dois-je changer dans le script pour qu’il copie la clé USB sur laquelle il a booté vers l’autre ?
    Cette copie doit se faire RPi en fonctionnement car l’arrêt du RPi n’est pas possible, les données sont collectées en permanence.

    Répondre
    1. Manu

      Il faut savoir quelle est la destination du clone du root filesystem. Par exemple quand tu tapes :
      sudo rpi-clone sda
      tu dis au script rpi-clone de faire une image sur /dev/sda.
      A confirmer, mais ça doit être à peu près ça, si tu as une deuxième clé usb qui est sur /dev/sdb, il faut lancer le script avec la commande :
      sudo rpi-clone sdb
      (Pour savoir l’affectation, des volumes de stockages branchés, tapes :
      ls -l /dev/disk/by-label/
      tu auras les partitions et leur label dans l’arborescence /dev).
      Lance rpi-clone avec le sdX de ta clé opérationnelle.

      Répondre
      1. Squale76

        Pour la destination, je comprends que c’est lié à l’argument ‘sdX’ associé au script rpi-clone.sh mais je ne comprends pas comment le script sait quelle partition il doit prendre pour source.

        Répondre
  19. Manu

    Le script considère par défaut que le système est sur la carte SD qui est sur /dev/mmcblk0. Il assume qu’il y a une partition fat pour le boot (environ 60Mo) sur /dev/mmcblk0p1 et le / qui est sur mmcblk0p2.
    Pour lui faire comprendre que les partititions sont sur une clé USB (sur /dev/sdY) et non pas sur la carte SD, il faut remplacer dans le script /dev/mmcblk0 par /dev/sdY.
    Il faut voir que le script est initialement prévu pour cloner une carte SD de secours afin de redémarrer sur le clone en cas de problème sur l’original. Le fait d’utiliser le / sur une clé USB sort un peu de ce cadre, mais il doit y avoir moyen de le faire fonctionner avec un peu de persévérence…

    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 *