GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Erstellt Dd eine riesige Datei, wenn ich versuche, ein Backup-Image zu erstellen?

Ich habe versucht, CUDA auf meinem System zum Laufen zu bringen, und während ich mit NVIDIA-Treibern herumgespielt habe, habe ich Ubuntu so stark beschädigt, dass ich meine Laufwerkspartition mehrmals neu formatieren musste. Ich wurde jetzt oft genug von diesem Stick getroffen, dass ich versuche, meine Partition zu sichern, sobald ich alle meine Tools und Programme und Sachen installiert habe, indem ich dd verwende (wie von einem Freund empfohlen).

Als ich jedoch rannte

sudo dd if=/dev/sda4 of=~/backup.img

Irgendwann bekam ich eine Fehlermeldung, dass mein Laufwerk keinen Speicherplatz mehr hatte. Das war seltsam für mich, da die Partition ziemlich groß ist und ich nur eine frische Ubuntu-Installation zusammen mit ein paar (kleinen) Programmen darauf habe.

Ich dachte mir, was passieren könnte, ist, dass es rekursiv versucht, eine Kopie dessen zu schreiben, was es bereits geschrieben hat, also habe ich versucht, die Datei stattdessen direkt auf eine andere Partition zu schreiben:

sudo dd if=/dev/sda4 of=/media/Ye\ Olde\ Data/ubuntu\ reinstall\ backup/backup.img

Aber das dauerte ewig und ich brach den Vorgang ab, sobald die Datei eine Größe erreicht hatte, von der ich mir ziemlich sicher war, dass sie zu groß war, um nur die Daten zu enthalten, die ich wollte.

Was ist los? Ist es so, dass /media die anderen Partitionen gemountet hat und daher die anderen Partitionen als Teil von /dev/sda4 behandelt? Kopiert dd die gesamte Partition Byte für Byte und ignoriert, welche Bytes tatsächlich Dateien enthalten?

Und was auch immer der Fall ist, wie kann ich das, was ich versuche, richtig machen?

Oh, und hier sind meine Festplatteninformationen, falls es darauf ankommt:

sudo sfdisk -l /dev/sda

Disk /dev/sda: 62260 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1   *      0+     12-     13-    102400    7  HPFS/NTFS/exFAT
/dev/sda2         12+  14602-  14590- 117187500    7  HPFS/NTFS/exFAT
/dev/sda3      29192+  62260-  33069- 265622493+   5  Extended
/dev/sda4      14602+  29191-  14590- 117193728   83  Linux
/dev/sda5      61228+  62260-   1032-   8287232   82  Linux swap / Solaris
/dev/sda6      29192+  61227   32036- 257329138+   7  HPFS/NTFS/exFAT

Akzeptierte Antwort:

Wenn Sie eine Partition mit dd kopieren , ist die Ausgabedatei so groß wie die Partition. dd erstellt eine physische Kopie der Disc, es hat keine Kenntnis von leerem oder belegtem Speicherplatz.

Wenn Sie die Ergebnisdatei komprimieren, sparen Sie jedoch viel Platz, da Leerzeichen sehr gut wegkomprimiert werden (Vorsicht, dies wird rechnerisch sehr schwer). Sie können sogar die Ausgabe von dd komprimieren on the fly, mit etwas in der Zeile dd if=/dev/sdaX | gzip -c > compressed_file.gz .

wirklich wichtig:

Darüber hinaus können Sie nicht (nie) einen dd ausführen Auf einer aktiven (gemounteten)
Partition sind die aufgezeichneten Daten völlig inkonsistent und
absolut unbrauchbar für ein Backup. Denken Sie darüber nach:Datenblöcke werden
ständig zugewiesen, verschoben und gelöscht; ist wie das Aufnehmen eines Fotos
mit langer Belichtungszeit auf ein sich bewegendes Ziel.

Um die Partition mit dd zu kopieren Sie müssen von einem anderen booten –
live USB oder was auch immer.

Was würde ich tun, um das vorliegende Problem zu lösen (Hinweis, nur allgemeine Anweisungen, da Sie wissen müssen, was Sie tun)

Verwandte Themen:Mehrere Dropbox-Konten auf demselben Computer?

Erste Option Kaufen Sie Norton Ghost oder erkunden Sie die Open-Source-Optionen:Partimage und Clonezilla (selbst nie getestet).

Zweite Option mach es manuell:

  1. Erstellen Sie eine zusätzliche Partition für Backups, nennen Sie sie /dev/sdX (oder verwenden Sie eine gemeinsame Datenpartition, was auch immer).

  2. zum Sichern:

    • Booten Sie mit Live-USB
    • mounten Sie die echte Root-Partition in /real
    • Mounten Sie die zusätzliche Partition in /extra
    • Mach ein großes Tar, in der Zeile (cd /real && tar cvf /extra/mybck.tar.gz)
  3. wiederherzustellen

    • Booten Sie mit Live-USB
    • mounten Sie die echte Root-Partition in /real
    • Mounten Sie die zusätzliche Partition in /extra
    • restore, in der Zeile (cd /real && tar xvpf /extra/mybck.tar.gz) , achten Sie auf das p Option zum Beibehalten von Metadaten
    • chroot in /real
    • Aktualisiere Grub oder den verwendeten Bootloader

Sie können tar ersetzen Stellen Sie bei Ihrem bevorzugten Archivierungsprogramm sicher, dass es den Besitz/Modus der Dateien respektiert. rsync ist eine Erkundung wert.


Ubuntu
  1. Linux – Wie erstelle ich eine formatierte Partitions-Image-Datei von Grund auf neu?

  2. Zusätzliche Datei beim Erstellen von Tar.gz vermeiden?

  3. Image-Backup erstellen (Klonen)

  4. Nicht erkannte Datenträgerbezeichnung beim Erstellen einer Partition

  5. So erstellen Sie eine Auslagerungsdatei auf einer SSD-Festplatte mit Btrfs

Fdisk-Befehl in Linux (Festplattenpartitionen erstellen)

DD-Dienstprogramm - Einfaches Sichern und Wiederherstellen von Disk-Image-Dateien in Ubuntu

Erstellen Sie eine ISO-Image-Sicherungsdatei aus einem Ordner in Ubuntu 17.10

Wie kann ich eine VHD-Datei (Virtual Hard Disk) in Ubuntu Linux mounten?

So erstellen Sie Festplattenpartitionen unter Linux

So erstellen Sie Festplattenpartitionen mit cfdisk