質問:ファイルシステムに事前定義された空き容量を提供するために必要なext4パーティションのサイズを計算する方法は?
例:100 GBのスペースを持つファイルシステムが必要なので、df
GPartedの新しいext4パーティションに必要なMiBスペースがどれだけあるかを知りたいです。
df
背景:表示されているファイルシステムサイズlsblk -b
(1Kブロックは1024バイト)と(1サイズ単位は1バイト)異なることがわかりました。lsblk
見せるから理解できますね分割そしてdf
表示サイズはファイルシステム(実際にファイルに使用できるスペース)
例:
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda10 90187896 57032 85506480 1% /home/user
$ lsblk -b
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda10 8:10 0 94371840000 0 part /home/user
df-calculation: 90187896*1024 = 92352405500 bytes
lsblk: 94371840000 bytes
overhead: 1 - 92352405500/94371840000 ~ 2.14%
デフォルトのext4構成(GParted、LinuxMintなど)では、ブロック対inode比は4:1、ブロックサイズは4096、inodeサイズは256なので、データ対inode比は64:1です(ソース:)tune2fs -l
。したがって、inodeテーブルはext4ファイルシステムのオーバーヘッドの1.5625%しか占めません。
残りのオーバーヘッドはどこで発生し、どのように計算されますか?さまざまなext4パーティションサイズ(10,000〜380,000MiB)でテストしましたが、オーバーヘッドは〜1.8〜2.3%の間で変動しましたが、パーティションサイズが増加するにつれて減少するように見えました(図を参照)。
注記#1:私の質問は、KiB(21⁰バイト)対KB(103バイト)、MiB(22⁰バイト)対MB(10⁶バイト)、GiB(23⁰バイト)対GB(10⁹バイト)などとは関係ありません。
注#2:これは、に示すように予約されているブロック(デフォルトは5%)とは無関係ですdf
。
ベストアンサー1
まあ、利用可能最大容量と推定できます[Partition Size] * (1 - inode_size / inode_ratio - reserved-blocks-percentage)
。したがって、特定の容量を取得するには..を計算します[Partition Size] = [Capacity] / (1 - inode_size / inode_ratio - reserved-blocks-percentage)
。一般的な値については、/etc/mke2fs.confを参照してください。