
組み込みLinuxデバイスのフラッシュメモリパーティションサイズについて混乱しています。
/ # cat /proc/partitions
major minor #blocks name
240 0 93184 ndda
240 1 85168 ndda1
240 2 7000 ndda2
240 3 1000 ndda3
ndda2とndda3に対応するパーティションのサイズは、それぞれ7000kBと1000kBであることがわかっています。
nddaがndda1 + ndda2 + ndda3のサイズより16kB大きいことがわかります。
それは、93184 - (85168 + 7000 + 1000) = 16。
この16kBは何で構成されていますか?これについてもっと学ぶことができる場所はどこですか?
/nand1というディレクトリにndda1をインストールすると、次の結果が表示されます。
/ # df
Filesystem 1k-blocks Used Available Use% Mounted on
tmpfs 27044 0 27044 0% /dev/shm
/dev/ndda1 84928 64288 20640 76% /nand1
サイズ(84928kB?)は、/proc/partitionsが報告するよりも240kB小さいです。
繰り返しますが、どのような構造に責任がありますか?
パーティションは次のようにマウントされます。脂肪組織。
答え1
パーティションは通常2MBの境界で始まり、ファイルシステムブロックを物理ブロック(デバイスによっては16kB、64kB以上である可能性があります)と位置合わせします。ソートされていないブロックは、ファイルシステムブロックを更新するときに2つのデバイスブロックを取得しなければならず、最初のブロックの最後の部分が更新され、2番目のブロックの最初の部分が更新され、両方のブロックが書き換えられなければなりません。意味します。これは、適切にソートされたファイルシステムよりもブロック読み取りが2回多く、ブロック書き込みが1回多くなります。
デバイスの先頭でパーティションテーブル自体を見つけることができます。これが最初のパーティションがブロック0から開始できない理由です。
2番目の質問(ファイルシステムがデバイスより小さい理由):ファイルシステムには管理データ(空きブロックのリストなど)が必要です。これは予約済みスペースなので、直接データの保存には使用できません。