Programma di interfaccia grafica per creare un'immagine di backup della partizione non più grande dei suoi file?


8

Mi piace 'Disks' ( gnome-disk-utility) e la sua capacità di creare backup di partizioni di sistema.

inserisci qui la descrizione dell'immagine

Ma a un certo punto ho letto su Internet un programma che avrebbe creato immagini non grandi come l'intera partizione, ma solo grandi come i file su di essa. Ora non riesco a trovarlo di nuovo.

Esiste una tale utilità?


3
CloneZilla, forse?
Muru,

1
A mio avviso, clonezilla può essere eseguito solo come sessione live. Ho modificato per specificare che sto cercando un programma che può essere installato ed eseguito da un sistema operativo, sto usando più Ubuntus e preferisco questa soluzione

Risposte:


9

La seguente risposta utilizza una TUI , non una soluzione GUI :

A seconda del caso d'uso (lo uso per eseguire il backup del sistema) è possibile utilizzare CloneZilla Live . Può creare:

  • immagini sparse ,
  • immagini compresse di:
    • interi sistemi,
    • intere unità
    • semplicemente singole partizioni.

I principali vantaggi sono:

  • che si avvia da:
  • viene fornito con un proprio sistema operativo (basato su Ubuntu)
  • può eseguire esatti backup del sistema a freddo che possono essere facilmente ripristinati.

Oltre a tutte queste chicche, può anche copiare MBR.

Se un backup del sistema freddo non è quello che stai cercando, puoi comunque utilizzare la tecnologia su cui si basa CloneZilla e cioè partclone.


1
Ho modificato per specificare che sto cercando un programma GUI che può essere installato ed eseguito da un sistema operativo, sto usando più Ubuntus e preferisco questa soluzione

come installare pyclonezilla? non una voce di google per questa domanda

1
Sono stato troppo veloce per indicare la GUI: non funziona. Solo CLI! Eliminerò la mia risposta dopo aver lasciato una nota che hai letto questo.
Fabby,

1
Poiché non esiste alcun programma, sembra soddisfare entrambe le condizioni: 1) Avere una GUI simile a "Dischi"; 2) Crea un'immagine del disco grande quanto lo spazio utilizzato, non ha senso eliminare la tua risposta. Le risposte della CLI alle domande della GUI sono generalmente presentate qui e spesso accettate, con buone ragioni. Stavo solo cercando di spingere per quello che volevo.

1
: DI farebbe un backup e poi si ridurrebbe ... ;-)
Fabby,

4

Il raggiungimento di immagini disco più piccole viene in genere eseguito mediante il modo di non copiare blocchi a zero uscite dal file system iniziale nell'immagine. Il concetto si chiama spazio sparse in archivi o puching buchi nei file, e il vostro file system host deve sostenerlo. un po 'di riga di comando ma prova questo:

sudo apt-get install virt-manager qemu-utils 

E poi una volta installato è possibile utilizzare:

qemu-img convert -f raw -O raw  /dev/sdX /home/<user>/Ubuntu.img

Questo creerà un'immagine sparsa (gli zeri nel file non sono scritti) del tuo disco. dove -f = formato, -O formato di output. sdX il disco (può usare anche le partizioni). Il programma ha funzionalità avanzate come istantanee e diversi formati di output (vdi, vmdk, ecc.). Il luogo in cui si salva l'immagine deve supportare file sparsi , altrimenti la dimensione sarà altrettanto grande, poiché gli zeri nella partizione verranno scritti sul disco. E per sfruttarlo al meglio, esegui un programma come sfillo zerofreetrovato in apt sulla partizione, perché lo spazio libero non significa sempre spazio zero e vuoi massimizzare la quantità di spazio zero sul file system.

Punti ninja bonus. Dato che Linux pensa ai dischi come "file", allora puoi anche usare semplicemente cp, a condizione che la partizione di output in cui parcheggi il file conosca i file sparsi.

sudo cp --sparse=always /dev/sdX /home/<user>/Ubuntu.img

Che creerà una copia grezza per mezzo di cp ..

Esempi di filesystem che supportano lo sparse: ext4, btrfs, xfs, ntfs (ntfs-3g tuttavia potrebbe non consentire scritture sparse).

Esempi di filesystem che non lo fanno: fat32.


Ho modificato per specificare che sto cercando un programma GUI che può essere installato ed eseguito da un sistema operativo, sto usando più Ubuntus e preferisco questa soluzione

quale sarebbe il comando per ripristinare l'immagine?

Di solito nelle server farm non abbiamo molto nelle opzioni della GUI e costruiamo script attorno a detti comandi. Questo è il motivo per cui la riga di comando è generalmente più completa / potente su Unix. La riconversione è altrettanto facile come invertendo i parametri .. sudo cp /home/<user>/Ubuntu.img /dev/sdX, o se avete voglia dd, sudo dd if=/home/<user>/Ubuntu.img of=/dev/sdX. Stessa cosa con qemu-img convert .. Se dici, vuoi piantare una macchina virtuale su hardware reale. Quando riscrive, scriverà zeri sul disco, quindi non farai analisi , poiché deve indirizzare correttamente la geometria della partizione.
user283885,

1
Capisco il tuo punto e mi scuso che non sono a conoscenza di strumenti della GUI adatti alle tue esigenze. Ho solo pensato che almeno qualcosa di secondo potrebbe esserti utile.
user283885,

1
Benvenuti da questa parte della recinzione. Il motivo per cui ho indicato le server farm è dovuto al modo in cui la maggior parte dello sviluppo viene eseguita di recente. Ad esempio, qemu-img è un'utilità di un progetto molto più ampio (openstack, avviato da redhat, rackspace e nasa). Hai queste grandi aziende che creano software per adattarsi ai loro data center e poi hai ragazzi come noi che si affidano a questo sforzo. Certo che funziona, ma nel migliore dei casi è spartano. Per ora, il meglio che posso fare è condividere il know how con gli altri.
user283885

4

Poiché non sembra esserci alcun programma che da solo soddisferebbe le due condizioni:

1) Avere una GUI simile a "Dischi";

2) Crea un'immagine del disco grande quanto lo spazio utilizzato,

Stavo pensando a una soluzione piuttosto semplice, ma una che coinvolge due programmi GUI, molto comuni in Ubuntu:

Uno sarebbe lo stesso 'Disks' (gnome-disk-utility) , usato per creare un'immagine di backup di una data partizione, e il secondo sarebbe Gparted, per ridurre il più possibile la partizione prima di creare la sua immagine di backup, e dopo ridimensionarlo all'originale .

Non vedo alcun inconveniente in una tale operazione: ridurre una partizione al minimo richiederebbe solo pochi minuti (circa un minuto per 10 GB) e creerebbe uno spazio vuoto a destra. Dopo aver creato un'immagine di backup del disco con 'Disks', usando Gparted la partizione può essere ridimensionata a destra nello spazio vuoto fino al suo stato iniziale, e ciò richiederebbe solo pochi secondi.

Testato su una partizione con un'installazione Ubuntu:


1
Come ho appena ricevuto un voto alla mia risposta, leggendo se hai mai trovato una risposta perfetta, e questa sembra essere quella! Perché non accetti questo?
Fabby,

2

Modifica : questo non funzionerà bene se i file eliminati dal filesystem sono ancora presenti sulla partizione, quindi prima è necessario cancellare lo spazio libero sulla partizione di destinazione:

  1. Montare la partizione di destinazione
  2. Correre dd if=/dev/zero of=<path_to_partition_volume>/file.dd && rm <path_to_partition_volume>/file.dd
  3. Smonta la partizione di destinazione

Poi:


È possibile leggere l'intero blocco di partizione per blocco con dde inviare tutto a un'utilità di compressione come gzip. Molto probabilmente qualsiasi strumento di compressione, anche usando le impostazioni di compressione più veloci / più basse, comprimerà tutto lo spazio libero durante il processo.

Con gzip:

sudo dd if=/dev/sdX | GZIP=-1 gzip >/path/to/backup.gz

( GZIP=-1Imposta temporaneamente la variabile d'ambiente GZIPper -1raggiungere il più veloce / compressione più basso)

Per ripristinare un backup:

gzip -d /path/to/backup.gz >/dev/sdX


Cosa ne pensi di ridurre la partizione con gparted prima di utilizzare Disks per eseguirne il backup?

@cipricus Meglio aspettare che qualcun altro dica qualcosa a riguardo, perché non sono sicuro, anche se credo che dovrebbe andare bene farlo in questo modo
kos,

@kos Ho trovato che il comando ddrescue che hai dato ha prodotto un'immagine abbastanza facilmente ma non ha ridotto le dimensioni del file. Stavo immaginando una partizione NTFS su ext4, entrambe sembrano funzionare con file sparsi ma la dimensione del file .img mostrata in Nautilus corrispondeva esattamente alla dimensione della partizione di origine. Quindi sembra che giocherellare con gParted potrebbe essere ancora necessario?
PhilJ,

1

Che ne dici di usare ddrescuecon l' -Sopzione?

ddrescue -S /dev/sdXY /<path_to_backup>/backup.img

Questo clonerà ogni blocco ma zero blocchi trovati nel dispositivo /dev/sdXYa blocchi/<path_to_backup>/backup.img


Suona alla grande. Ma quale sarebbe il comando per ripristinare l'immagine?

@cipricus Ho scoperto che questo è in realtà altamente dipendente dal sistema e non funzionerà su ogni distribuzione, quindi ho aggiunto un metodo più semplice ma forse solo un po 'più lento per ottenere lo stesso risultato senza scaricare software aggiuntivo, che è il metodo in realtà uso
kos

0

Non può essere usato per fare una copia su un'unità più piccola. Quando ho un'unità da 64 Gb che è piena solo del 10% di dati. Vorrei essere in grado di copiarlo su un file di immagine da 6 GB, che posso copiare a sua volta su un'unità da 16 GB e di espanderlo a 16 GB

L'unica possibilità che conosco ora è usare GParted per ridurre l'originale, quindi copiarlo e ridimensionare entrambi. Un'operazione molto rischiosa, poiché è necessario ridurre e ridimensionare l'originale.


0

È possibile utilizzare rsyncper eseguire il backup solo dei file sulla partizione su un'altra partizione. O tarper creare un archivio compresso contenente tutti i file.

Entrambi probabilmente hanno (più) GUI, ma non li ho mai usati da solo.


0

Clonezilla può effettivamente essere abbastanza amichevole. Il live CD non richiede alcun utilizzo della riga di comando - sarei abbastanza felice di chiamarlo una GUI anche se non usa il mouse - e penso che i valori predefiniti siano OK per molti casi. Il problema è qualcosa che non hai chiamato esplicitamente: non sembra essere progettato come qualcosa che puoi installare su un sistema Linux arbitrario. È confezionato appositamente per Debian / Ubuntu e il Live CD è il modo più semplice per eseguirlo.


Clonezilla / partclone usano la clonazione compatibile con filesystem e usano il loro formato di immagine compresso.

Esiste un'altra possibilità non GUI per generare file sparsi (montabili) semplici, che non si basano sul rilevamento di settori zero.

virt-sparsify /dev/your-block-device backup.img

Se / tmp è un ramdisk avviserà che potenzialmente ha bisogno di più spazio per i file temporanei. Quindi potrebbe essere necessario aggiungere l'opzione --tmp /var/tmp.


Ho scoperto che il metodo virt-sparsify certamente riduce la dimensione del file .img ma richiede una directory / tmp molto grande, approssimativamente uguale alla dimensione della partizione che viene immaginata. Ha dato un messaggio di avviso ma quando ho provato l'opzione --tmp mostrata sopra (variata per la mia configurazione) mi ha dato> opzione sconosciuta `--tmp 'Non sono sicuro ora come fare per deviare l'output / tmp altrove e qualsiasi consiglio in merito sarebbe utile per me e per i futuri lettori di questo post.
PhilJ,

Specificare virt-sparsify --version ? L'opzione è documentata su mine ( man virt-sparsify) ... Non posso giurare di averla usata, ma almeno la mia corrente /tmpè tmpfs. Se è possibile utilizzare --in-place, sembra che eviterà l'archiviazione temporanea. Finalmente potresti anche provare TMPDIR=/var/tmp virt-sparsify .... I documenti per la mia versione dicono che è così che devi impostare la directory tmp per le versioni precedenti alla 1.28.
sourcejedi,
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.