Linux システムでファイルを作成する最速の方法は fallocate
を使用することです :
fallocate -l 50G file
男から:
<ブロック引用>
fallocate は、ファイルに割り当てられたディスク領域を操作し、割り当てを解除または事前割り当てするために使用されます。
fallocate システム コールをサポートするファイル システムの場合、事前割り当ては、ブロックを割り当てて未初期化としてマークすることで迅速に行われ、データ ブロックへの IO は必要ありません。これは、ゼロで埋めてファイルを作成するよりもはるかに高速です。
XFS (Linux 2.6.38 以降)、ext4 (Linux 3.0 以降)、Btrfs (Linux 3.7 以降)、および tmpfs (Linux 3.5 以降) でサポートされています。
その他の代替手段は次のとおりです:
<オール>もしあれば、ルート予約率に実行するなどのことをテストできることも便利かもしれません.
<オール>
fallocate -l 50G big_file
truncate -s 50G big_file
dd of=bigfile bs=1 seek=50G count=0
これら 3 つの方法はすべてパーティションをすぐにいっぱいにする可能性があるためです。
必要に応じて dd を使用してください 、通常は seek で試すことができます . seek=file_size_what_you_need
を設定するだけです count=0
を設定します .これにより、ファイルがあることがシステムに通知されます 、およびそのサイズ は設定したものですが、システムは実際には作成しません。この方法を使用すると、パーティション サイズよりも大きなファイルを作成できます。
例:ext4 利用可能な 3G 未満のパーティション。 dd を使用 メタデータとして存在する 5T ファイルを作成します -- 実質的にブロック領域を必要としません。
df -h . ; dd of=biggerfile bs=1 seek=5000G count=0 ; ls -log biggerfile ; df -h .
出力:
Filesystem Size Used Avail Use% Mounted on
/dev/sda9 42G 37G 2.8G 94% /home
0+0 records in
0+0 records out
0 bytes copied, 4.9296e-05 s, 0.0 kB/s
-rw-rw-r-- 1 5368709120000 Jun 29 13:13 biggerfile
Filesystem Size Used Avail Use% Mounted on
/dev/sda9 42G 37G 2.8G 94% /home