Creazione di un'istantanea di un sistema linux


11

Voglio fare quanto segue: salvare lo stato corrente del mio sistema operativo Linux (centOS6.5). Apporta alcune modifiche (in particolare inietta un errore e verifica alcuni servizi per verificare come si comporta quando si verifica quel particolare tipo di errore.) Quindi ripristina il sistema allo stato salvato. Non sono in grado di capire come farlo su un sistema Linux. Ho una macchina con centOS 6.5 con un filesystem ext4. Anche questo è un server fisico e non una macchina virtuale.

Qualche idea o suggerimento?


Server fisico o macchina virtuale?
steve

1
Consiglio di eseguire il sistema operativo su software di virtualizzazione come VirtualBox. Supporta perfettamente le istantanee.
Yaegashi,

È un server fisico. Devo farlo su più macchine (server fisici) e non posso cambiare la configurazione per eseguire il mio sistema operativo su un software di virtualizzazione.
bRuta,

Di solito ha bisogno di un meta layer aggiuntivo come la virtualizzazione per supportare gli snapshot di sistema. Sarebbe molto difficile far sì che i server fisici si comportino come se fossero sotto il suo controllo dal livello del firmware e del bootloader.
Yaegashi,

Risposte:


8

Lo terrei semplice e lo clonerei. Avvia un sistema live da USB (è più semplice Ubuntu da una chiavetta USB, trovo), quindi scarica il tuo disco rigido su una partizione diversa (o disco rigido esterno ecc.), Ad es.

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

dove devi sostituire /dev/sda1con la tua /partizione root ( ). Fate lo stesso con altre partizioni (come quello per /boot, /boot/efi, /home) se del caso.

Se hai bisogno di risparmiare spazio, puoi farlo

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

o, più complicato, molto più lento ma risparmiando qualche byte in più,

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 .??* *

È quindi possibile ripristinare il contrario, ad es

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

o

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

(attento a dove stai scrivendo i tuoi dati, questo cancella tutto /dev/sda1, quindi fallo bene la prima volta :-)


PS: Se ti aspetti che qualcosa vada storto, esegui il backup della tabella delle partizioni, ad esempio dd if=/dev/sda bs=64M count=2 of=/mnt/my_mounted_backup_drive/backup-sda. Durante il ripristino è necessario fare attenzione a non riscrivere troppi blocchi sul disco qui - non si può dire quanti senza guardare il layout della partizione. Ripristina fino a (non incluso) il blocco in cui inizia la tua prima partizione secondo gdisko fdisk.
Ned64,

5

È possibile utilizzare rsync per eseguire il backup dell'intero sistema.

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

C'è un fantastico articolo su Arch Linux Wiki al riguardo


È abbastanza breve per essere l'opzione migliore per me. Naturalmente, se non lo rsynchai, puoi usare quello ddche uso per il backup delle mie unità USB.
m3nda,


1

È possibile utilizzare FSArchiver , che salverà il contenuto del file system in un file compresso e ripristinerà il file system durante l'estrazione dei dati.

Ecco un esempio dalla documentazione :

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

Puoi anche utilizzare la compressione multi-thread e il ripristino è semplice:

fsarchiver restfs /mnt/backup/gentoo-rootfs.fsa id=0,dest=/dev/sda1

-1

Per tornare a uno stato precedente, è possibile montare il file system corrente su una nuova directory. Ciò monta il file system su una nuova directory root specificata dal seguente comando:

mount DIR DIR

Per ripristinare questo stato, modificare la radice del file system dalla directory specificata nel comando mount.

umount DIR

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.