Schnelle Erstellung von Linux-Dateien


7

Ich möchte eine leere Datei (möglicherweise nicht auf Null gesetzt) ​​im ext4-Dateisystem erstellen. Ich kann das machen mit:

dd if=/dev/zero of=file count=xxxx

Es dauert jedoch eine Weile, bis x bei 0,5 T liegt. Ich nehme an, es gibt eine Möglichkeit, eine solche Datei schnell zu erstellen. Es kann Kauderwelsch enthalten, es spielt keine Rolle.

Antworten:


8

Sie können eine Datei mit geringer Dichte erstellen, haben jedoch möglicherweise nicht die gewünschten Ergebnisse, je nachdem, warum Sie dies tun:

dd if=/dev/zero of=sparse_file bs=1 count=1 seek=512M

ls -l sparse_file        
-rw-rw-r-- 1 kbrandt kbrandt 536870913 2010-03-03 08:30 sparse_file

Das Problem ist, dass wenn ein Programm nicht weiß, wie man mit spärlichen Dateien umgeht, wenn Sie so etwas wie die Datei kopieren, es mit Nullen gefüllt wird. Siehe beispielsweise diesen vorherigen Beitrag zum Serverfehler . Sie können den Unterschied auch sehen mit du:

[kbrandt@kbrandt-opadmin: /bigfiles] du sparse_file
12  sparse_file
[kbrandt@kbrandt-opadmin: /bigfiles] du sparse_file --apparent-size
524289  sparse_file
[kbrandt@kbrandt-opadmin: /bigfiles] #cat is not sparse aware, watch what happens
[kbrandt@kbrandt-opadmin: /bigfiles] cat sparse_file > sparse_file2 
[kbrandt@kbrandt-opadmin: /bigfiles] du sparse_file2
524808  sparse_file2

Wenn Sie tatsächlich die Nullen eingeben möchten und ein höheres bs festlegen, ist es möglicherweise etwas schneller als bs = 4096. Hier ist ein Link zu jemandem, der tatsächlich einige Benchmarks mit dd-Blockgrößen durchgeführt hat.


4

Würde eine spärliche Datei ausreichen?

% dd if=/dev/zero of=sparsefile bs=1k seek=500M count=1
1+0 records in
1+0 records out
1024 bytes transferred in 0.000224 secs (4569114 bytes/sec)

% ls -lh sparsefile
-rw-------  1 james  james   500G  3 Mar 13:30 sparsefile

2

Verwenden:

truncate -s 500G filename

Es ist sehr schnell, wenn Ihr Dateisystem spärliche Dateien unterstützt.

Der Dateiinhalt wird immer auf Null gesetzt. Unter Linux können Sie Festplattensektoren nicht wiederverwenden, ohne sie auf Null zu setzen, da dies ein Sicherheitsrisiko darstellt. Bei Dateien mit geringer Dichte werden Sektoren nur zugewiesen, wenn sie zum ersten Mal beschrieben werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.