Ç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…
Au sommaire :
Cloner la carte SD du Raspberry Pi
Plusieurs possibilités en fonction de la taille de la carte SD de destination
- 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).
- La 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.
- 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….
Eh 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 ! - 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 :
1 2 3 4 5 6 7 8 9 10 |
/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…
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 :
1 2 3 |
$ unzip rpi-clone-master.zip $ cd rpi-clone-master $ cp rpi-clone /usr/local/sbin |
ou, utilisez git pour cloner le dépôt :
1 2 3 4 5 6 7 8 9 |
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 https://www.framboise314.fr/docs/rpi-clone/rpi-clone.sh --2014-02-28 18:47:42-- https://www.framboise314.fr/docs/rpi-clone/rpi-clone.sh Résolution de www.framboise314.fr (www.framboise314.fr)... 88.190.253.244 Connexion vers www.framboise314.fr (www.framboise314.fr)|88.190.253.244|:80...connecté. requête HTTP transmise, en attente de la réponse...200 OK Longueur: 11956 (12K) Sauvegarde en : «rpi-clone.sh» 100%[======================================] 11 956 --.-K/s ds 0,01s 2014-02-28 18:47:42 (799 KB/s) - «rpi-clone.sh» sauvegardé [11956/11956] pi@raspberrypi ~ $ sudo chmod +x rpi-clone.sh pi@raspberrypi ~ $
Commencez par récupérer la version française de rpi-clone sur framboise314 :
wget https://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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
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 !
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 (?)
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.
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
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.
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.
Je veux dire le RaspBerry refuse de démarrer.
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
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:
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.
Je ne suis pas très à l’aise avec raspbian…
Auriez-vous un exemple d’utilisation de ces lignes de commandes ?
…je désire sauvegarder mon environnement Openmediavault sur une carte micro-sd vierge.
Win32DiskImager ne fonctionne pas (nombre de secteurs différents) et SDFormatter 4.0 non plus (disque non reconnu)
Merci bcp !
Bonjour Patrick
puisque vous utilisez Win32DiskImager commencez par faire une sauvegarde de
votre carte sur votre disque dur (faites Read et nommez le fichier
*ce_que_vous_voulez.img*)
après vous pourrez réécrire cette image sur une autre carte SD de taille
plus importante si vous n’avez pas de carte de la même taille.
cordialement
François
Merci d’avoir répondu aussi rapidement !!
Oui, j’ai déjà fait une sauvegarde de l’image sur mon disque.
Mon problème était de l’écrire sur une nouvelle carte SD de la même taille : la carte initiale fait 16GB, cela m’oblige à acheter une carte de 32GB pour la sauvegarde…ce que je voulais éviter pour un problème de coût car j’ai 2 sauvegardes à faire (2 raspberry)
Vérifier tout de même que la taille de votre image est cohérente avec celle de votre SD.
Pour ma part le ce logiciel me fait une image de 137Mo pour une carte SD de 8Go (6mois plus tard, la taille de l’image est la même à l’octet près).
bonjour,
« – kpartx pour déclarer la table de partition dans l’OS ; »
je ne comprends pas ?
j’utilise linux
avec la commande dd j’ai fait une image disque d’un carte SD 32Go samsung
je voudrais copier sur une carte SD 32Go Pny mais qui contient un peu moins de secteurs
merci
Ping : Clonez la carte SD de votre Raspberry Pi | Fram...
Ping : Clonez la carte SD de votre Raspberry Pi | Libr...
Ping : Clonez la carte SD de votre Raspberry Pi | Fram...
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.
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
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).
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.
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
merci super tuto !!!!!!
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 !
Bonjour,
Pourquoi ne pas utiliser l’option de sauvegarde proposée par Win32 Disk Imager ?
Je vais essayer …
Laurent
Ping : rpi-clone: Clonez la carte SD de votre Raspberry Pi | Blog de F8ASB
Bonjour,
Nickel !
Merci
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
Ping : Carnet de notes : Quelques paramètres de configuration de la Raspberry PI | Okimi
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 ?
Bonjour,
J’ai le problème identique quelqu’un aurrait une solution ? merci par avance
Sebastien
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.
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 ?
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.
Merci pour ce retour, Jean Pierre !
Ping : Raspe | Pearltrees
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
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
merci 😉
A fonctionné impeccablement (pi2, overclocké Pi2, carte SAMSUNG EVO USH 1, 32 GB)
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
Bonjour
Excellent,peut on automatiser cette sauvegarde oar exemplw chaque soir a heure fixe ? Comment fairr
Merci
vous pourriez lancer le script dans une tache cron…
cordialement
François
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.
Bonjour,
est-il possible de faire une image de la SD avec Clonezilla auquel je suis habitué?
Bonjour,
J’aimerais utilisé ce script qui est très bien mais sur des clé USB. J’ai suivi ce tuto (https://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.
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.
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.
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…
Cette page décrit comment faire la sauvegarde « à la main » :
http://sysmatt.blogspot.fr/2014/08/backup-restore-customize-and-clone-your.html
Bonjour,
Je voudrait savoir si on peut utiliser rpi-clone mais avoir comme destination un Nas synology (en nfs par exemple) eu lieu d’une autre carte SD.
merci à vous
bonjour,
Un petit retour sur un clone d’une microsd avec ubuntu mate dessus. Le script shell de Bill Wilson n’a pas fonctionner a 2 reprise, alors j’ai tanter le clonage manuel de Matt Hoskins qui a tres bien fonctionner.
thierry
merci pour ce retour 🙂
ma conclusion a ete trop rapide 🙁 j’ai un probleme montage usb en user que n’est pas en root, je m’explique en mode desktop user les periferie usb ne monte pas message « l’emplacement n’est pas un dossier » en mode desktop root elle monte parfaitement . dommage ….
re tentative du script shell de Bill Wilson en m’appliquant ce coup ci , sd neuve kingston 16gb class10 , tous eteint navigateur compris ca a marcher impect , super !! ca me reboost merci pour t’es articles interessant
thierry
Bonjour,
Question peut être un peu bête mais ne serait il pas utile d’ajouter une commande pour arrêter tous les daemon pendant la copie avant de les relancer après ? Ou une commande qui permette de les mettre sur « pause ». Ca serait plus propre, non ?
Ceci dit je ne saurais pas comment ajouter cette commande.
John
Bonjour ,
Svp ADMIN si je diminue la taille d’une partition avec Gparted ensuite je sauvgarde image avec WIN32diskimager sa peut marché ? , effectivement j’ai besoin juste de qlq Mo pour coloné une carte Sd 16Go vers une autre 16Go 🙁
Bonjour à tous,
Est il possible d’adapter le script pour cloner la carte sd sur un disque dur usb …ET qu’il soit utilisable comme disque de boot ?
ps: j’ai essayé de le réaliser en suivant le tuto « Pitié pour la carte SD de votre framboise314 : Bootez sur un disque dur USB » et d’autres, pour transferer volumio ou osmc , sur un raspi 3 …. et deux mains gauche en linux !
Merci d’avance
Bonjour,
Merci pour vos excellents articles.
J’ai suivi un de vos tutos pour démarrer sur SSD. Cela fonctionne a merveille.
Par contre, maintenant, si j’utilise RPI-clone, la carte générée ne fonctionne pas.
L’idéal serait de pouvoir, après démarrage, insérer une sd dans le slot du RPI3, et de cloner avec les modifications nécessaire pour que cette carte boot. (Je suppose que dans mon test, j’aurais du modifier certains fichiers comme cmdline.txt ou autres, mais je ne suis pas assez calé…).
Ou alors insérer une carte dans un lecteur et cloner avec les modifs permettant à la carte de booter si insérée dans le slot du rpi3.
Merci de votre aide.
Cordialement.
Gilles
Bonjour Gilles
si je comprends bien
vous avez modifié le PI3 pour qu’il démarre sur le SSD
donc sans carte SD ?
rpi-clone est fait pour cloner une carte SD, pas un SSD
si vous souhaitez à nouveau booter sur une carte SSD, faites en une nouvelle à partir d’une image de Raspbian ça devrait fonctionner
cordialement
François
Bonjour François,
En fait j’essaie de trouver un moyen d’effectuer une image a chaud de mon système (la plus petite possible)que je pourrais réinstallée le cas échéant. Je suis débutant sous linux.
Mon installation est basée sur un Raspberry PI3 avec un WD PIDrive de 64Go sur lequel est installé Jeedom pour gérer ma domotique.
Cordialement
Gilles
Bonjour tout le monde,
merci la framboise pour le boulot que je suis dans l’anonymat depuis un certain temps.
Tout se passait bien jusque là, mais là, pour le rpi-clone, je sèche.
J’ai un RPi 3, que je souhaite copier vers un RPi1.
Sur mon RPI3, j’ai une carte de 16Go, que je souhaite copier vers une micro SD de 8 Go via un adaptateur.
Je lance un apt-get update/dist-upgrade pour avoir la dernière version.
Je lance la commande sudo rpi-clone sda -f
Tout se passe bien ; juste un message qui me dit qu’une partition est monté sur sda, est-ce que je veux la demontée, je dis oui.
« A destination partition is busy (mounted). Mount status:
/dev/sda2:
/dev/sda1: /media/5EAE-8E26
Do you want to unmount /media/5EAE-8E26? (yes/no): y »
Ensuite ça continue à priori normalement. puis au moment de la copie j’ai ces messages là:
« Starting the filesystem rsync to sda
(This may take several minutes)…rsync: chown « /mnt/clone/boot » failed: Operation not permitted (1)
rsync: readlink_stat(« /mnt/clone/boot/overlays ») failed: Input/output error (5)
rsync: delete_file: unlink(boot/FSCK0079.REC) failed: Read-only file system (30)
rsync: chown « /mnt/clone/boot/LICENCE.broadcom » failed: Read-only file system (30)
rsync: mkstemp « /mnt/clone/boot/.cmdline.txt.50M4c4″ failed: Read-only file system (30)
»
Avec les 3 dernières lignes qui se répètent pour un grand nombre de fichiers présents.
Donc autant dire que quand je veux lancer mon RPi 1, rien ne se passe.
J’ai beau chercher sur le net, je ne trouve pas de cas semblable.
Est-ce que quelqu’un aurait rencontré, et surtout, résolu ce problème?
D’avance merci
Bonjour tout le monde,
merci la framboise pour le boulot que je suis dans l’anonymat depuis un certain temps.
Tout se passait bien jusque là, mais là, pour le rpi-clone, je sèche.
J’ai un RPi 3, que je souhaite copier vers un RPi1.
Sur mon RPI3, j’ai une carte de 16Go, que je souhaite copier vers une micro SD de 8 Go via un adaptateur.
Je lance un apt-get update/dist-upgrade pour avoir la dernière version.
Je lance la commande sudo rpi-clone sda -f
Tout se passe bien ; juste un message qui me dit qu’une partition est monté sur sda, est-ce que je veux la demontée, je dis oui.
« A destination partition is busy (mounted). Mount status:
/dev/sda2:
/dev/sda1: /media/5EAE-8E26
Do you want to unmount /media/5EAE-8E26? (yes/no): y »
Ensuite ça continue à priori normalement. puis au moment de la copie j’ai ces messages là:
« Starting the filesystem rsync to sda
(This may take several minutes)…rsync: chown « /mnt/clone/boot » failed: Operation not permitted (1)
rsync: readlink_stat(« /mnt/clone/boot/overlays ») failed: Input/output error (5)
rsync: delete_file: unlink(boot/FSCK0079.REC) failed: Read-only file system (30)
rsync: chown « /mnt/clone/boot/LICENCE.broadcom » failed: Read-only file system (30)
rsync: mkstemp « /mnt/clone/boot/.cmdline.txt.50M4c4″ failed: Read-only file system (30)
»
Avec les 3 dernières lignes qui se répètent pour un grand nombre de fichiers présents.
Donc autant dire que quand je veux lancer mon RPi 1, rien ne se passe.
J’ai beau chercher sur le net, je ne trouve pas de cas semblable.
Est-ce que quelqu’un aurait rencontré, et surtout, résolu ce problème?
D’avance merci
Je vous propose un fichier texte qui liste tous les messages d’erreurs du lancement de la commande à la fin.
http://dl.free.fr/iyUNcTOOY
Bonjour
il n’y aurait pas une protection d’écriture sur l’adaptateur ?
ça ressemble à ça…
cordialement
François
J’ai essayé 2 cartes et 2 adaptateurs différents sur mon PC fixe (Win7) et je ne suis pas bloqué en écriture dessus …
Bonjour et merci pour ce tuto rpi-clone !
J’ai tenté sur une carte SD 16Go, avec l’option -f car elle avait déjà été utilisée une fois pour copier de la donnée.
Et ça fait désormais 7 heures que j’ai « Running fsck on /dev/sdd1 » (sdd1 étant la partition de destination sur la carte SD de backup).
Est-ce normal qu’après autant de temps il soit toujours dessus ? Est-ce que ça a planté ? Comment faire ?
Merci, à très vite.
Étant donné que le script clone les partitions avec, je te suggère de faire avec -f, et en mettant comme destination /dev/sdd (pas /dev/sdd1 (je ne sais pas ce que tu as mis)).
Mais 7H c’est effectivement un crash ^^
@François MOCQ fait attention aux dans tes balises codes qui s’affichent en entités HTML, sinon super blog 😉
*fait attention aux https://www.noelshack.com/2017-31-7-1502007121-capture-d-ecran-2017-08-06-a-10-10-59.png
Merci Guillaume
En général je les repère mais l éditeur wordpress est assez bizarre la dessus
Cordialement
François
c’est vu, j’ai installé Crayon syntax Highlighter pour l’auteur de l’article sur Kalliopé et je pense que c’est ce plugin qui a mis le bazar
je vois comment je peux faire 🙁
merci encore
Merci beaucoup pour ce tuto
Bonjour
Merci pour cet excellent article.
Merci également pour tous les commentaires qui le complètent.
Mais je crois qu’il y a aujourd’hui une manière plus simple de procéder, lorsque l’on est sous Raspbian, c’est l’utilitaire CD Card Copier, qui est depuis peu, inclus dans Raspbian
(https://www.raspberrypi.org/blog/another-update-raspbian/).
Je viens de l’essayer et j’ai l’impression que tout a bien fonctionné…
A suivre…
Cordialement,
Bernard
merci pour ce rappel Bernard
je n’ai pas beaucoup de temps en ce moment mais ça méritera un article sur le sujet
cordialement
François
Bonjour,
En effet SD card copier est inclus depuis Avril 2017. Je viens de l’essayer pour cloner la SD : ça fonctionne. J’ai pu passer d’une SD 16Go vers un SSD externe de 64Go connecté en USB. Avec les instructions qui vont bien, le Pi boot directement sur le SSD et tout fonctionne parfaitement.
Bonjour
merci pour ces informations et effectivement super solution.
Mais, je copie ma carte SD sur un disque pour booter sur le disque et non plus sur la sd.
ça marche, mais comment empêcher que la copie utilise toute l’espace du disque et non pas la partition que j’ai prévu ?
en effet, comme j’ai fait une copie des partitions sur mon Nas tous les jours, j’ai une heure pour 8Go. pas question d’avoir 10H de sauvegarde pour rien.
Ping : openHABian, une distribution domotique pour Raspberry Pi – Computences
Bonjour,
Existe t il un moyen de cloner la carte SD avec rasbian bit à bit sur une clé usb par exemple et ce depuis windows10.
J’ai essayé wind32 disk imager.1, mais cela ne fonctionne pas .
J’ai 4 fichiers « kernel.img » sur ma carte ?? pourtant la carte a bien été formaté avant d’installer rasbian et maggic mirror…
Dans l’attente de votre réponse.
Cdl.
Bonjour
win32diskimager fait une copie bit à bit
quand vous dites 4 fichiers kernel ce sont :
kernel.img kernel7.img kernel7l.img et kernel8.img ?
ce sont des fichiers différents avec des tailles différentes
ces noyaux correspondent aux différents processeurs qui se sont succédé sur les raspi (pi1, pi Zero, pi 3 et pi4) ne vous en étonnez pas…
le but c’est quoi? de booter sur la clé USB?
cordialement
François
merci pour votre réponse rapide.
effectivement pour le .img sont bien les kernel que vous évoqué.
j ai enfin trouvé un logiciel pratique :
usb image tool.
j ai pu faire une copie bit à bit de ma carte sd ..ouff.
ma carte est copié avec succes et j ai pu redemarrer avec la meme config!!
je suis content.
oui pourquoi pas booter sur cle usb vue la durée de vie de la carte sd.
je voulais surtout un backup.
merci encore.
Salut,
J’avais utilisé rpi clone pour passer de la sd a un ssd et booté dessus, nickel.
Je viens de refaire la manip pour cloner mon ssd sur un autre ssd de sauvegarde, ca semble s’etre bien passé, pas de message d’erreur.
Mais quand j’enleve mon ssd et le remplace par le cloné, le rpi ne démarre pas.
D’où peut venir le problème ?
Merci.
Bonjour Franck
c’est difficile à dire à distance
il faut chercher, ouvrir le SSD cloné et regarder si les partitions sont correctes, les fichiers bien copiés etc…
cdt
françois
Ping : Dupliquez la carte SD de votre Raspberry Pi avec rpi-clone - Framboise 314, le Raspberry Pi à la sauce française....
Bonjour,
Mon pi3b+ tourne sur un SSD que je cherche à copier sur une carte SD plus petite.
J’ai donc branché un lecteur de carte en plus du SSD.
La carte SD a été formatée mais quand je demande le clonage, j’ai l’impression qu’il cherche à cloner cette carte vierge sur mon SSD. Comment en être sûr ? Merci d’avance.
Ping : Ordinateurs Solidaires – Le Maillet de Joigny
Ping : RPi-clone – ou comment faire face à des cartes SD foireuses – Bear or Beer
Bonjour, super post et programme!
J’ai néanmoins une question je viens de lancer un nouveau clone de la micro SD de mon Raspberry
et j’ai une alerte :
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:
Disk /dev/sda: 63865MB
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 4,19MB 273MB 268MB primary fat32 lba
2 273MB 31915MB 31642MB 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 281 megaoctets…
281+0 enregistrements lus
281+0 enregistrements écrits
294649856 octets (295 MB, 281 MiB) copiés, 18,5197 s, 15,9 MB/s
Redimensionnement de la partition 2 (système de fichiers racine) pour utiliser tout l’espace de la carte SD…
Value out of range.
mke2fs 1.44.5 (15-Dec-2018)
/dev/sda est initialisé et redimensionné. Ses partitions sont:
Disk /dev/sda: 63865MB
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 4,19MB 273MB 268MB primary fat32 lba
2 273MB 31915MB 31642MB primary ext4
Vous avez démarré /dev/mmcblk0p2 nom du système de fichiers racine actuel: rootfs
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)…rsync: readlink_stat(« /home/pi/thinclient_drives ») failed: Permission denied (13)
IO error encountered — skipping file deletion
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1207) [sender=3.1.3]
*** Clonage terminé sur /dev/sda ***
Début: 13:54:55 Fin: 14:03:06
Appuyez sur Entrée lorsque vous êtes prêt à démonter les partitions de /dev/sda…
Est-ce normal? (je ne pense pas,… et commetn faire pour résoudre cette alerte?)
Merci
Bonjour
comme indiqué en haut de l’article, celui-ci date de… 2014 ! une éternité en informatique
depuis les choses ont beaucoup évolué
il y a eu d’autres articles depuis :
https://www.framboise314.fr/?s=clone
et maintenant l’OS (en mode graphique ) intègre un cloneur de carte
essayez de voir un article plus récent ou directement https://github.com/billw2/rpi-clone
cdt
françois
Merci.
J’ai suivi votre conseil et ce post:
https://www.framboise314.fr/cloner-une-carte-micro-sd-sur-une-cle-usb-raspberry-pi-4/
effectivement encore plus facile!
Merci