私はLinuxを初めて使用していますが、特定のパーティションで利用可能なデータサイズを知りたいです。ただし、別のプログラムを実行すると、使用可能なサイズが異なります。
ファイルシステムについて私が知っていること:
- ファイルとサブディレクトリの名前は親ディレクトリファイルに保存されます。
- ファイルのメタデータ(アクセス権など)は、inodeデータ(inodeデータテーブル)に保存されます。
- 各パーティションにはロギングシステムがあります。
私はファイルシステムEXT4を使用して/ dev / sdb3にまったく新しいデータレスパーティションを作成しました。 Lost+Found という 1 つのフォルダしかありません。このフォルダは自動的に作成され、1024バイトの16ブロックを使用しました。ごみ箱用のようです。
そして:
sudo dumpe2fs -h /dev/sdb3
私は得る:
Filesystem UUID: 38747522-7dbd-45f7-8bc3-a18cf4376b1d
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 13107200
Block count: 52428544
Reserved block count: 2621427
Free blocks: 51328243
Free inodes: 13107189
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 1024
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Mon Dec 4 15:57:13 2023
Last mount time: Mon Dec 4 15:59:30 2023
Last write time: Mon Dec 4 16:16:29 2023
Mount count: 2
Maximum mount count: -1
Last checked: Mon Dec 4 15:57:13 2023
Check interval: 0 (<none>)
Lifetime writes: 231 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 32
Desired extra isize: 32
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 8c75ef2f-d7d6-440b-8ae4-3459397d6a35
Journal backup: inode blocks
Checksum type: crc32c
Checksum: 0xef4a6bbd
Journal features: journal_incompat_revoke journal_64bit journal_checksum_v3
Journal size: 1024M
Journal length: 262144
Journal sequence: 0x0000000c
Journal start: 1
Journal checksum type: crc32c
Journal checksum: 0x46b9de63
ブロック数:52428544、ブロックサイズ:4096
Inode数:13107200、Inodeサイズ:256
ログ長:262144ブロック
だから私はinodeテーブル13107200 * 256/4096 = 819200ブロック
(52428544-819200-262144) * 4 = 205388800 1kブロックのファイルデータを計算します。
私が電話したとき:df /dev/sdb3
私が受け取ったもの:
Filesystem 1K-blocks Used Available Use%
/dev/sdb3 205374440 61468 194810880 1%
205388800と計算しましたが、ファイルデータブロックサイズが205374440で、
14360 1kブロックの差が残りますね。私が何を間違っているのでしょうか?
次の質問:
==============
dumpe2fsは、4096バイトの利用可能なブロックが51328243個あると言います
。これは 51328243*4= 205312972 1k ブロックです。
61468個の使用済みブロックを追加すると、205374440 1k - チャンクが得られます。 dfでそうです。
ただし、利用可能なブロックから予約済みブロックを減算する場合:
使用可能ブロック:51328243
予約済みブロック数:2621427
(私が知っている限り、これはルート用に予約済みブロックです)
私は(51328243-2621427)* 4 = 194827264 1kブロックの利用可能なサイズを得ましたが、dfは194810880 1kブロックを使用できることを示しています。これは16384 1kブロックの違いです。私が何か間違っているのですか?
最後の質問:
===================
パーティションは完全に無料です。パーティションには紛失+発見フォルダのみがあり、サイズは16 1kブロックです。
61468 1k ブロックを使用する理由 - Inode テーブル、ログサイズ、61 MB の空き容量が必要なことについて考えてみましたか?
お時間をいただきありがとうございます。