Cette question répond à la question de savoir comment utiliser un ordinateur externe pour créer une sauvegarde de mon RPi.
Je me demande si je peux créer une image de sauvegarde de la carte SD actuellement utilisée et la copier dans un fichier sur un périphérique de stockage USB. Est-ce possible? Sinon, y a-t-il un moyen de créer une sauvegarde d'un RPi sans impliquer un autre ordinateur?
dd
, regardez dansrsync
.dd
copie avec une taille de bloc appropriée seront probablement les plus rapides pour une "nouvelle" copie. Effectuer une copie fichier par fichier sur un support flash / SD est probablement une mauvaise idée.Réponses:
Voici une introduction à utiliser
rsync
pour la sauvegarde sur le Pi. Une fois la sauvegarde initiale créée, la maintenir à jour de cette façon est beaucoup plus rapide que d'extraire constamment l'image entière. Vous pouvez le faire sur un disque dur local ou sur un réseau.En fait, vous ne voulez pas qu'une copie complète d'un système en cours d'exécution soit sauvegardée, car certains éléments apparents dans le système de fichiers n'existent qu'au moment de l'exécution. Inclure cela dans une sauvegarde puis l'utiliser pour recréer une image ultérieurement peut créer des problèmes pour vous.
Il y a aussi d'autres exceptions.
rsync
peut accepter une liste de modèles ( glob ) à exclure, et ceux-ci peuvent être lus à partir d'un fichier. Commençons par ce qui devrait se trouver dans un tel fichier. Notez que les entrées sont de la forme/directory/*
et non/directory
. C’est parce que nous voulons qu’ils existent, mais nous ne voulons rien y copier.Ceux-ci n'existent pas vraiment sur le disque. Ils constituent une interface avec le noyau, qui les crée et les maintient en mémoire . Si vous les copiez puis les recopiez dans un système et que vous l'amorcez, cela n'aura (au mieux) aucun sens, car le noyau les utilise comme points de montage pour les interfaces [Si vous voulez voir ce qui se passe lorsque vous montez une partition de système de fichiers sur un répertoire contenant des données, essayez. Cela fonctionne et ne fera aucun mal, mais ce qui était dans le répertoire est maintenant inaccessible.]
Notez qu'il est essentiel que les points de montage
/sys
et/proc
existent. Mais ils ne devraient rien contenir. Prochain:Le
dev
répertoire n’est pas tout à fait la même choseproc
etsys
pour nos besoins. Si vous pensez que vous devez enregistrer ceci afin que vous puissiez avoir les mêmes nœuds de périphérique dans votre sauvegarde, vous vous trompez . Ne te dérange pas. Ne pas copierdev
. Il y a longtemps, Linux fonctionnait de la sorte, mais ce n'est plus le cas.C'est en quelque sorte un cas particulier avec la plupart (peut-être toutes) des distributions spécifiques à Pi, telles que Raspbian. C'est en fait un point de montage pour la première partition, vfat. Nous allons traiter cela séparément. Quoi que vous fassiez, ne vous inquiétez pas de l'inclure ici, car encore une fois, c'est un point de montage.
/run
généralement pas sur le disque, c’est en mémoire./tmp
Cela pourrait peut -être l'être aussi (cela épargnerait un peu d'action de la carte SD), mais dans tous les cas, comme l'indiquent leurs noms, ce ne sont pas des espaces pour stocker des données persistantes. Les applications qui les utilisent s’attendent à ce qu’elles puissent être supprimées à chaque démarrage.Celles-ci sont importantes, en particulier si vous envisagez de sauvegarder sur un disque dur ou une clé USB et que le périphérique est inséré
/mnt
ou/media
(le montage automatique utilise généralement cette dernière), car si vous n'excluez pas l'emplacement de ces périphériques dans le système de fichiers, créez une boucle en sauvegardant le contenu du lecteur sur lui-même, jusqu'à ce qu'il manque d'espace. Je pense que celarsync
pourrait être assez intelligent pour repérer quelque chose qui est idiot mais essayez d'éviter de tester les lieux.Sur la sauvegarde actuelle: Créez un répertoire sur le disque dur, le périphérique USB, etc. montés localement, par exemple "pi_backup". Vous pouvez également sauvegarder sur un emplacement distant via
ssh
(voir ci-dessous) ou à l'aide d'un système de fichiers monté sur le réseau, mais cela prendra probablement un certain temps la première fois.Si le fichier contenant la liste à exclure est
/rsync-exclude.txt
1 et que votre lecteur l’est/mnt/usbhd
, pour effectuer la sauvegarde proprement dite:Notez qu'il y a un slash final
pi_backup/
.Cela prendra un certain temps et produira beaucoup de résultats (si vous voulez examiner cela dans un journal, ajoutez-le
> rsync.log
).--delete
n'a pas de sens la première fois, mais pour garder la sauvegarde à jour, utilisez-la. Cela garantit que les éléments que vous avez ultérieurement supprimés sur le Pi sont également supprimés de votre sauvegarde. Lesa
ensembles récursivité dans les répertoires et vérifie tous les attributs de fichier correspondance.-H
est de conserver les liens durs 2 ,v
est pour verbose c'est pourquoi vous obtenez une sortie (sinon,rsync
c'est calme). Voirman rsync
pour plus.Il existe un raccourci par lequel vous pouvez ignorer le
--exclude-from
fichier. Si vous êtes certain que tout ce que vous ne voulez pas copier (/tmp
etc.) se trouve sur des systèmes de fichiers distincts, vous pouvez simplement utiliser:-x
a été inséré. C'est la forme abrégée de--one-file-system
, qui indique dersync
ne pas dépasser les limites du système de fichiers. Personnellement, je préfère le--exclude-from
, mais par exemple, Raspbian par défaut,--one-file-system
fonctionnera bien. Vous pouvez utiliser les deux si vous voulez être-x
prudent: DCe n'est pas une sauvegarde complète. C’est suffisant si vous n’avez rien inséré
boot
et que vous pouvez utiliser la sauvegarde pour restaurer le système en collant la carte sur un ordinateur et en exécutant:Vous pouvez également faire cela avec une carte avec une nouvelle image dessus (en supposant que ce soit la même chose que votre image de base) bien que cela soit un peu inefficace si vous devez créer une image (car vous allez ensuite en écraser la majeure partie). Vous pouvez également connecter une autre carte SD via un adaptateur USB contenant une telle image et utiliser la méthode ci-dessus pour conserver une carte dupliquée.
Si vous avez inséré des éléments
/boot
(par exemple, un noyau personnalisé),/boot/config.txt
vous devrez également les sauvegarder (assez simple - il n’ya pas grand-chose à faire). Il suffit de le faire séparément, et lors de la restauration, ces éléments sont intégrés à la première partition.Voir ici si vous souhaitez créer une image vierge de style Raspbian dans laquelle vous pourrez ensuite effectuer une sauvegarde. Vous pouvez utiliser une méthodologie similaire pour créer une carte de style Raspbian vide. Simplement au lieu de gérer un
.img
fichier, vous utiliseriez un périphérique réel (par exemple/dev/sdb
), ce qui signifie que tout ce que vous avez à faire est de créer la table de partitionfdisk
, puis format/dev/sdb1
etsdb2
(ou autre) avecmkfs
.Mais copier toute l'image est plus facile! Pourquoi s'embêter avec ça?
Ce n'est pas si dur; J'ai restauré une carte vierge (formatée selon ce dernier lien) en 10 minutes. Oui,
dd
il est plus simple d’ utiliser l’ensemble (si vous trouvez des mots confus, par exemple ...), MAIS cela prend un certain temps à chaque fois que vous souhaitez mettre à jour votre sauvegarde, car vous devez le faire à 100% à chaque fois. Utiliserrsync
, une fois qu'une sauvegarde existe, la mettre à jour est beaucoup plus rapide, vous pouvez donc l'installer sans douleur tous les jours via cron. Sur un réseau même. Toutes les six heures. Plus vous le faites souvent, moins cela prendra de temps.rsync
viassh
Voici un exemple:
"Options" serait, par exemple,
-av --delete --exclude-from=/rsync-exclude.txt
et "options ssh" est ce que vous utilisez normalement (le cas échéant). Vous devez avoir un accès root via lessh
faire aux fins d'une sauvegarde du système (définiPermitRootLogin=yes
dans/etc/ssh/sshd_config
et redémarrez le serveur).1 Vous devriez conserver ce fichier. Vous pouvez y mettre des commentaires sur les lignes commençant par
#
ou;
. Cela pourrait inclure larsync
commande réelle , qui peut être copiée plus tard pour que vous n'ayez pas à vous en souvenir à chaque fois.2 Merci à Kris de l'avoir signalé,
rsync
ne le fait pas automatiquement.la source
mkdir /tmp/backupable && mount --bind / /tmp/backupable
et rsync cela? Cela présente également l’avantage de sauvegarder toutes les données stockées dans des endroits "occultés" par quelque chose qui y est monté.--exclude-from
est une meilleure idée. Si vous en avez le temps, vous pouvez rédiger votre réponse séparément. Vous avez mon vote et je peux vous en référer. Cette réponse est assez longue..img
vous pouvez; ceci et cela devrait aider à expliquer comment ils sont structurés et peuvent être créés.Un script de travail de la communauté des framboises fait par un membre là-bas.
Vous pouvez réutiliser et modifier le code comme bon vous semble. Il est bien documenté et explicite.
Envisagez d'ajouter des commentaires sur le forum d'origine ou de publier votre propre version pour aider à la maturation du contenu. Prenez un peu donner un peu.
* Et merci d'avoir rendu AndersW (script Cliquez pour le GIT)
la source
rsnapshot
sons promoisingrsync
est le chemin à parcourir; quand j'aurai le temps demain j'ajouterai une réponse.rsnapshot
vaut également la peine d’enquêter.J'ai adapté @goldilocks answer sur rsync pour la sauvegarde sur le pi. Je sauvegarde sur une
ext4
partition d'un disque dur monté sur le Pi. Si le disque dur n'est pas monté, rsync serait copié dans le répertoire de montage (jusqu'à ce que la carte SD soit pleine). Si le disque dur n'est pas monté enrw
mode, de nombreux messages d'erreur sont générés. Aucune de ces méthodes n’est souhaitable, je vérifie donc que ma partition est montée enrw
mode avant de continuer.NOTE 2015-03-03 J'ai modifié ma réponse pour copier avec précision les liens physiques. L'original a fonctionné, mais a converti de nombreux liens fixes en fichiers. En plus de gaspiller de l'espace, cela compromet de nombreuses utilisations qui supposent que les liens physiques sont en place. (Mon image actuelle contient 869 liens, dont beaucoup dans Raspbian même.)
Mon script pour faire cela suit. (Ma partition est
PiData
montée sur/mnt/PiData
Restaurez (ou mettez à jour un autre Pi) avec les éléments suivants: -
J'ai amélioré le
rsync-exclude.txt
pour éliminer les fichiers inutiles.Le premier groupe est constitué des répertoires documentés par @goldilocks https://raspberrypi.stackexchange.com/users/5538/
Le deuxième groupe est constitué des fichiers et des répertoires créés par OS X lorsque j'accède à mon Pi en utilisant AFP (Apple Filing Protocol). (Celles-ci sont normalement invisibles sous OS X, mais pas sous Raspbian. En tout état de cause, il n'est pas nécessaire de faire une sauvegarde.) Même si vous n'utilisez jamais AFP, cela ne fera aucun mal.
Le troisième groupe est constitué des fichiers qui n'ont pas besoin d'être sauvegardés (et certainement pas copiés sur un autre Pi). Exemples fake-hwclock.data, rapports RPi-Monitor. Vous aurez probablement d'autres.
la source
J'ai trois PIS qui fonctionnent dans mon réseau local et j'ai besoin de les sauvegarder sur une base régulière avec cron lorsqu'ils sont opérationnels. C'est pourquoi j'ai créé un script capable de créer et de restaurer des sauvegardes dd, tar et rsync. Je préfère utiliser rsync pour mes sauvegardes mais d’autres préfèrent dd ou tar. Il est déjà utilisé par beaucoup de gens. J'espère que c'est utile pour les autres aussi :-) raspibackup - Raspberry crée des sauvegardes de lui-même
la source
Voici notre outil stable à cette fin: https://github.com/aktos-io/aktos-dcs-tools
Cet outil est écrit
make ssh
connexions,make backup-root
,make mount-root
des endroits éloignés à l' esprit d'abord, puis des sessions locales sont ajoutées. Donc, il prend en charge les sauvegardes locales, les sauvegardes à distance directes, les sauvegardes à distance proxy. Les sauvegardes sont effectuées de manière incrémentielle (seuls les diff sont transférés) et les répertoires de sauvegarde sont autonomes (il suffit de choisir un répertoire / une version à restaurer, tout répertoire ayant une sauvegarde complète). Bien sûr, vous avez des versions (backup.last-0 est la plus récente). Vous pouvez interrompre le processus de sauvegarde à tout moment et continuer plus tard.Voici les instructions pour votre problème spécifique:
MODIFIER
Une nouvelle cible est maintenant ajoutée: vous pouvez créer une carte SD physique à partir de vos sauvegardes en une seule commande:
Suivez les instructions, créez votre carte SD, démarrez RaspberryPi avec cette nouvelle carte SD.
la source
Voici une approche complètement différente. Vous pouvez utiliser LVM ( L ogique V olume M pour faire des sauvegardes cohérentes de GESTIONNAIRE). Outre d'autres améliorations telles que l'ajout, l'expansion et la réduction de l'espace de stockage ou la restauration du système d'exploitation à un état antérieur à partir d'un instantané, vous pouvez également effectuer des sauvegardes. Vous ne vous inquiétez pas des fichiers dynamiques modifiés lors de la sauvegarde, de la configuration des systèmes de fichiers en lecture seule, de l’exclusion de répertoires spécifiques ou de quelque chose d’autre. Avec LVM, vous créez simplement un instantané, montez cet instantané et sauvegardez-le avec la méthode que vous préférez. Vous pouvez faire une copie avec
cp -a
, faire un miroir avecrsync
, créer une archive avectar
ou créer une image avecdd
. En supposant que vous ayez monté un périphérique de sauvegarde,/mnt/usbhd/pi_backup/
vous pouvez par exemple:Il suffit d’un petit effort pour configurer LVM . Pour ce faire, vous pouvez consulter les sauvegardes et instantanés faciles d’un système en cours d’exécution avec LVM .
la source
J'ai trouvé un outil de sauvegarde permettant de créer des images.
Il a également des utilitaires pour monter et réduire les images.
Cela peut être utile aux autres
La documentation qui l'accompagne est très brève et je note ce qui suit: -
ext4
partition formatée sur votre Pi en/mnt
ou/media
(tout format autorisant des fichiers volumineux et pris en charge par Pi, par exemple exFAT ou un lecteur réseau peut être utilisé)./mnt/Image/BusterBackup.img
J'ai légèrement modifié l'original (pour copier des points de montage), afin de calculer correctement les décalages et les tailles de partition et d'ajouter quelques commentaires.
la source
Ouvrez le terminal et tapez 'lsblk -f'.
Cela devrait montrer tous les périphériques de stockage connectés.
Puis tapez 'dd if = / dev / [le NOM de votre carte SD] bs = 1M'.
Cela prendra un certain temps, vous voudrez peut-être l'exécuter en arrière-plan.
C’est la même chose que vous sauvegardez votre carte SD sous Linux.
la source