ubuntuusers.de

dd DiskDump, USB Stick 1:1 Kopie erstellen

Status: Ungelöst | Ubuntu-Version: Kubuntu 12.04 (Precise Pangolin)
Antworten |

undine

Anmeldungsdatum:
25. Januar 2007

Beiträge: 3400

Hallo,

mit

dd if=/dev/sdb of=/home/user/Name.img

kann ich von einem USB Stick ein 1:1 Kopie, Image erstellen.

Wie lautet der Befehl, wenn mein Image nur den halben USB Speicher vom Stick sichern soll?

Das erstellte Image möchte ich für einen kleineren USB verwenden. Der große USB Stick ist nicht vollständig Partitioniert und hat 32 GB. Die drei vorhandenen Partitionen belegen zusammen 1 GB.

MfG

undine

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7823

Geht mit der count Option, der Einfachheit halber sollte man auch gleich Blocksize setzen.

Beispiel um nur die ersten 2048MB (2GiB) zu kopieren:

dd if=/dev/dings of=~/dings.img bs=1M count=2048

Wenn das Image dann aber 1:1 auf einen anderen Stick soll, könntest du es auch ohne Zwischendatei machen.

dd if=/dev/dings of=/dev/bumms bs=1M count=2048

Bzw. wenn du beim letzten Befehl das count= wegläßt, wird halt soviel kopiert, bis /dev/bumms voll ist.

Du mußt nur aufpassen, das richtige Device bei of= zu erwischen. Ist es das falsche, hast du irgendwas überschrieben/gelöscht...

undine

(Themenstarter)

Anmeldungsdatum:
25. Januar 2007

Beiträge: 3400

Hallo Frostschutz,

danke, genau das meinte ich.

Was macht die Option "bs=1M" ?

Wieso hast Du es empfohlen?

http://wiki.ubuntuusers.de/dd

Im Wiki habe ich dazu nichts gefunden.

MfG

undine

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7823

Steht auch im Wiki.

bs=BYTES	Es werden Blöcke mit der Größe BYTES gelesen und geschrieben.

bs=1M ist 1 Megabyte, count=2048 macht 2048 Megabyte macht zwei Gigabyte.

Der große USB Stick ist nicht vollständig Partitioniert und hat 32 GB. Die drei vorhandenen Partitionen belegen zusammen 1 GB.

Mit belegt meinst du hier hoffentlich die Partitionsgröße - wieviel Platz im Dateisystem durch Dateien belegt wird, ist für dd nicht relevant.

Wenn die Partitionen zusammen doch größer als 2GB sind funktioniert mein dd-Beispiel so nicht.

undine

(Themenstarter)

Anmeldungsdatum:
25. Januar 2007

Beiträge: 3400

Hallo Frostschutz,

Du scheinst ja DD Experte zu sein, von dir habe ich viele Beiträge dazu gefunden.

Die Klarstellung:

- Hier habe ich einen 32 GB Stick mit 3 Partition, der ganz Stick ist in Benutzung

- Mit Gpartetd habe ich die letzte Partition verkleinert, jetzt ist dieser mit 3 Partition bis zur 1GB-Grenze belegt.

- Jetzt möchte ich ein Image von dem großen Stick (32GB) bis zur 1GB Grenze

- Das jetzt erstellte Image soll auf einen kleinen 1GB USB Stick

Image erstellen:

sudo dd if=/dev/sdb of=/home/user/OE323BS.img bs=1M count=1024

Image auf kleinen USB Stick zurückspielen:

sudo dd if=/home/user/OE323BS.img if=/dev/sdb bs=1M count=1024

So alles richtig?

Oder gibt es bessere Wege? Clonzilla oder Partimage?

MfG

undine

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 11421

Hej undine,

undine schrieb:

... - Jetzt möchte ich ein Image von dem großen Stick (32GB) bis zur 1GB Grenze

dann kopier' doch gleich mit gparted

Gruß black tencate

undine

(Themenstarter)

Anmeldungsdatum:
25. Januar 2007

Beiträge: 3400

Hi,

dann habe ich aber kein Image auf der HDD.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7823

undine schrieb:

Image erstellen:

sudo dd if=/dev/sdb of=/home/user/OE323BS.img bs=1M count=1024

Image auf kleinen USB Stick zurückspielen:

sudo dd if=/home/user/OE323BS.img if=/dev/sdb bs=1M count=1024

So alles richtig?

Ja bis auf den GiB vs GB Unterschied (1000*1000*1000 Bytes vs. 1024*1024*1024). Ein 1GB-Stick wird nicht groß genug sein für 1GiB. Die Frage ist jetzt wie groß deine Partitionen wirklich sind.

Zeig doch mal die Partitionstabellen (ggf. mit sudo)

parted /dev/alterstick unit mib print free
parted /dev/neuerstick unit mib print free

undine schrieb:

dann habe ich aber kein Image auf der HDD.

Das könnte man auch noch danach anlegen...

undine

(Themenstarter)

Anmeldungsdatum:
25. Januar 2007

Beiträge: 3400

Hallo,

großer USB Stick (32GB):

sudo parted /dev/sdb unit mib print free
Modell: SanDisk Cruzer Slice (scsi)
Festplatte  /dev/sdb:  30533MiB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos

Nummer  Anfang   Ende      Größe     Typ       Dateisystem   Flags
        0,03MiB  1,00MiB   0,97MiB             Freier Platz
 1      1,00MiB  201MiB    200MiB    primary   fat16
 2      201MiB   1900MiB   1699MiB   extended
 5      202MiB   402MiB    200MiB    logical   ext4          boot
 6      403MiB   652MiB    249MiB    logical   ext4
        652MiB   1900MiB   1248MiB             Freier Platz
        1900MiB  30533MiB  28633MiB            Freier Platz

Kleiner USB Stick (1GB):

sudo parted /dev/sdb unit mib print free
Modell: SanDisk U3 Cruzer Micro (scsi)
Festplatte  /dev/sdb:  989MiB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos

Nummer  Anfang   Ende     Größe    Typ      Dateisystem   Flags
        0,03MiB  1,00MiB  0,97MiB           Freier Platz
 1      1,00MiB  988MiB   987MiB   primary  fat32
        988MiB   989MiB   1,00MiB           Freier Platz

Mit den zuvor aufgeführten Befehlen komme ich nicht weiter. Ein Image wird erstellt, beim Rückspielen erscheinen in der Konsole wirre Zeichen. Der kleine USB Stick blinkt dabei, das dauert lange, das Blinken hört auf, die Konsole muß geschlossen werden, keine Eingabe möglich.

Was mache ich falsch?

MfG

undine

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7823

Wenn in der Konsole wirre Zeichen erscheinen, dann "schreibt" dd nach stdout also Standardausgabe auf den Bildschirm, statt auf den USB-Stick.

Das passiert nur wenn der Befehl falsch ist, also der of= Parameter fehlt. Vielleicht verschrieben?

Ansonsten sollte es so tun wie beschrieben... dd bs=1M count=653 müsste auch reichen da lt. Partitionstabelle bei 652 Schluss ist.

EDIT: ah ich sehe du hast oben einen Befehl gepostet der zweimal if= hat und kein of= - kleine Typos übersieht man leicht 😉

Wenn das dd fertig ist müssen auch Partitionstabellen neu eingelesen werden:

sync
sfdisk -R /dev/neuerstick

Alternativ nach dem dd einfach den Stick ziehen und neu einstecken.

undine

(Themenstarter)

Anmeldungsdatum:
25. Januar 2007

Beiträge: 3400

Hallo frostschutz,

super es funktioniet jetzt fast.

Richtigstellung, Image auf kleinen USB Stick zurückspielen:

sudo dd if=/home/user/OE323BS.img of=/dev/sdb bs=1M count=1024 

if wurde in of geändert.

Der neue kleine Stick (1GB) bootet jetzt wie gewünscht.

Es stimmt aber irgedetwas noch nicht. Ein ab- und einstecken brachte keinen Erfolg, neues Booten auch nicht.

Will ich Infos zu dem Stick sieht es wie folgt aus:

sudo parted /dev/sdb unit mib print free
Fehler: Partitionen ausserhalb der Festplatte sind nicht möglich! 

Gparted zeigt auch fehler an, als keine Partitionen. Mit dolphin kann ich auf die Partitionen zugriefen.

fdisk zeigt folgendes:

sudo fdisk -l /dev/sdb

Platte /dev/sdb: 1037 MByte, 1037041152 Byte
32 Köpfe, 62 Sektoren/Spur, 1020 Zylinder, zusammen 2025471 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0xbb72c55c

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1            2048      411647      204800   83  Linux
/dev/sdb2          411648     3891199     1739776    5  Erweiterte
/dev/sdb5   *      413696      823295      204800   83  Linux
/dev/sdb6          825344     1335295      254976   83  Linux

cfdisk sagt:

sudo cdfdisk /dev/sdb


                  FATALER FEHLER: Beschädigte primäre Partition 2: Partition endet hinter dem Ende der Festplatte
                                              Eine Taste drücken, um cfdisk zu beenden

Die erste Partition, eine FAT16 (Stick 32GB) Partition wurde von DD in eine Linuxpartition geändert. Wie löse ich das Problem?

Kann dd mit unterschiedlichen Partitionsformaten in einem Image-Copy.img umgehen?

Hinweis: mit dd kann ich ohne Probleme einen 4 GB Stick mit verschiedenen Partitionen auf einen 32GB Stick kopieren.

MfG

undine

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7823

dd ändert keine Partitionen, dd weiß nicht mal was eine Partitionstabelle ist. Das kopiert einfach nur stumpf Daten. Wenn sich die Partitionstabelle geändert hat, war das ein Partitionierungsprogramm...

Die erweiterte Partition geht über 1GB hinaus (1699MiB), solange in der Region keine Daten liegen (keine logische Partition vorhanden) ist das eig. kein kritischer Fehler.

Zur Not musst du dir die Partitionsoffsets aufschreiben und die Partitionen dann mit diesen Offsets nochmal neu anlegen. Wenn die oben geposteten Offsets stimmen etwa so:

parted /dev/neuerstick
mklabel msdos
mkpart primary 1mib 201mib
mkpart primary 202mib 402mib
mkpart primary 403mib 652mib

Bei dem Beispiel ändern sich die Nummern dann allerdings von sdx5 / sdx6 auf sdx2 / sdx3 da es dann primäre Partitionen sind.

Wenn es logische bleiben sollen vielleicht so

mklabel msdos
mkpart primary 1mib 201mib
mkpart extended 201mib 100%
mkpart logical 202mib 402mib
mkpart logical 403mib 652mib

undine

(Themenstarter)

Anmeldungsdatum:
25. Januar 2007

Beiträge: 3400

Hallo frostschutz,

jetzt habe ich alles nochmals durchgeführt. Alles wie gehabt, nichts verbessert.

Gparted sagt mir, es fehlt eine Partitiontabelle. Dann ich habe mit Gparted eine MSDOS Partitionstabelle erstellt und Stick zeigt nichts mehr an. Was für eine Partitionstabelle benötige ich?

Werden durch die zuvor genannten dd Befehle die Partitiontabellen mit übernommen? Kann ein 1GB Stick mit der gleichen Partitiontabelle wie ein 32GB Stick arbeiten? Stimmen die Cluster überein, hierbei denke ich an die 4K Problematik, Alignment.

Mit dd habe ich zuvor nie etwas gemacht. Von kleinen auf großen USB Stick hat so wunderbar funktioniert.

MfG

undine

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7823

undine schrieb:

Werden durch die zuvor genannten dd Befehle die Partitiontabellen mit übernommen?

Wenn du das gesamte Gerät (/dev/sdx) statt einzelne Partitionen (/dev/sdx5) kopierst, ja.

Kann ein 1GB Stick mit der gleichen Partitiontabelle wie ein 32GB Stick arbeiten?

Solange die Partitionstabelle innerhalb der 1GB-Grenze bewegt... bei dir ist das eigentlich der Fall, bis auf die erweiterte Partition. Wie du das in dem Fall korrigieren können solltest hab ich schon geschrieben...

Stimmen die Cluster überein, hierbei denke ich an die 4K Problematik, Alignment.

Das kann theoretisch Probleme machen, ist aber in 99% der Fälle wurscht. Alignmentprobleme hast du nicht, da die Partitionen schon an MiB-Grenzen liegen, wenn die parted-Ausgabe von oben richtig ist.

undine

(Themenstarter)

Anmeldungsdatum:
25. Januar 2007

Beiträge: 3400

black tencate schrieb:

Hej undine,

undine schrieb:

... - Jetzt möchte ich ein Image von dem großen Stick (32GB) bis zur 1GB Grenze

dann kopier' doch gleich mit gparted

Gruß black tencate

Hallo, nun habe ich den Hinweis von black tencate aufgegriffen und ausgeführt.

Von dem kleinen USB Stick (1GB) habe ich alle Partitionen entfernt und die Partitionen vom großen Stick (32GB) mit Gparted einkopiert. Und siehe da, der Stick scheint ok zu sein. Gparted zeigt keine Fehler an.

cfdisk sagt:

sudo cfdisk /dev/sdb

cfdisk (util-linux 2.20.1)

                                                        Festplatte: /dev/sdb
                                                 Größe: 1037041152 Bytes, 1037 MB
                                         Köpfe: 32   Sektoren pro Spur: 62   Zylinder: 1020

      Name                Flags              Part. Typ         Dateisystemtyp             [Bezeichner]             Größe (MB)
 -----------------------------------------------------------------------------------------------------------------------------------
                                              Pri/Log          Freier Bereich                                           1,05        *
      sdb1                                    Primäre          vfat                       [DVBSKY]                    209,72        *
      sdb2                                    Primäre          ext4                       [System]                    209,72        *
      sdb3                                    Primäre          ext4                       [Storage]                   261,10        *
                                              Pri/Log          Freier Bereich

Was stimmt an den dd Befehlen nicht?

@frostschutz Deine Vorschlagkorrekturen habe ich nicht richtig verstanden, zudem erscheint, mit den erforderllichen Korrekturen, dd nicht so richtig ideal.

MfG

undine


Edit Test

Jetzt habe ich mit den zuvor aufgeführten Befehlen einen Test durchgeführt. Den USB Stick (1GB) als *.img Datei in /home/user/*.img gesichert, dann den USB Stick (1GB) von den Partitionen mit Gpartde befreit. Das Image zurückspielt und alle Partitionen sind da. Booten kann der Stick jedoch nicht.

Was aber ist am dd Befehl falsch, wenn ich vom großen USB Stick (32GB), ein img erstelle und diese dann auf den kleinen USB Stick (1GB) wieder herstellen möchte?

Mit parted sieht es jetzt so aus:

sudo parted /dev/sdb unit mib print free
Modell: SanDisk U3 Cruzer Micro (scsi)
Festplatte  /dev/sdb:  989MiB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos

Nummer  Anfang   Ende     Größe    Typ      Dateisystem   Flags
        0,03MiB  1,00MiB  0,97MiB           Freier Platz
 1      1,00MiB  201MiB   200MiB   primary  fat16
 2      201MiB   401MiB   200MiB   primary  ext4
 3      401MiB   650MiB   249MiB   primary  ext4
        650MiB   989MiB   339MiB            Freier Platz
Antworten |