ファイルに分離されたext4ファイルシステムを作成する方法

ファイルに分離されたext4ファイルシステムを作成する方法

25G /dev/sda6 ext4 パーティションが /data にマウントされます。 、、、を使用してfallocateファイルに固定サイズのファイルシステムを作成しようとしていますmkfs.ext4mount

fallocate -l 5G /data/new_storage
mkfs.ext4 -E nodiscard /data/new_storage
mkdir /data/new_dir
mount /data/new_storage /data/new_dir

しかし、du/dataは/data/new_storageが5Gではなく4.9Gを占めることを示しています。mkfs.ext4これは実行後に発生します。同時にls、そのファイルは5Gを占有しているそうです。

したがって、新しいファイルシステムは隔離されず、子ファイルシステムが作成された後に親ファイルシステムが完全に満たされると、子ファイルシステムを埋めるとエラーが発生する可能性があります。

loop: Write error at byte offset 2281734144, length 4096.
print_req_error: I/O error, dev loop0, sector 4456512

ext2を使用したときにdu表示される数量は正確に割り当てられた数量であり、同様の動作でエラーは発生しません。

ext4が無効なログはdu5Gにもう少し近いですが、それでも5Gと同じではありません。

期待どおりの動作に応じて、20G または 25G の空き領域 (サービス データのために少し少ない空き領域) を持つ 1 つの /dev/sda6 パーティションと 2 番目の 5G ループバック /dev/loop0 パーティション (サービス データのために少し少ない空き領域)があります。少し)。お互い。この動作を達成することは可能ですか?

fstrim実行される可能性もありますが、これによりファイルにホールパンチングが発生します。fstrim新しいファイルシステムで実行を完全に無効にすることは可能ですか?

関連情報