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

Linux でのディスク容量不足のテスト

<オール>
  • 必要なサイズのファイルを作成します (ここでは 10MB)

    dd if=/dev/zero of=/home/qdii/test bs=1024 count=10000

  • このファイルからループバック デバイスを作成します

    losetup -f /home/qdii/test

  • 必要なファイル システムでそのデバイスをフォーマットします

    mkfs.ext4 /dev/loopXXX

  • 好きな場所にマウントします (/mnt/test 存在する必要があります)

    sudo mount /dev/loopXXX /mnt/test

  • プログラムをそのパーティションにコピーしてテストします

    cp /path/my/program /mnt/test && cd /mnt/test && ./program

  • /dev/loopXXX に置き換えます ループデバイス losetup で 作成、losetup -a で調べる .

    完了したら、次のことを忘れないでください:

    • sudo umount /mnt/test でアンマウント .
    • 使用後にループ デバイスをクリーンアップするには、losetup -D /dev/loopXXX を使用します
    • ファイルを削除します。

    もう 1 つの可能性は、setrlimit(2) syscall で RLIMIT_FSIZE を使用して適切な制限を減らすことです。 または bash ulimit ビルトイン (-f を使用) )。その後、write(2) は EFBIG で失敗します

    また、適切なファイル システムにクォータを設定することもできるので、write(2) EDQOT で失敗します .

    本当の ENOSPC が必要な場合 write(2) へのエラー おそらく、qdii が回答したループバック ファイル システムが必要です。

    ところで、EIO を「エミュレート」する方法がよくわかりません エラー (おそらくいくつかの FUSE ファイルシステムで?)。

    多くのプログラムは write(2) を処理します エラー (およびほとんどすべてのエラー)。しかし、 write(2) で発生する可能性のあるさまざまなエラーを非常に異なる方法で処理する多くのプログラムを知りません .ほとんどのプログラムはすべての write(2) を処理します エラーも同じです。


    /dev/full を使用するだけで、書き込もうとすると ENOSPC エラーが発生します:

    $ echo "Hello world" > /dev/full
    bash: echo: write error: No space left on device
    

    Linux
    1. Linuxのシステム管理者は知りたがっています:私のディスクスペースはどこに行きましたか?

    2. Linux –ディスク/ディスクのコピーを遅くしますか?

    3. 「du」コマンドを使用して Linux でのディスク使用量を確認する

    1. Linuxでdfを使用して空きディスク容量を確認します

    2. Linuxでduを使用して使用済みディスク容量を確認する

    3. dfおよびduコマンドを使用してLinuxのディスク容量を確認する

    1. Linuxでトップディレクトリとファイル(ディスク容量)を見つける方法

    2. Linux –ディスクスペースの使用を最小限に抑える方法は?

    3. サブスクリプションまたはドメインのディスク容量が不足しています