Puis-je cloner l'intégralité de mon Raspberry Pi pour le déployer sur un autre Raspberry Pi?

12

Je ne sais pas si tous les sujets "comment sauvegarder votre carte SD" sont ce que je demande ... mais c'est parti :)

Existe-t-il un moyen de faire un clone à 100% de mon Raspberry Pi et de simplement le déployer sur un autre Raspberry Pi? J'ai donc deux copies exactement identiques ... Ou est-ce fait en clonant la carte SD en utilisant la commande dd intégrée ?

La raison pour laquelle je demande est que j'ai mon Raspberry Pi entièrement configuré avec Apache , PHP et quelques autres bibliothèques et maintenant je veux juste un autre clone avec les mêmes configurations exactes, etc.

Est-ce possible ou ai-je répondu à ma propre question?

naboovalley
la source
Je suis surpris que piclone n'ait pas été mentionné jusqu'à présent. Pour moi, c'est la façon la plus simple de cloner une carte SD sur un rpi, et nvere a eu des problèmes avec elle. J'ai déjà répondu à cette question dans le passé, voici donc un lien vers la réponse avec plus de détails: raspberrypi.stackexchange.com/questions/66824/… J'espère que cela vous aidera.
LecauseAndThePi
Je n'ai pas pu trouver de téléchargement de piclone n'importe où
Elia Weiss
Vous n'avez pas envie de le télécharger, il est déjà là. Tapez simplement piclone dans le terminal, et il lancera l'interface graphique.
LecauseAndThePi

Réponses:

9

@naboovalley:

Supposons le scénario suivant:

  • Sur votre Raspberry Pi, accédez à un terminal, puis accédez au répertoire / dev. Vous devriez voir, entre autres appareils, mmcblk0, mmcblk0p1 et mmcblk0p2.
  • mmcblk0 est le périphérique de carte SD "nu", tandis que mmcblk0p1 est la première partition de cette carte SD contenant l'image du noyau et ainsi de suite et mmcblk0p2 est la deuxième partition de cette carte SD contenant le système de fichiers racine.
  • Arrêtez votre Raspberry Pi de manière décente (tapez la commande "shutdown", éventuellement en tant que root)
  • Mettez la carte SD dans une autre machine Linux. Normalement, les répertoires mentionnés ci-dessus doivent être montés automatiquement sur / media / et il doit y avoir 2 sous-répertoires (un pour la partition 1 de la carte SD, un pour la partition 2 de la carte SD)
  • Vous avez créé un répertoire temporaire pour copier le contenu de votre carte SD. Dire:~/tmp
  • Vous vous trouvez dans ~/tmp

Vous pouvez maintenant copier le contenu de la première partition de la carte SD d'origine d'origine en émettant la commande rsync suivante:

rsync -avn /media/<user>/<partition1> .

Ne mettez pas de/ fin! La commande ci-dessus "fonctionnera à sec", ce qui signifie qu'elle vous montrera ce qu'elle finira par faire, mais ne l'exécutera pas pour de vrai.

Pour exécuter pour de vrai (après avoir confirmé que le run à sec fait ce qu'il devrait faire), vous pouvez supprimer le nde la commande ci-dessus (donc, rsync -av /media/<user>/<partition1> .).

Utilisez la même commande pour l'autre partition.

Vous devriez maintenant avoir une copie exacte de votre carte SD d'origine sur votre machine Linux.

Retirez la carte SD d'origine, placez une autre carte SD correctement formatée dans votre machine Linux et exécutez la commande rsync suivante:

rsync -avn <partition1> /media/<user>

Il s'agit encore une fois d'un essai à sec, qui devrait vous montrer que le contenu de <partition1>in /media/<user>sera copié sur la carte SD.

Une fois que vous avez confirmé que tout va bien, vous pouvez à nouveau supprimer le nde la rsynccommande.

Faites de même pour la deuxième partition.

Cela devrait vous donner une copie exacte de la carte SD d'origine sur l'autre carte SD.

Remarque: J'ai vérifié tout cela sur une machine Lubuntu. Les répertoires et les noms peuvent varier sur d'autres distributions Linux.

Notez également que les éléments entre < >sont des espaces réservés et vous devez voir par vous-même comment ils correspondent à votre environnement.

GeertVc
la source
Parfait. Je vous remercie! La copie "dd" fera-t-elle la même chose que vous décrivez ou est-ce que rsync est bien mieux de faire une copie complète du système comme je le veux?
naboovalley
Je n'ai pas beaucoup d'expérience avec la ddcommande, donc je ne peux pas le dire, désolé ...
GeertVc
Je ne comprends pas entièrement la partie où vous dites "- correctement formatée - carte SD". Faut-il pré-formater la carte SD avec des partitions fat32 et ext4 correctement dimensionnées? Merci
Romain Vincent
7

Oui, vous pouvez utiliser ddou Win32 Disk Imager sous Windows pour prendre une image exacte d'une carte à l'autre. Cependant, la carte de destination devra être de la même taille ou plus grande pour que cela soit pratique.

Vous pouvez également copier tous les fichiers de votre système de fichiers source vers un système de fichiers de destination. Autrement dit, branchez votre carte de destination dans un lecteur de carte USB et collez-la dans votre Raspberry Pi source. Connectez-vous ensuite à SSH et exécutez les commandes de copie appropriées.

Une chose à garder à l'esprit est également si vous avez acheté des clés de licence pour le décodage matériel de MPEG-2 ou VC-1 . Ceux-ci sont liés à votre matériel, vous devrez donc vous assurer de modifier le /boot/config.txt sur votre copie.

moi--
la source
Ainsi, la carte SD contient tous les fichiers spécifiques au système et les bibliothèques installées? Je n'aurai pas besoin d'exécuter de commandes d'installation lors du branchement de la copie clonée de la carte SD au R-Pi # 2?
naboovalley
2
Cela peut également présenter des problèmes avec les clés SSH et les adresses IP.
Steve Robillard
Donc, sur R-Pi # 2, il pourrait penser que l'adresse IP est la même que R-Pi # 1? Je suppose que je peux simplement le rafraîchir pour obtenir une nouvelle adresse IP réseau?
naboovalley
Si vous utilisez DHCP, le RPi recevra automatiquement une nouvelle adresse IP au démarrage, mais vous devez changer le nom d'hôte si vous prévoyez d'utiliser les deux dans le même sous-réseau. Si vous utilisez une adresse IP fixe, vous devez modifier à la fois l'adresse IP et le nom d'hôte
Roberto
Si je regarde mon système de fichiers ("df"), j'ai quelque chose appelé "rootfs" 2,1 Go et / dev / root 2,1 Go - ma carte SD / dev / mmcblk0 ne prend que 10 Mo. Donc, quand je copie "mmcblk0", tout mon système sera inclus? Merci les gars
naboovalley
6

Vous pouvez simplement copier avec dd comme @ me-- le suggère, mais ce n'est pas tout ce que vous avez à faire lors du clonage d'un système. Il existe également certains identificateurs système uniques qui doivent être modifiés.

Les mots de passe doivent être réinitialisés afin qu'un nouveau sel soit utilisé. Cela empêche les gens de savoir que vous avez utilisé le même mot de passe deux fois. Exécutez la passwdcommande en tant qu'utilisateur (généralement pi ) et en tant que root.

Si vous utilisez SSH, les clés SSH doivent être régénérées. C'est important par exemple, pour s'assurer que si quelqu'un vole un Raspberry Pi, il ne peut pas décrypter les communications avec l'autre. Exécutez simplement cette commande:

sudo rm /etc/ssh/ssh_host_*

Enfin et surtout, vous devez changer le nom d'hôte. Si c'est à sa valeur par défaut, c'est framboise . Si vous êtes comme moi, je préfère le nom d'hôte du Raspberry Pi, alors je le fais ssh raspberrypi. Avoir deux "raspberrypis" sur le réseau fait que cela cesse de fonctionner, donc le second devrait être renommé rasberrypi2 par exemple. Vous pouvez effectuer cette modification avec sudo raspi-config, en sélectionnant Advanced Options, puis en sélectionnant Hostname.

Fred
la source
raspi-confign'est pas disponible pour Raspbmc . Peut-être qu'une méthode manuelle de définition du nom d'hôte devrait être décrite?
Peter Mortensen
Pour référence, raspberrypi.stackexchange.com/questions/3926/… couvre la modification du nom d'hôte sous Raspbmc.
Fred
4

Le clonage d'une micro SD pour la sauvegarde ou pour déplacer votre système vers un autre RPi3 est intégré comme accessoire, au moins sur la version du système d'exploitation que j'ai eu sur la SD de démarrage de NOOBS:

  • Allez aux accessoires;
  • Hit Copy SD ;
  • Placez une carte micro SD vierge dans un support USB;
  • Placez le support dans la fente USB ouverte;
  • Choisissez le nouveau SD;
  • Hit copie.
w8mqw
la source
Ce devrait être la bonne réponse. Si facile.
Jordan
1

Vous pouvez faire exactement cela en utilisant le raspberry pi et une nouvelle carte SD de devise connectée via USB. La dernière version du logiciel Raspberry Pi a un logiciel intégré appelé SD cardcopier sous accessoires qui fait exactement cela.

Vous choisissez votre carte d'origine (donc la carte à partir de laquelle vous démarrez) comme source et la nouvelle carte vide formatée (connectée via un lecteur de carte à USB sur le pi) comme destination. Interface assez simple et cela a fonctionné pour moi la première fois. L'option de ligne de commande sur mac utilisant dd a fini par avoir un problème de panique du noyau.

sijones
la source
0

Un outil très sécurisé et fiable pour copier des choses comme les systèmes de fichiers racine (en raison des liens qui sont présents dans le système de fichiers racine) est rsync. Cet outil prendra en compte toutes les choses nécessaires comme les horodatages, les liens, les autorisations, ... Parfaitement adapté pour copier des choses comme vous voulez le faire.

GeertVc
la source
Mais je ne copie toujours que le contenu de la carte SD pour la duplication complète du système - ou dois-je inclure autre chose? Merci
naboovalley
Voir la nouvelle réponse que j'ai postée ci-dessous.
GeertVc