Im Internet gibt es zahlreiche Artikel mit einer Befehlszeilenbeschreibung zum Erstellen eines ISO-Images von einer DVD-Video-Disk wie folgt:
dd if=/dev/sr0 of=mydvd.iso conv=noerror,sync,notrunc
Ich würde gerne verstehen, warum das notrunc
notwendig ist. Meines Wissens und der man
Seite für den Befehl zufolge notrunc
verhindert es, dass die Ausgabedatei abgeschnitten wird. Das bedeutet im Wesentlichen, dass, wenn die Datei existiert, dd
einfach das überschrieben wird, was bereits vorhanden ist; wenn dort Inhalt vorhanden ist, der dd
nicht berührt wird (vielleicht durch Suchen nach einem anderen Punkt in der Datei), dann bleibt dieser ursprüngliche Inhalt intakt.
Möchten Sie beim Erstellen einer ISO-Datei sicher mit einer neuen, sauberen und leeren Datei beginnen?
Das Einzige, was mir einfällt, ist, dass notrunc
Sie im Falle einer wirklich schlechten Festplatte mit demselben dd-Befehl mehrere Male über dieselbe Ausgabedatei laufen können, um hoffentlich jedes Mal andere Bits auszufüllen. Wenn die Ausgabedatei nicht existiert, notrunc
hat dies keine Auswirkung.
Ist das alles, oder gibt es einen anderen Grund, den jeder angibt notrunc
?
(Ich frage nicht, wie man CSS, ARccOS oder sonst etwas umgeht, sondern nur nach dd
der Verwendung.)
Antwort1
Wenn ich raten müsste, basierend auf diesem Kommentar desWikipedia-Artikel überdd
:
Die Konvertierungsoption „notrunc“ bedeutet, dass die Ausgabedatei nicht gekürzt wird. Dies bedeutet, dass, wenn die Ausgabedatei bereits vorhanden ist, nur die angegebenen Bytes ersetzt werden und der Rest der Ausgabedatei unverändert bleibt.
Die Verwendung notrunc
erfolgt aus Leistungsgründen. Es macht keinen Sinn, die gesamte Datei neu zu schreiben, nur um ein paar Bytes/KBytes/Megabytes/usw. zu aktualisieren.
NOTIZ:Die endgültige Antwort auf diese Frage muss das StackOverflow Q&A sein, das@garethTheRedin den Kommentaren referenziert, mit dem Titel:Warum wird beim Klonen einer Festplatte mit dd conv=notrunc verwendet?. Die Antwort dort ist hervorragend und enthält ein C++-Programm, das die Auswirkungen O_TRUNC
auf Blockgeräte und -dateien demonstriert.
Antwort2
Es ist nicht erforderlich, wenn Sie eine ganze DVD in eine Datei kopieren möchten, die anschließend nur die Nutzdaten dieser DVD enthalten soll. Tatsächlich ist notrunc ein Risiko für die Privatsphäre und kann einen Medienüberlauf verursachen, wenn Sie eine alte Datei überschreiben, die größer als die Nutzdaten der DVD ist. In diesem Fall bleiben die überzähligen Blöcke der alten Datei an den kopierten DVD-Inhalt angehängt. Sie würden also zusammen mit dem Dateisystem auf eine neue DVD kopiert.
Sehr hilfreich ist der Hinweis im Kommentar von Starfry, nur die Blöcke des ISO 9660-Dateisystems zu kopieren (sofern es sich tatsächlich um ISO 9660 handelt), da das DVD-Medium unter Umständen mehr Blöcke liefern könnte als das Dateisystem.