Création d'un instantané d'un système Linux

11

Je veux faire ce qui suit - Enregistrer l'état actuel de mon système d'exploitation Linux (centOS6.5). Faites quelques changements (injectez plus spécifiquement un défaut et testez un service pour vérifier comment il se comporte lorsque ce type particulier de défaut se produit.) Ensuite, restaurez le système à l'état enregistré. Je ne suis pas en mesure de comprendre comment procéder sur un système Linux. J'ai une machine avec centOS 6.5 avec un système de fichiers ext4. Il s'agit également d'un serveur physique et non d'une machine virtuelle.

Des idées ou des suggestions?

bRuta
la source
Serveur physique ou machine virtuelle?
steve
1
Je recommande d'exécuter votre système d'exploitation sur un logiciel de virtualisation comme VirtualBox. Il prend parfaitement en charge les instantanés.
yaegashi
Il s'agit d'un serveur physique. Je dois le faire sur plusieurs machines (serveurs physiques) et je ne peux pas modifier la configuration pour exécuter mon système d'exploitation sur un logiciel de virtualisation.
bRuta
Il a généralement besoin d'une méta-couche supplémentaire comme la virtualisation pour prendre en charge les instantanés du système. Il serait très difficile de faire en sorte que les serveurs physiques se comportent comme s'ils étaient contrôlés par le micrologiciel et le chargeur de démarrage.
yaegashi

Réponses:

8

Je voudrais rester simple et le cloner. Démarrez un système en direct à partir d'USB (le plus simple est Ubuntu à partir d'une clé USB, je trouve), puis videz votre disque dur sur une autre partition (ou disque dur externe, etc.), par exemple

dd if=/dev/sda1 bs=64M of=/mnt/my_mounted_backup_drive/backup-sda1

où vous devez remplacer /dev/sda1par votre /partition root ( ). Faites la même chose avec d' autres partitions (comme celui pour /boot, /boot/efi, /home) le cas échéant.

Si vous avez besoin de gagner de l'espace, vous pouvez le faire

dd if=/dev/sda1 bs=64M | gzip --fast | dd bs=32M of=/mnt/my_mounted_backup_drive/backup-sda1.gz

ou, plus compliqué, beaucoup plus lent mais en économisant quelques octets de plus,

mkdir -p /mnt/linux
mount -o ro /dev/sda1 /mnt/linux
cd /mnt/linux
tar cvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz .??* *

Vous pouvez ensuite restaurer l'inverse, par exemple

mkdir -p /mnt/linux
mount /dev/sda1 /mnt/linux
cd /mnt/linux
tar xvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz

ou

dd /mnt/my_mounted_backup_drive/backup-sda1.gz bs=32M | gzip --decompress | dd bs=64M of=/dev/sda1

(attention où vous écrivez vos données, cela supprime tout /dev/sda1, alors faites les bonnes choses la première fois :-)

Ned64
la source
PS: Si vous vous attendez à ce que quelque chose se passe vraiment mal, sauvegardez la table de partition, comme dd if=/dev/sda bs=64M count=2 of=/mnt/my_mounted_backup_drive/backup-sda. Lors de la restauration, vous devez faire attention à ne pas écrire trop de blocs sur le disque ici - ne peut pas dire combien sans regarder la disposition de votre partition. Restaurez (sans inclure) le bloc où votre première partition démarre selon gdiskou fdisk.
Ned64
5

Vous pouvez utiliser rsync pour sauvegarder l'intégralité du système.

rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder

Il y a un article génial sur Arch Linux Wiki à ce sujet

Hugo Rodrigues
la source
C'est assez court pour être la meilleure option pour moi. Bien sûr, si vous n'en avez pas, rsyncvous pouvez utiliser ce que ddj'utilise pour sauvegarder mes lecteurs USB.
m3nda
1

Vous pouvez utiliser FSArchiver , qui enregistrera le contenu du système de fichiers dans un fichier compressé et restaurera le système de fichiers lors de l'extraction des données.

Voici un exemple tiré de la documentation :

fsarchiver savefs /mnt/backup/gentoo-rootfs.fsa /dev/sda1

Vous pouvez également utiliser la compression multi-thread, et la restauration est simple:

fsarchiver restfs /mnt/backup/gentoo-rootfs.fsa id=0,dest=/dev/sda1
Paulo Almeida
la source
-1

Afin de revenir à un état précédent, vous pouvez monter le système de fichiers actuel dans un nouveau répertoire. Cela monte le système de fichiers dans un nouveau répertoire racine spécifié par la commande suivante:

mount DIR DIR

Pour restaurer cet état, changez la racine du système de fichiers à partir du répertoire spécifié dans la commande mount.

umount DIR

user346623
la source