Image système du système Debian en cours d'exécution?

22

Est-il possible de sauvegarder un système Debian en cours d'exécution dans une sorte de fichier image, qui pourrait simplement être réécrit sur un autre disque dur à l'aide de dd en cas de défaillance du système Debian d'origine (sauvegardé)?

Je recherche en particulier un outil directement disponible dans les référentiels, car j'ai Debian Wheezy fonctionnant sur un raspberry pi et j'ai donc besoin d'un support pour l'architecture ARM, qui est assez fiable pour les paquets des référentiels Debian.

stefan.at.wpf
la source
2
Je ne recommanderais pas d'essayer d'obtenir une copie bloc par bloc à partir d'un système de fichiers monté sur rw. La plus petite écriture peut la corrompre et vous pensez avoir une sauvegarde réalisable. Donc, mount -o remount,role lecteur que vous copiez si vous optez pour dd, dumpou similaire. La copie avec le système de fichiers avec rsyncou toute autre méthode, y compris, cpest sans danger pour le système en direct.
WhimsicalWombat

Réponses:

15

ddest bon si cela ne vous dérange pas de générer un fichier image exactement de la taille de votre disque brut. rsyncest bon si vous voulez un accès facile au niveau du fichier. Mais le moyen standard de sauvegarder un système de fichiers est dumpet restore( aptitude install dump).

Pour un périphérique comme le Raspberry Pi, je sauvegarderais comme suit, en supposant une table de partition MS-DOS et que le disque est / dev / sda:

  • dd if=/dev/sda of=sda-boot-sectors.img count=2048 pour obtenir une image de la section de démarrage du disque.
  • fdisk -lu /dev/sda >sda-partition-table.txt pour référence humaine ultérieure.
  • dump -0af sda1-root-level0.dump /dev/sda1 et répétez l'opération pour chaque partition que vous souhaitez sauvegarder.

Vous pouvez ensuite compresser le lot et le laisser dans un endroit sûr. Pour restaurer, vous devez utiliser ddpour restaurer la table de partition et les secteurs de démarrage, recharger la table de partition, créer le (s) nouveau (s) système (s) de fichiers et utiliser cd /mnt/new-filesystem; restore -rf /some-location/sda1-root-level0.dump.

Les avantages:

  • dump obtient une copie complète du système de fichiers, y compris les ACL, les attributs étendus, la propriété, les fichiers clairsemés, les attributs spéciaux du système de fichiers - tout est vidé tel quel.
  • Il ne copiera que les blocs dont vous avez besoin, en ignorant ceux qui ne sont pas utilisés.
  • C'est un outil Unix standard et lisible par de nombreux autres outils Unix.

Les inconvénients:

  • il produira des instantanés corrompus si le système de fichiers est écrit pendant le vidage
  • il est plus difficile de monter l'image sauvegardée (que vous pouvez faire avec des images disque) ou d'accéder à des fichiers individuels (que vous pouvez obtenir avec des rsyncsauvegardes).
  • Il est spécifique au type de système de fichiers. Vous pouvez vider un ext3système de fichiers et le restaurer dans un ext4seul, mais vous pouvez vider n'importe quel type de système de fichiers. La plupart des systèmes de fichiers matures ont leurs propres dumpversions. Debian standard le dumpfait ext2, ext3et ext4. Si vous utilisez un système de fichiers spécifique à Flash, vos options peuvent être différentes.
Alexios
la source
Il n'est pas indiqué dans la page de manuel dumpque le système de fichiers ne doit pas être écrit. Je veux dire, cela ressemble à une restriction raisonnable, mais c'est dommage que ce ne soit pas mentionné dans la page de manuel, afin que quelqu'un puisse faire cette erreur ...
imz - Ivan Zakharyaschev
Grâce à votre message, j'ai découvert cet outil (vidage / restauration). Je vais l'utiliser pour faire une copie d'un système de fichiers avec quelque chose comme:mkfs.ext4 /dev/sda1; mount /dev/sda1 /mnt/disk; cd /mnt/disk; dump -0af - /dev/sda5 | restore -rf -
imz - Ivan Zakharyaschev
5

À utiliser ddpour le secteur d'amorçage et rsync -aHSpour les fichiers. Vous devez exclure les systèmes de fichiers "virtuels" comme / proc / sys et tous les disques RAM (tmpfs).

Si vous souhaitez également conserver le partitionnement, vous pouvez le vider sfdiskou le recréer avec parted.

Nils
la source
Merci, cela semble très intéressant, avez-vous déjà réglé cela dans le passé? Comment puis-je créer une image complète à partir de ces parties, utilisez simplement un périphérique loopkack? (Oui, vous voulez continuer le partitionnement et ainsi de suite. Vous voulez une image prête à être écrite sur une nouvelle carte SD / disque sans autre
problème
@ stefan.at.wpf Je viens de mélanger certaines de mes solutions pour cloner des machines virtuelles, en créant des serveurs physiques (autoyast / kistart) créant un miroir raid1 à partir d'un système non miroir et la manière habituelle de répliquer des parties (statiques) du système de fichiers pour les nœuds de cluster. Je n'utilise pas ce myselv. Ma méthode serait d'installer automatiquement le nouveau serveur (y compris un client de sauvegarde) puis de restaurer via la sauvegarde le contenu de l'ancien serveur sur le nouveau serveur.
Nils
4

Pour Debian , vous n'avez vraiment besoin que de sauvegarder vos données et fichiers de configuration .

Pour sauvegarder l'état existant:

  • Sauvegardez les sélections de packages avec dpkg --get-selections > dpkg_selections.
  • Sauvegardez la base de données debconf avec sudo debconf-get-selections > debconf_selections.

Pour appliquer cela à un nouveau système:

  • Appliquez d'abord les sélections debconf avec sudo debconf-set-selections < debconf_selections.
  • Appliquer les sélections de packages avec dpkg --set-selections < dpkg_selections.
  • Installez les packages avec apt-get dselect-upgrade.

Vos données doivent être principalement dans /homeet /var(par exemple, /var/lib/mysqlpour MySQL, /var/wwwpour Apache, etc.). Vous devriez être en mesure de déterminer quelles applications sont importantes pour vous.

La configuration sera principalement dans /etc. Encore une fois, il ne devrait pas être difficile de choisir ce qui est important pour vous.

bahamat
la source
Pour se debconf-get-selectionlancerapt-get install debconf-utils
pandita
1

Je ne sais pas, si c'est bon à faire, quand le système fonctionne, mais c'est ce que je fais.

sudo dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

comme je l'ai dit, peut-être y a-t-il une meilleure solution, dans ce cas j'aimerais aussi la connaître!

emil
la source
1

J'ai essayé tellement de logiciels de sauvegarde et de restauration et je n'ai jamais été satisfait. C'est ce que je fais maintenant: j'ai un deuxième Debian installé sur un ordinateur de rechange (même Mo, carte NIC, etc.). Chaque soir, je rsync de la machine A à la machine B. Il y a des fichiers que je retiens (/ etc / network / interfaces, / etc / hosts, / etc / hostname) car je ne veux pas de conflits des deux systèmes en cours d'exécution. En fait, j'en ai des copies dans un autre dossier. Je désactive également certains services que je n'ai pas besoin d'exécuter sur la machine B (postfix, mysql, etc.). J'ai un script écrit sur la machine B qui le transformera essentiellement en machine A (remplacez les fichiers que je retenais), redémarrez la carte réseau et activez les services qui ont été désactivés. Bien sûr, la machine A doit être éteinte lorsque j'exécute le script ou il y aura des ravages. Je teste la machine B tous les mois en éteignant la machine A, en exécutant le script, et faire des tests pour vous assurer qu'il est à jour et fonctionne correctement. Il fonctionne comme un charme!

Joseph Vernice
la source
0

Découvrez Clonezilla. Je le vois dans les dépôts Debian standard. http://clonezilla.org/

Edit: Probablement pas, Clonezilla énumère les exigences sur sa première page: "Processeur X86 ou x86-64"

Tim
la source
Projet intéressant cependant, merci quand même :-)
stefan.at.wpf
0

Pour sauvegarder mon pi, je retire la carte microSD et la branche sur mon ordinateur portable. Ensuite, exécutez un ddpour produire un fichier sur mon ordinateur portable du disque entier, comme ci-dessus:

dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M
Bob
la source
2
Cela ignore littéralement la partie la plus importante de la question. La question est de savoir comment faire une image en direct d'un système et au moment où vous déplacez des disques, vous feriez mieux d'arrêter le système.
Sirens
0

Utilisez systemback. Je l'ai fait fonctionner même avec Debian Stretch. Il vous donne une belle usb de démarrage en direct avec exactement votre bureau configuré.

Peter
la source