dd, um nur eine Partition des ISO auf den nicht zugeordneten Teil der Festplatte zu kopieren

dd, um nur eine Partition des ISO auf den nicht zugeordneten Teil der Festplatte zu kopieren

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/loop1p1und gemountet /dev/loop1p2sind, 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/sdb2die USB-Partition (oder das gemountete ISO /dev/loop1p2) auf den leeren/nicht zugeordneten Speicherplatz auf der Festplatte.

Ich bin davon überzeugt, dddass dies wie immer der richtige Weg ist.

if=Seite:

Obwohl als erstes Argument dddie 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/sdb2if=of=/dev/sda

of=Seite:

Ich habe auf der Festplattenseite noch keine Partition erstellt, die ich an das of=Argument des ddBefehls übergeben könnte. Wenn ich die gesamte Festplatte /dev/sdaals ofDeskriptor 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/sdb2oder erstelle /dev/loop1p2und diese als of=Argument verwende?

Antwort1

Hilft es, wenn ich irgendwie eine neue, leere Partition auf der Festplatte mit „genauen“ Abmessungen wie /dev/sdb2oder erstelle /dev/loop1p2und diese als of=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/loop1p2es 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/loop1p2ist 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 fsckTool 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/loop1p2ist 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/sdx3ist nur eine nützliche Abstraktion, um auf ein vordefiniertes Fragment zuzugreifen (und auf nichts außerhalb dieses Fragments). Das bedeutet, dass Sie /dev/sdxstattdessen mitdd of=/dev/sdx3dd of=/dev/sdxrichtigOffset ( 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/sdb2in 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 ddfür „Datenzerstörer“ steht);
  • obwohl nur wenige Werkzeuge mit und Offset arbeiten können /dev/sdx, brauchen Sie eine Partition /dev/sdx3wiebequemVerwenden 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

verwandte Informationen