GNU/Linux >> Linux の 問題 >  >> Linux

大量のディスク容量をすぐにいっぱいにする/使い切る方法は?

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 以降) でサポートされています。


その他の代替手段は次のとおりです:

<オール>
  • アラームのしきい値を現在の使用量に近いかそれ以下に変更する、または
  • inode、サイズ、またはその他の属性が制限された非常に小さなテスト パーティションを作成します。
  • もしあれば、ルート予約率に実行するなどのことをテストできることも便利かもしれません.


    <オール>
  • 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
    

    Linux
    1. Linuxでスワップスペースを作成または増やす方法

    2. 特定のファイル タイプのディスク容量を集計して測定する

    3. inotify を使用する適切な方法は何ですか?

    1. ターミナルウィンドウからLinuxでファイルを作成するには?

    2. ファイル名に / を使用できますか?

    3. Linux で空きディスク領域を消去するには?

    1. Linuxでハードドライブをいっぱいにする方法

    2. ファイルを削除していますが、ディスク容量はまだいっぱいです

    3. btrfs を使用して ssd ディスクにスワップファイルを作成する方法