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
Anmeldungsdatum: 18. November 2010
Beiträge: 7777
|
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
Anmeldungsdatum: 18. November 2010
Beiträge: 7777
|
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
Anmeldungsdatum: 27. März 2007
Beiträge: 11227
|
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
Anmeldungsdatum: 18. November 2010
Beiträge: 7777
|
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
Anmeldungsdatum: 18. November 2010
Beiträge: 7777
|
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
Anmeldungsdatum: 18. November 2010
Beiträge: 7777
|
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
Anmeldungsdatum: 18. November 2010
Beiträge: 7777
|
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
|