Forum: PC Hard- und Software dd unter Linux streikt


von Tobias (Gast)


Lesenswert?

Hallo zusammen,
irgendwie zweifle ich grad an mir selbst. Ich versuche eine leere Datei 
mit einer bestimmten Größe anzulegen. dd ist dafür ja geradezu 
prädestiniert:

dd if=/dev/null of=testfile bs=1K count=1000

Doch statt wie erwartet eine knapp 1 MB-Große Datei zu erhalten endet er 
mit

0+0 Datensätze ein
0+0 Datensätze aus
0 Bytes (0 B) kopiert, 0,000799421 s, 0,0 kB/s

und im aktuellen Verzeichniss liegt eine leere Datei. Ich bin Eigentümer 
des aktuellen Verzeichnisses, und kann auch sonst jede Datei anlegen die 
ich will. Zuerst dachte ich es liegt vielleicht am System. Mittlerweile 
habe ich das ganze an 3 Rechner probiert (Mac, OpenSuse und Ubuntu) und 
bei allen das gleiche Ergebnis erzielt. Denke der Fehler bin ich, aber 
ich steh grad komplett auf dem Schlauch. Was mache ich falsch?

Tobi

von Tobias (Gast)


Lesenswert?

Oh Mann. In dem Moment wo ich das ganze gepostet habe fiel mir mein 
Fehler auf. Natürlich /dev/zero und nicht /dev/null für lauter Nullen...

Ähm. Betrachtet diesen Thread als nicht existent.

von Frank (Gast)


Lesenswert?

Du bist nicht er erste, der darüber gestolpert ist :-)

von Daniel (Gast)


Lesenswert?

Mit
dd count=0 of=testfile bs=1K seek=1000
wird die Datei übrigens sparse.
Und man braucht /dev/null nicht.

von Jörg E. (jackfritt)


Lesenswert?

Ok geschrieben ist es schneller und um die Datei zu erzeugen sollte auch 
schneller gehen.
Aber besteht ein Unterschied? Sollten doch dann beide sparse sein oder 
nicht?
Also count=0 oder /dev/zero?

von Norbert (Gast)


Lesenswert?

Jörg Esser schrieb:

> Aber besteht ein Unterschied? Sollten doch dann beide sparse sein oder
> nicht?
> Also count=0 oder /dev/zero?

Nein, nur die Erzeugung einer Datei mit 'seek' erzeugt ein sparsefile.
Mit /dev/zero werden wirkliche, echte 0x00 auf die Platte gebrannt.


Allgemein:
> dd if=/dev/null of=testfile bs=1K count=1000
> Doch statt wie erwartet eine knapp 1 MB-Große Datei zu erhalten...

> knapp

'bs=1K count=1000' erzeugt eine Datei die größer als ein MB und kleiner 
als ein MiB ist.

'bs=1000 count=1000' ==> 1MB
'bs=1k count=1k' ==> 1MiB

von Jörg E. (jackfritt)


Lesenswert?

@Norbert

wieder was gelernt :) Thx

von Andreas B. (andreas_b77)


Lesenswert?

Daniel schrieb:
> Mit
> dd count=0 of=testfile bs=1K seek=1000
> wird die Datei übrigens sparse.
> Und man braucht /dev/null nicht.

Einfacher gehts mit
truncate -s 1M testfile

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.