In Linux, come posso creare / ripristinare un'istantanea dell'immagine di tutto il mio disco?


14

Sono troppo viziato dalle utility di Windows che eseguono un'istantanea digitale dell'intera unità, da cui è possibile ripristinare in caso di arresto anomalo dell'unità. (ad es. come Time Machine per Mac OS X).

Esiste un modo simile per farlo in Linux?


1
Suppongo che tu sia viziato in Windows nello stesso modo in cui gli utenti Linux sono viziati avendo effettivamente utilità di sistema. :)

Risposte:


13

Lo strumento desiderato (che assomiglia di più a Time Machine) si chiama rsnapshot . A differenza dei normali strumenti di backup, copia solo le cose che sono cambiate e ti consente di viaggiare facilmente in molti punti nel tempo. Puoi dire quanto spazio su disco è consentito e regola il numero di snapshot mantenute entro tale limite. Uno strumento molto carino.


6

PartImage viene eseguito dalla riga di comando o come una GUI di testo. Ha un vantaggio importante rispetto a dd:

Partimage copierà solo i dati dalle porzioni utilizzate della partizione. Per velocità ed efficienza, i blocchi liberi non vengono scritti nel file di immagine. Questo è diverso dal comando 'dd', che copia anche blocchi vuoti.


6

Puoi semplicemente fare " dd if=/dev/sda of=/path/to/target/backup" se sai di avere la stanza in cui stai cercando di metterla. Puoi anche fare " dd if=/dev/sda | bzip2 > /path/to/target/backup" per comprimere al volo. Questo potrebbe richiedere del tempo però.

In alternativa, potresti " tar --preserve-permissions -cjf backup.tar.bz2 /what/to/backup" utilizzare un utente con tutte le autorizzazioni necessarie per la lettura. Fai la tua scelta.

Addendum: di recente ho acquistato un nuovo laptop, preinstallato con Vista. Ho pensato di voler conservare Vista da qualche parte, nel caso volessi provarlo a un certo punto, quindi la prima volta che ho avviato il computer (con un linux livecd), ho fatto questo:

dd if=/dev/sda | ssh 10.0.0.1 "bzip2 > ~/vistadrive.bz2"

Questo era su una rete locale veloce, ovviamente. Altrimenti sarebbe stato più prudente comprimere prima della trasmissione:

dd if=/dev/sda | bzip2 | ssh 10.0.0.1 "cat > ~/vistadrive.bz2"

Spero che trovi utile questo.

Modifica: Oops. Modificato bbin dd...


1
Ciò non includerebbe anche il settore di avvio? Ciò mi ha sempre incasinato quando si utilizza partimage per il backup di un'unità Windows.

greg, includerebbe tutto, incluso qualsiasi tabella delle partizioni e mbr
Johannes Schaub - litb

4

Uso una duplice strategia: il numero 1 è rappresentato da istantanee LVM e il numero due è rsnapshot , che utilizzo per eseguire backup temporizzati su un disco rigido esterno dedicato. L'unità disco rigido esterna è posizionata in modo da poterla facilmente strappare mentre esco dalla porta se dovesse succedere qualcosa di brutto. Non uso (ancora) un meccanismo off-site diverso da masterizzare periodicamente un'istantanea su una serie di dischi DVD crittografati e spedirli a casa di un amico in un'altra città per l'archiviazione.

Consiglio vivamente rsnapshot per il modo in cui esegue le istantanee, usando collegamenti reali per cose che non sono cambiate. Se la tua home directory diventa dannosa, puoi semplicemente prendere una copia rsnapshot e tarpipe o risincronizzarla nella nuova partizione home dopo aver reinstallato o ripristinato da un guasto dell'unità.


3

Parecchi. C'è il vecchio stile dd (1) , che è un po 'arcano; c'è dump (8) e restore (8) ; ci sono molti prodotti open source in giro, come Amanda ; e se vuoi, puoi installare ZFS e usare uno script cron per scattare istantanee periodiche, dandoti qualcosa di effettivamente identico a Time Machine (vedi il blog di Tim Foster.)

Wikipedia ha un articolo con un elenco di molte opzioni .


2

Se desideri un backup a livello di file come Time Machine, ti consiglio vivamente rsnapshot come suggerito da Norman .

Se stai cercando un backup completo dell'immagine e una soluzione di tipo ripristino, come norton ghost, ho trovato che CloneZilla funziona abbastanza bene. Avvio il CD live e quindi utilizzo un'altra macchina come server SSH per eseguire il backup / ripristinare l'immagine / le immagini da / a.

(Sono anche riuscito a far funzionare la versione live tramite l'avvio PXE per un vecchio laptop tablet che avevo senza unità CD e senza avvio di USB, ma era un sacco di problemi).

E puoi usarlo anche per macchine Windows.


1

Mi sono sempre preoccupato di usare dd quando le unità avevano dimensioni diverse. O aveva un numero diverso di teste / settori / tracce / ecc.

dd è molto utile quando si esegue l'istantanea e si esegue il reflash dello stesso disco. Soprattutto unità USB o partizioni Windows. Ma quando vado da una 500Meg a una 1500Meg, mi preoccupo.

Inoltre, quando il mio disco si guasta, mi piace essere in grado di usarlo come scusa per passare a un nuovo sistema operativo.


Detto questo, il buon vecchio catrame fa un buon lavoro! GNU-tar include le opzioni diff-tar-against-files , only-update-files-that-have-change e only-archive-files-new-than-date-date .

(Dovrei menzionare: qualche anno fa ho riscontrato un bug che mi richiedeva di scaricare e installare una versione più recente di GNU-tar . (Qualcosa a che fare con nomi di percorsi molto lunghi e volumi multipli.) Nessun grosso problema. questa è sempre un'opzione.)

Probabilmente dovresti escludere / proc , / sys e forse / var / log / lastlog o / mnt . (Di solito eseguo il backup su un'unità esterna montata sotto / mnt . Backup del backup - non così buono!)

Compreso / dev può essere utile. GNU-tar gestirà i dispositivi correttamente ( mknod ). Anche se probabilmente non utilizzerà il backup / dev durante un ripristino. (Di tanto in tanto il suo bello vedere che cosa autorizzazioni o link che aveva creato in precedenza.)

Inoltre, si potrebbe desiderare di eseguire il dump fdisk & rpm informazioni prima di eseguire il backup. Ad esempio,

/sbin/sfdisk -l /dev/sda > /....../info_sda
rpm -qa | sort > /...../info_rpms
rpm -qa --qf "%{ARCH} \t %{NAME}-%{VERSION}-%{RELEASE}\n" | sort -k2,2 > /........./info_rpms_arch

Nonché montare qualsiasi "optional" user-montato file system.


1

Ecco i passaggi completi per un altro metodo, funziona per spostarsi da un disco fisso ad un altro, e persino la clonazione di una macchina se l'hardware è simile.

Innanzitutto, crea un'immagine di un buon sistema di lavoro. Fallo come root.

# cd / 
# tar cpzf hostname.tgz / --exclude=hostname.tgz --exclude=proc --exclude=lost+found --exclude=mnt --exclude=sys --exclude=home --exclude=usr/src

Eseguire il backup delle immagini del kernel

# mount /boot
# cd /boot
# tar cpzf boot.tgz *

Avvia la macchina su cui vuoi che l'immagine venga distribuita con un cd live / cd gentoo. Montare quel disco rigido e partizionarlo in modo appropriato:

# fdisk /dev/hda
/dev/hda1  /boot
/dev/hda2  swap
/dev/hda3  /tmp
/dev/hda4  /

Aggiungi filesystem

# mke2fs /dev/hda1
# mkswap /dev/hda2
# mke2fs -j /dev/hda3
# mke2fs -j /dev/hda4

Montare unità:

# mount /dev/hda4 /mnt/new_root
# mkdir /mnt/new_root/tmp
# mkdir /mnt/new_root/boot
# mkdir /mnt/new_root/proc
# mkdir /mnt/new_root/sys
# mount /dev/hda3 /mnt/new_root/tmp
# mount /dev/hda1 /mnt/new_root/boot
# swapon /dev/hda2
# mount -t proc proc /mnt/new_root/proc

Copia sul file hostname.tgz su questa macchina.

Estrarlo nella radice della nuova macchina / mnt / new_root

# tar -xzf hostname.tgz

Chroot nel nuovo ambiente.

# chroot /mnt/new_root /bin/bash
# env-update && source /etc/profile

Verifica /boot/grub/grub.conf e / etc / fstab

Setup grub sul disco rigido:

# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install /dev/hda

Esci e smonta unità, riavvia il computer.


0

Puoi avere istantanee su Linux usando LVM, il gestore del volume logico.


1
Se si utilizza LVM, non necessariamente il caso. Se è così allora sì, questa sarebbe una buona opzione howtoforge.com/linux_lvm_snapshots
Gavin H,
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.