GUI-Programm zum Erstellen eines Partitions-Backup-Images, das nicht größer als seine Dateien ist?

8

Ich mag 'Disks' ( gnome-disk-utility) und seine Fähigkeit, Backups von Systempartitionen zu erstellen.

Geben Sie hier die Bildbeschreibung ein

Aber irgendwann las ich im Internet über ein Programm, das solche Bilder erstellen würde, die nicht so groß wie die gesamte Partition sind, sondern nur so groß wie die Dateien darauf. Jetzt kann ich es nicht wieder finden.

Gibt es so ein Dienstprogramm?


quelle
3
CloneZilla vielleicht?
Muru
1
Wie ich sehe, kann Clonezilla nur als Live-Sitzung ausgeführt werden. Ich habe bearbeitet, um anzugeben, dass ich nach einem Programm suche, das von einem Betriebssystem installiert und ausgeführt werden kann. Ich verwende mehrere Ubuntus und bevorzuge diese Lösung

Antworten:

9

Die folgende Antwort verwendet eine TUI , keine GUI- Lösung:

Abhängig von Ihrem Anwendungsfall (ich verwende ihn zum Erstellen von Systemsicherungen ) können Sie CloneZilla Live verwenden . Es kann erstellen:

  • spärliche Bilder,
  • komprimierte Bilder von:
    • ganze Systeme,
    • ganze Laufwerke
    • einfach einzelne Partitionen.

Die Hauptvorteile sind:

  • dass es bootet von:
  • kommt mit einem eigenen Betriebssystem (basierend auf Ubuntu)
  • Es kann exakte Sicherungen des kalten Systems erstellen, die leicht wiederhergestellt werden können.

Zusätzlich zu all diesen Extras können auch MBRs kopiert werden.

Wenn Sie nicht nach einer Sicherung eines kalten Systems suchen, können Sie trotzdem die Technologie verwenden, auf der CloneZilla basiert partclone.

Fabby
quelle
1
Ich habe bearbeitet, um anzugeben, dass ich nach einem GUI-Programm suche, das von einem Betriebssystem installiert und ausgeführt werden kann. Ich verwende mehrere Ubuntus und bevorzuge diese Lösung
Wie installiere ich Pyclonezilla? kein einziger Google-Eintrag für diese Frage
1
Ich war zu schnell, um auf die GUI hinzuweisen: Es funktioniert nicht. Nur CLI! Ich werde meine Antwort löschen, nachdem Sie eine Notiz hinterlassen haben, dass Sie dies gelesen haben.
Fabby
1
Da es kein Programm gibt, scheint es beide Bedingungen zu erfüllen: 1) Haben Sie eine 'Disks'-ähnliche GUI; 2) Erstellen Sie ein Disk-Image, das so groß ist wie der verwendete Speicherplatz. Es macht keinen Sinn, Ihre Antwort zu löschen. CLI-Antworten auf GUI-Fragen werden normalerweise hier vorgestellt und aus gutem Grund häufig akzeptiert. Ich habe nur versucht, auf das zu drängen, was ich wollte.
1
: DI würde ein Backup machen und dann schrumpfen ... ;-)
Fabby
4

Das Erreichen kleinerer Disk-Images erfolgt normalerweise, indem keine Null-Outed-Blöcke aus dem ursprünglichen Dateisystem im Image kopiert werden. Das Konzept wird als spärlicher Speicherplatz in Dateien oder als Loch in Dateien bezeichnet, und Ihr Host-Dateisystem muss dies unterstützen. ein bisschen Kommandozeile, aber versuchen Sie dies:

sudo apt-get install virt-manager qemu-utils 

Und sobald es installiert ist, können Sie Folgendes verwenden:

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

Dadurch wird ein spärliches Image Ihrer Festplatte erstellt (Nullen in der Datei werden nicht geschrieben). Dabei ist -f = Format, -O Ausgabeformat. sdX die Festplatte (kann auch Partitionen verwenden). Das Programm verfügt über erweiterte Funktionen wie Snapshots und verschiedene Ausgabeformate (vdi, vmdk usw.). Ihr Ort , wo Sie das Bild speichern hat Sparse - Dateien zu unterstützen , oder aber die Größe wird genauso groß, da Nullen in der Partition auf der Festplatte geschrieben werden. Um das Beste daraus zu machen, führen Sie ein Programm wie sfilloder zerofreein apt auf der Partition aus, da freier Speicherplatz nicht immer null Speicherplatz bedeutet und Sie den Speicherplatz null im Dateisystem maximieren möchten.

Bonus Ninja Punkte. Da Linux Festplatten als "Dateien" betrachtet, können Sie auch einfaches cp verwenden, unter der Bedingung, dass Ihre Ausgabepartition, auf der Sie die Datei parken, spärliche Dateien kennt.

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

Welches wird eine Rohkopie mittels cp erstellen ..

Beispiele für Dateisysteme, die Sparse unterstützen: ext4, btrfs, xfs, ntfs (ntfs-3g erlaubt jedoch möglicherweise keine Sparse-Schreibvorgänge).

Beispiele für Dateisysteme, die dies nicht tun: fat32.

user283885
quelle
Ich habe bearbeitet, um anzugeben, dass ich nach einem GUI-Programm suche, das von einem Betriebssystem installiert und ausgeführt werden kann. Ich verwende mehrere Ubuntus und bevorzuge diese Lösung
Was wäre der Befehl, um das Image wiederherzustellen?
Normalerweise haben wir in Serverfarmen nicht so viele GUI-Optionen und erstellen Skripte um diese Befehle. Aus diesem Grund ist die Befehlszeile unter Unix normalerweise vollständiger / leistungsfähiger. Das Zurückkonvertieren ist genauso einfach wie das Invertieren der Parameter .. sudo cp /home/<user>/Ubuntu.img /dev/sdXoder wenn Sie Lust auf dd , sudo dd if=/home/<user>/Ubuntu.img of=/dev/sdX. Gleiches gilt für qemu-img convert. Wenn Sie sagen, möchten Sie eine virtuelle Maschine auf realer Hardware installieren. Wenn es zurückschreibt, schreibt es Nullen auf die Festplatte, so dass Sie unsparse , da es die Geometrie der Partition richtig adressieren muss.
Benutzer283885
1
Ich verstehe Ihren Standpunkt und entschuldige mich, dass mir keine GUI-Tools bekannt sind, die Ihren Anforderungen entsprechen. Ich dachte nur, dass zumindest etwas Zweites für Sie von Nutzen sein könnte.
Benutzer283885
1
Willkommen auf dieser Seite des Zauns. Der Grund, warum ich auf Serverfarmen hingewiesen habe, ist, wie die meisten Entwicklungen in letzter Zeit durchgeführt wurden. Zum Beispiel ist das qemu-img ein Dienstprogramm aus einem viel größeren Projekt (Openstack, gestartet von Redhat, Rackspace & NASA). Sie haben diese großen Unternehmen, die Software für ihre Rechenzentren entwickeln, und dann haben Sie Leute wie uns, die sich auf diese Bemühungen stützen. Sicher funktioniert es, aber es ist bestenfalls spartanisch. Im Moment kann ich das Know-how nur mit anderen teilen.
Benutzer283885
4

Da es anscheinend kein Programm gibt, das die beiden Bedingungen alleine erfüllen würde:

1) Haben Sie eine 'Disks'-ähnliche GUI;

2) Erstellen Sie ein Disk-Image, das so groß ist wie der verwendete Speicherplatz.

Ich dachte über eine ziemlich einfache Problemumgehung nach, aber eine mit zwei GUI-Programmen, die in Ubuntu sehr verbreitet sind:

Eine wäre dieselbe 'Festplatte' (Gnome-Disk-Dienstprogramm) , die zum Erstellen eines Sicherungsabbilds einer bestimmten Partition verwendet wird, und die zweite wäre Gparted, um die Partition vor dem Erstellen des Sicherungsabbilds so weit wie möglich zu verkleinern, und um die Größe danach wieder auf das Original zu ändern .

Ich sehe bei einem solchen Vorgang keine Unannehmlichkeiten: Das Verkleinern einer Partition auf ein Minimum würde nur wenige Minuten dauern (etwa eine Minute für 10 GB) und rechts einen leeren Bereich schaffen. Nachdem Sie mit 'Festplatten' ein Backup-Image der Festplatte erstellt haben, kann die Partition mit Gparted bis zum Ausgangszustand wieder nach rechts in den leeren Bereich geändert werden. Dies würde nur einige Sekunden dauern.

Getestet auf einer Partition mit einer Ubuntu-Installation:


quelle
1
Da ich gerade eine positive Bewertung für meine Antwort erhalten habe, lesen Sie, ob Sie jemals eine perfekte Antwort gefunden haben, und dies scheint die richtige zu sein! Warum akzeptierst du das nicht?
Fabby
2

Bearbeiten : Dies funktioniert nicht gut, wenn aus dem Dateisystem gelöschte Dateien noch auf der Partition vorhanden sind. Daher muss zuerst der freie Speicherplatz auf der Zielpartition gelöscht werden:

  1. Hängen Sie die Zielpartition ein
  2. Lauf dd if=/dev/zero of=<path_to_partition_volume>/file.dd && rm <path_to_partition_volume>/file.dd
  3. Hängen Sie die Zielpartition aus

Dann:


Sie können die gesamte Partition Block für Block lesen ddund alles an ein Komprimierungsprogramm wie ausgeben gzip. Höchstwahrscheinlich komprimiert jedes Komprimierungswerkzeug, selbst wenn die schnellsten / niedrigsten Komprimierungseinstellungen verwendet werden, den gesamten freien Speicherplatz während des Vorgangs.

Mit gzip:

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

( GZIP=-1Vorübergehend setzt die Umgebungsvariable , GZIPum -1die schnellste / niedrigsten Kompression zu erreichen)

So stellen Sie ein Backup wieder her:

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

kos
quelle
Was halten Sie davon, die Partition mit gparted zu verkleinern, bevor Sie sie mit Disks sichern?
@cipricus Warten Sie besser, bis jemand anderes etwas dazu sagt, denn ich bin mir nicht sicher, auch wenn es schwierig ist, denke ich, dass es in Ordnung sein sollte, es auch so zu machen
kos
@kos Ich habe festgestellt, dass der Befehl ddrescue, den Sie eingeben, mühelos ein Bild erzeugt hat, aber die Größe der Datei überhaupt nicht verringert hat. Ich habe eine NTFS-Partition für ext4 abgebildet, die beide mit spärlichen Dateien zu funktionieren scheinen, aber die in Nautilus angezeigte IMG-Dateigröße stimmte genau mit der ursprünglichen Partitionsgröße überein. Es sieht also so aus, als müsste man immer noch mit gParted herumspielen?
PhilJ
1

Wie wäre es ddrescuemit -SOption?

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

Dadurch wird jeder Block klonen aber Null gefunden Blöcke in Blockgerät /dev/sdXYzu/<path_to_backup>/backup.img

kos
quelle
Klingt gut. Aber was wäre der Befehl, um das Image wiederherzustellen?
@cipricus Ich habe herausgefunden, dass dies tatsächlich stark systemabhängig ist und nicht bei jeder Distribution funktioniert. Deshalb habe ich eine einfachere, aber vielleicht etwas langsamere Methode hinzugefügt, um dasselbe zu erreichen, ohne zusätzliche Software herunterzuladen. Dies ist die Methode, die ich tatsächlich verwende use
kos
0

Es kann nicht verwendet werden, um eine Kopie auf ein kleineres Laufwerk zu erstellen. Wenn ich ein 64-GB-Laufwerk habe, sind nur 10% mit Daten gefüllt. Ich möchte in der Lage sein, das in eine 6-Gbit-Image-Datei zu kopieren, die ich wiederum auf ein 16-Gbit-Laufwerk kopieren und dann auf 16 Gbit erweitern kann

Die einzige Möglichkeit, die ich jetzt kenne, besteht darin, GParted zu verwenden, um das Original zu verkleinern, es dann zu kopieren und dann die Größe beider zu ändern. Eine sehr riskante Operation, da Sie das Original verkleinern und seine Größe ändern müssen.

user522843
quelle
0

Sie können rsyncnur die Dateien auf der Partition auf einer anderen Partition sichern. Oder tarum ein komprimiertes Archiv zu erstellen, das alle Dateien enthält.

Beide haben wahrscheinlich (mehrere) GUIs, aber ich habe diese selbst nie verwendet.

Pelle
quelle
0

Clonezilla kann eigentlich recht freundlich sein. Die Live-CD erfordert keine Befehlszeilenverwendung - ich würde sie gerne als GUI bezeichnen, obwohl sie nicht mit der Maus verwendet wird - und ich denke, die Standardeinstellungen sind in vielen Fällen in Ordnung. Das Problem haben Sie nicht explizit angesprochen: Es scheint nicht so konzipiert zu sein, dass Sie es auf einem beliebigen Linux-System installieren können. Es ist speziell für Debian / Ubuntu gepackt und die Live-CD ist der einfachste Weg, es auszuführen.


Clonezilla / partclone verwenden das Dateisystem-fähige Klonen und verwenden ihr eigenes komprimiertes Bildformat.

Es gibt eine weitere Möglichkeit ohne GUI, einfache (mountende) Dateien mit geringer Dichte zu generieren, die nicht auf der Erkennung von Nullsektoren beruhen.

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

Wenn / tmp eine Ramdisk ist, wird gewarnt, dass möglicherweise mehr Speicherplatz für temporäre Dateien benötigt wird. Möglicherweise müssen Sie die Option hinzufügen --tmp /var/tmp.

sourcejedi
quelle
Ich fand, dass die virt-sparsify-Methode zwar die Größe der IMG-Datei verringert, aber ein sehr großes / tmp-Verzeichnis erfordert, das ungefähr der Größe der abgebildeten Partition entspricht. Es gab eine Warnmeldung aus, aber als ich die oben gezeigte Option --tmp ausprobierte (für mein Setup unterschiedlich), gab es mir die> unbekannte Option `--tmp '. Ich bin mir jetzt nicht sicher, wie ich die / tmp-Ausgabe an eine andere Stelle umleiten soll und jeder Rat dazu wäre für mich und zukünftige Leser dieses Beitrags hilfreich.
PhilJ
Angeben virt-sparsify --version? Die Option ist auf meiner ( man virt-sparsify) dokumentiert ... Ich kann nicht schwören, dass ich sie verwendet habe, aber zumindest ist meine aktuelle /tmptmpfs. Wenn Sie verwenden können --in-place, scheint dies eine temporäre Speicherung zu vermeiden. Schließlich können Sie es genauso gut versuchen TMPDIR=/var/tmp virt-sparsify .... In den Dokumenten für meine Version heißt es, dass Sie das tmp-Verzeichnis für Versionen vor 1.28 festlegen müssen.
Sourcejedi