Meine Frage ist allgemeiner Natur und bezieht sich auf DD/Festplatten/ISO-Images. Nachfolgend finden Sie die Einzelheiten.
Ich habe ein Live-ISO-Image, das zwei Partitionen enthält, die als /dev/loop1p1
und gemountet /dev/loop1p2
sind, und ich habe eine Festplatte mit viel nicht zugeordnetem, leerem Speicherplatz am Ende. Außerdem habe ich ein USB-Laufwerk angeschlossen (auf das dasselbe Image geschrieben wurde) und der Inhalt ist unter /dev/sdb1
, und verfügbar /dev/sdb2
.
Meine Aufgabe ist also ganz einfach:
Klonen Sie
/dev/sdb2
die USB-Partition (oder das gemountete ISO/dev/loop1p2
) auf den leeren/nicht zugeordneten Speicherplatz auf der Festplatte.
Ich bin davon überzeugt, dd
dass dies wie immer der richtige Weg ist.
if=
Seite:
Obwohl als erstes Argument dd
die gesamte Festplatte ( /dev/sdb
) oder die Partitionen ( /dev/sdb1
, usw.) akzeptiert werden , muss das verbleibende Argument von HDD ( ) homogen sein und scheint die entscheidende Seite zu sein./dev/sdb2
if=
of=
/dev/sda
of=
Seite:
Ich habe auf der Festplattenseite noch keine Partition erstellt, die ich an das of=
Argument des dd
Befehls übergeben könnte. Wenn ich die gesamte Festplatte /dev/sda
als of
Deskriptor verwende, gehen vorhandene Partitionen auf der Festplatte verloren, was definitiv nicht wünschenswert ist.
Um die Frage noch einmal zu wiederholen:
Wie klone ich das bestimmte USB-Laufwerk auf eine Festplatte?
Abgesehen davon, wird es etwas helfen, wenn ich irgendwie eine neue, leere Partition auf der Festplatte mit „genauen“ Abmessungen wie denen von /dev/sdb2
oder erstelle /dev/loop1p2
und diese als of=
Argument verwende?
Antwort1
Hilft es, wenn ich irgendwie eine neue, leere Partition auf der Festplatte mit „genauen“ Abmessungen wie
/dev/sdb2
oder erstelle/dev/loop1p2
und diese alsof=
Argument verwende?
Ja, und das ist wahrscheinlich der einfachste Weg. Die Größe muss nicht genau gleich sein, sie kann größer sein. Genau genommen muss sie mindestens so groß sein wie das Dateisystem darin /dev/loop1p2
, dasMaiviel kleiner sein als /dev/loop1p2
es selbst. Eine Möglichkeit, die genaue Größe eines bestimmten Dateisystems zu ermitteln, hängt vom Dateisystem ab (verschiedene Tools für ext, btrfs usw.). Ein Dateisystem zu haben, das viel kleiner ist als seine Partition, ist jedoch ungewöhnlich, daher /dev/loop1p2
ist die Größe von eine vernünftige undsicherMinimum.
Wenn die neue Partition zu klein für das Dateisystem ist, erhalten Sie einen fehlerhaften Dateisystemklon, bei dem möglicherweise einige Daten und/oder Metadaten fehlen. Ein geeignetes fsck
Tool kann den Klon formal einwandfrei machen oder auch nicht, aber es kann keine Daten wiederherstellen, die nicht hineingepasst haben. Datenverlust kann unabhängig davon auftreten, wie viel freien Speicherplatz das Quelldateisystem hat.
Wenn die neue Partition größer ist, passiert nichts Schlimmes. Egal, welches Dateisystem sich darin befindet /dev/loop1p2
, es sollte egal sein, ob die Zielpartition größer ist. Das Erstellen einer viel größeren Partition wäre allerdings eine Platzverschwendung, es sei denn, Sie planen, das Dateisystem anschließend so zu vergrößern, dass die gesamte Partition darin enthalten ist.
Also ja, die Größe von /dev/loop1p2
ist höchstwahrscheinlich die beste für die neue Partition. Einige Tools berücksichtigen möglicherweise Partitionstypen, daher sollten Sie die ID der neuen Partition richtig festlegen (sie ist unterschiedlich fürDOS-Partitionstabelle im MBRUndGUID-Partitionstabelle).
Können Sie klonen, ohne eine neue Partition zu erstellen? Ja, aber es lohnt sich nicht.
Ein Geräteknoten wie /dev/sdx3
ist nur eine nützliche Abstraktion, um auf ein vordefiniertes Fragment zuzugreifen (und auf nichts außerhalb dieses Fragments). Das bedeutet, dass Sie /dev/sdx
stattdessen mitdd of=/dev/sdx3
dd of=/dev/sdx
richtigOffset ( obs=
, seek=
), wobei grundsätzlich darauf zu achten ist, dass nicht über das Fragment ( count=
) hinaus geschrieben wird. Umständlich, aber es ist durchaus möglich, Ihr Laufwerk /dev/sdb2
in den nicht zugeordneten Speicherplatz auf Ihrer Zielfestplatte zu klonen, ohne dort eine Partition zu erstellen. Aber:
- jeder Tipp- oder Rechenfehler kann dazu führen, dass ein Teil der Zielfestplatte überschrieben wird, den Sie nicht anfassen möchten (und dann wissen Sie, dass dies
dd
für „Datenzerstörer“ steht); - obwohl nur wenige Werkzeuge mit und Offset arbeiten können
/dev/sdx
, brauchen Sie eine Partition/dev/sdx3
wiebequemVerwenden Sie das geklonte Dateisystem in der Praxis, sodass Sie es früher oder später sowieso erstellen werden. - ohne Partitionierung wird der vom Klon belegte Speicherplatz als frei betrachtet; kein vernünftiges Werkzeug sollte ihn von sich aus nutzen, aberDuSie können die genaue Größe des belegten Fragments oder sogar die Tatsache vergessen, dass es überhaupt belegt ist.
Aus diesen Gründen ist es richtig, vor dem Klonen eine Partition zu erstellen. Sobald Sie sie haben, können Sie darauf of=
verweisen .dd