Restauration complète du système Linux

20

Je connais bien l'utilisation de rsync pour sauvegarder divers fichiers de mon système, mais quelle est la meilleure façon de restaurer complètement une machine.

Ce que j'ai essayé dans le passé, c'est:

  1. Faire un format de base / réinstaller à partir des disques d'installation de Fedora
  2. Assurez-vous que la mise en réseau est activée
  3. Copiez tout de la sauvegarde rsync sur le dessus du système nouvellement installé

De cette façon, cela fonctionne, mais je ne pense pas que tous les packages installés fonctionnent à 100% par la suite.

Je veux pouvoir restaurer mon système avec le minimum d'efforts et tout fonctionne de la même manière qu'au moment de la sauvegarde. Aussi, si possible, installez-le sur d'autres machines et essentailly avez deux machines avec les mêmes packages et données.

Simon Foster
la source
Lorsque vous dites que vous souhaitez installer sur d'autres machines, voulez-vous dire d'autres machines identiques ou plus comme un ordinateur de bureau et un ordinateur portable?
Ichorus
le matériel serait différent mais voudrait les mêmes progiciels sur les deux
Simon Foster

Réponses:

17

Voici ce que j'ai fait (cela suppose un seul disque, à / dev / sda)

  • utilisez dd pour sauvegarder le MBR et la table de partition: "dd bs = 512 count = 1 if = / dev / sda of = / backups / sda.layout"

  • utilisez rsync pour copier le tout avec quelque chose comme: "rsync -axvPH --numeric-ids ..."

Lors de la restauration, je fais ceci:

  • démarrer la machine cible avec sysrescuecd , j'aurai généralement le fichier 'sda.layout' sur une clé USB.

  • restaurer la table MBR / partition avec dd: "dd bs = 512 count = 1 if = / path / to / sda.layout of = / dev / sda"

  • Utilisez partprobe (merci le commentateur Mark) pour que le noyau relise la table de partition.

  • Montez toutes les différentes partitions sous / restore /. Je fais les points de montage identiques sous la restauration, donc si j'ai / boot, / var sur ma source, je me retrouve avec / restore / boot, / restore / var, etc.

  • utilisez rsync pour restaurer le tout.

kbyrd
la source
3
Je l'ai fait plusieurs fois et j'ai l'avantage d'utiliser des commandes CLI Linux standard. J'utilise rsnapshot, un script perl autour de rsync pour effectuer des sauvegardes sur un serveur central. Ensuite, resynchronisez le tout après le démarrage à partir de sysrescuecd et la suppression de la table des partitions. BTW, "partprobe" relira la table de partition
Mark Porter
OK, cela peut être vu comme un vil hack mais comme vous pouvez demander au noyau de relire la table de partition en émettant un sysctl () comme le fait fdisk, vous pourriez tout aussi bien avoir fdisk - qui contrairement à partprobe est toujours là dans mon expérience - faites it: fdisk / dev / yourdisk << EOF w EOF
Bernd Haug
Merci pour les suggestions de tous, je savais qu'il devait y avoir une meilleure solution. Je vais essayer ces suggestions et voir ce qui fonctionne le mieux pour moi.
Simon Foster
3
N'oubliez pas le compte avec dd! "dd bs = 512 if = / dev / sda of = / backups / sda.layout count = 1" and "dd bs = 512 if = / path / to / sda.layout = / dev / sda count = 1"
Steven
@Steven: Merde! Merci pour la capture. Puis-je voter un commentaire?
kbyrd
6

Je ne clone jamais entièrement des systèmes. Vous ne savez jamais ce qui peut changer, et votre image clonée système est déjà obsolète au moment où un changement se produit. La meilleure façon de le faire est d'établir une procédure qui vous permet de produire des systèmes fonctionnellement identiques. Une possibilité est quelque chose comme Kickstart, ou AutoYaST ou des outils similaires. Conservez de bonnes sauvegardes de votre configuration et utilisez idéalement un système de gestion de configuration tel que Bcfg2, Puppet ou CFEngine pour tout configurer au lieu de le faire à la main. Ensuite, lorsque vous devez créer un nouveau système similaire à un autre que vous avez, ou recréer un système existant, c'est une procédure simple et bien définie.

Kamil Kisiel
la source
3

Cela demanderait plus d'efforts à l'avance, mais Kickstart et Revisor vous permettent de personnaliser une installation et de l'utiliser sur d'autres machines. Vous pouvez inclure des versions personnalisées de vos fichiers de paramètres.

Vous pouvez également envisager de conserver votre répertoire personnel sur une partition distincte. Vous pouvez laisser cette partition seule lors d'une nouvelle installation sur une autre partition.

dkaylor
la source
2

Prenez une copie du CD de récupération du système et après votre installation minimale initiale, démarrez-le, montez et chrootez sur votre disque, puis faites la rsync. Une fois terminé, vous devrez peut-être exécuter update-grub pour le faire démarrer à partir du périphérique de démarrage et du noyau appropriés.

pgs
la source
2

J'ai toujours pensé que la manière Gentoo d'installer un nouveau système (à partir d'une sauvegarde ou autre) était la meilleure en raison de sa simplicité.

  1. Créez un système minimal et fonctionnel.
  2. Chargez le système de travail comme un disque dur dans un livecd.
  3. Tarez le système de fichiers et enregistrez quelque part.
  4. Chargez le système cible avec un livecd.
  5. Préparez le disque dur cible et montez-le.
  6. Désinstaller le disque dur monté.
  7. Entrez chroot.
  8. Configurez le chargeur de démarrage et d'autres choses dépendant du système.
  9. Redémarrez et partez.
  10. Installez un nouveau logiciel / copiez les dossiers utilisateur / ajoutez d'autres fichiers si nécessaire.
andrewd18
la source
2

Essayez clonezilla live cd. Vous pouvez démarrer dans une session en direct et créer une image de votre machine sans rien installer. Vous avez ensuite la possibilité de stocker la copie de l'image sur un partage réseau ou une machine distante, etc.

TimK
la source
0

Si c'est exactement la même machine, je voudrais juste utiliser ddpour créer une image disque, puis la réimaginer si nécessaire (en changeant éventuellement certaines configurations par la suite si nécessaire).

Si vous changez de matériel, j'ai réussi à créer une archive tar ou une sauvegarde rsync complète de la racine du système de fichiers. Je ne sais pas pourquoi vous auriez d'abord besoin d'une installation complète - tant que vous effectuez une sauvegarde complète, l'installation de base de Fedora ne devrait pas être une condition préalable.

Tim
la source
0

Votre procédure peut causer de nombreux problèmes et doit être évitée.

Il existe deux méthodes principales recommandées pour y parvenir, et une troisième si vous essayez uniquement de créer un environnement de développement.

Imagerie

Si le matériel sur lequel vous restaurez TO est le même ou assez similaire, utilisez un outil d'imagerie de disque pour faire une copie de l'ensemble du disque dur ou de la baie. Lorsque vous souhaitez restaurer, il vous suffit de recréer l'image des machines en question avec cette image. Si vous effectuez une image sur plusieurs machines, sachez que vous devrez mettre à jour tous les paramètres spécifiques à la machine sur les autres appareils (nom d'hôte, adresse IP statique, etc.) afin qu'ils n'entrent pas en conflit les uns avec les autres.

Pour faire l'imagerie réelle, je recommanderais tout outil ou produit capable de cloner des disques durs.

Configuration / Sauvegardes du répertoire personnel

Sur votre machine principale, sauvegardez régulièrement (avec la méthode que vous souhaitez) le répertoire (ou autre) suivant dont vous avez besoin:

/ home - Tous les paramètres, documents et fichiers personnels des utilisateurs
/ etc - configurations
/ opt - logiciel spécial non installé via le gestionnaire de paquets
/ usr / local - logiciel spécial non installé via le gestionnaire de paquets
/ var - journaux et autres

Lors de la restauration, réinstallez le système d'exploitation sur les machines en question, puis copiez chacun d'eux (ou les fichiers appropriés uniquement) à son emplacement approprié.

Machines virtuelles avec instantanés

Créez une machine virtuelle dans VMWare (ou tout ce que vous préférez). Lorsqu'il est configuré comme vous le souhaitez, créez un instantané. Cet instantané peut ensuite être facilement restauré sur n'importe quel nombre de machines virtuelles nouvelles ou existantes.

En général, vous ne devez sauvegarder que les données et les configurations (quelle que soit la manière dont vous les définissez). Le système d'exploitation et les logiciels peuvent être reconstruits à tout moment de manière triviale: seul votre propre contenu a de la valeur. Si cette configuration est destinée au développement et que vous devez garantir un environnement identique (au lieu de simplement remettre les choses en marche), les instantanés dans une machine virtuelle sont vraiment votre meilleur choix.

L'imagerie est la solution de force brute. Si vous le pouvez, sauvegardez simplement vos données et ne vous inquiétez pas pour le système d'exploitation lui-même. Essayer de le restaurer entièrement demande des ennuis.

Si vous pouvez clarifier votre intention finale ici, je peux fournir une solution plus détaillée.

Rym
la source
0

Puisque vous dites que "le matériel sera différent", SystemImager peut être très utile.

Ce n'est qu'un tas de scripts d'encapsulation autour de PXE et Rsync. Par conséquent, la «sauvegarde» qu'elle crée n'est qu'une structure de répertoires complète de votre serveur Linux sauvegardé. Vous pouvez "cd" dans ce répertoire et changer les choses pendant que vous alimentez. (SystemImager gère lui-même la modification des paramètres réseau lorsque vous poussez l'image vers l'extérieur.)

Vous pouvez chroot sur votre serveur sauvegardé et exécuter yum ou apte à installer un logiciel avant de pousser l'image.

Modifier: vous pouvez jeter un œil au script SI qui crée des partitions / volumes logiques et le modifier en fonction de la taille du disque des machines cibles. Vous pouvez également ajouter / supprimer des modules du noyau.

Pas maintenant
la source
0

J'ai eu beaucoup de chance avec Mondo Rescue. Fondamentalement, il sauvegarde tous vos fichiers et partitions sur un CD de démarrage pour une utilisation ultérieure. Il peut gérer les modifications des partitions et des lecteurs.

http://www.mondorescue.org/

JD Frias
la source
0
  • Le moyen le plus sûr est de cloner tous les disques ou au moins les partitions pertinentes et de les restaurer à l'aide d'un Live CD.

  • Une autre méthode plus efficace consiste à utiliser le vidage (xfsdump pour XFS), mais dans ce cas, vous devrez recréer (formater) les partitions à la main. N'oubliez pas de les créer avec les mêmes paramètres, notamment UUID et LABEL.

  • Vous pouvez également utiliser tar avec le --xattrs paramètre pour enregistrer les attributs étendus de chaque fichier.

Cristian Ciupitu
la source
1
Rsync moderne sur Linux a respectivement -X et -A pour les attributs étendus et les ACL.
kbyrd
0

partimage et partclone (parties de Clonezilla) sont des utilitaires utiles pour créer des images système complètes.

Comme vous l'avez identifié, les images système complètes ne sont pas nécessairement portables sur le système: généralement à cause des noms de périphériques.

Cela peut être aussi simple que de réinstaller GRUB (de préférence sur une partition séparée / de démarrage) et le MBR après l'imagerie (avec par exemple un LiveCD).

Une autre approche consiste à utiliser des outils de gestion de la configuration pour définir des politiques qui sont appliquées à une image de base (comme les boîtes de base Vagrant); et séparer les sauvegardes de données dans un stockage de blocs et / ou d'objets (EBS / S3, Openstack Block Storage / Openstack Object Storage)

Wes Turner
la source