Ich versuche, den dd
Befehl zu verwenden, um den Inhalt des Ordners boot0 auf die Anfangsbytes meiner Festplatten zu kopieren.
Dies ist der Befehl:
sudo dd if=boot0/ of=/dev/sdb ibs=440 obs=440 count=1
Aber ich bekomme diesen Fehler:
dd: error reading ‘boot0/’: Is a directory
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000209512 s, 0.0 kB/s
Wie kann ich dieses Problem lösen?
dd
liest Dateien, keine Ordner. Dies ist jedoch nicht die richtige Methode, um Dateien an den Start eines Laufwerks zu schreiben. Sie müssen zuerst eine FAT32-Partition erstellen und danncp
den Inhalt kopieren.Antworten:
Es kann getan werden
Wir müssen zwei Probleme umgehen:
dd
weiß nicht, was ich mit Verzeichnissen machen solldd
Es kann jeweils nur eine Datei kopiert werdenDefinieren wir zunächst Eingabe- und Ausgabeverzeichnisse:
Lassen Sie uns nun
cd
in das Quellverzeichnisfind
gehen, um relative Verzeichnisse zu melden, die wir leicht bearbeiten können:Duplizieren Sie den Verzeichnisbaum von
$SOURCE
bis$TARGET
Duplizieren Sie Dateien von
$SOURCE
bis zum$TARGET
Weglassen des Schreibcaches (verwenden Sie jedoch den Lesecache!)Bitte beachten Sie, dass dadurch die Änderungszeiten, der Besitz und andere Attribute der Datei nicht erhalten bleiben.
quelle
Der Hauptzweck des
dd
Dienstprogramms ist das Konvertieren und Kopieren von Dateien.Zum Beispiel:
Wenn Sie den Inhalt des Ordners kopieren möchten, verwenden Sie entweder
rsync
:oder
cp
Dienstprogramm:quelle
-R
/-r
nicht erforderlich bei Verwendung-a
wie-a
immer impliziert rekursiv.Versuchen Sie diesen Befehl:
quelle
cp -a
Dies ist vorzuziehen,cp -r
da Berechtigungen, Zeitstempel, symbolische Links usw. beibehalten werden.cp -r
Alle Dateien, deren Eigentümer Sie sind, werden wie bisher mit einem Erstellungs- / Änderungsdatum zurückgesetzt, und symbolische Links werden befolgt und ihre Ziele dupliziert.