Ich wollte eine 1-GB-Zufallsdatei erstellen und habe den folgenden Befehl verwendet.
dd if=/dev/urandom of=output bs=1G count=1
Stattdessen erhalte ich jedes Mal, wenn ich diesen Befehl starte, eine 32-MB-Datei:
<11:58:40>$ dd if=/dev/urandom of=output bs=1G count=1
0+1 records in
0+1 records out
33554431 bytes (34 MB, 32 MiB) copied, 0,288321 s, 116 MB/s
Was ist falsch?
BEARBEITEN:
Dank großartiger Antworten in diesem Thema kam ich mit einer Lösung, die 32 Chunks mit einer Größe von 32 MB liest und 1 GB ergibt:
dd if=/dev/urandom of=output bs=32M count=32
Es wurde eine andere Lösung angegeben, die 1 GB direkt in den Speicher liest und dann auf die Festplatte schreibt. Diese Lösung benötigt viel Speicher und wird daher nicht bevorzugt:
dd if=/dev/urandom of=output bs=1G count=1 iflag=fullblock
headkann diese Aufgabe nicht ohne die -cOption ausführen , die nicht in POSIX enthalten ist . Ich kenne keine Version, catdie das lösen kann. rsyncist ein völlig anderes Dienstprogramm. Das ist weder hier noch dort; Beim Durchblättern der Manpage sehe ich auch keine Möglichkeit, dieses Problem zu lösen.
/dev/urandomist es auch nicht in POSIX ...
dd. Ich würde verwendenhead,catoderrsyncan seiner Stelle fast immer. Und Ihre Frage, ob einer der Gründe, warum die Alternativen in der Regel sicherer sind.