我是 Linux 新手,我想知道某个分区的可用数据大小。但是执行不同的程序给了我不同的可用大小。
我对文件系统的了解:
- 文件和子目录的名称存储在父目录文件中
- 文件的元数据(例如访问权限)存储在索引节点数据(索引节点数据表)中
- 每个分区可以有一个日志系统
我在 /dev/sdb3 上使用文件系统 EXT4 创建了一个全新的无数据分区,其中只有一个名为 Lost+Found 的文件夹,该文件夹是自动创建的,并使用 16 个 1024 字节的块,我认为是用于回收站。
和:
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 说有 51328243 个 4096 字节的空闲块
,即 51328243*4= 205312972 1k 块
如果我添加 61468 个已用块,我得到 205374440 1k-来自 df 的块,没错。
但如果我从空闲块中减去保留块:
空闲块:51328243
保留块计数:2621427
(据我所知,这些是根的保留块)
我得到 (51328243-2621427)*4 = 194827264 1k 块的可用大小,但 df 告诉我,有 194810880 1k 块可用,这是 16384 1k 块的差异,我做错了什么。
最后一个问题:
==================
该分区是完全空闲的,分区上只有丢失+找到的文件夹,大小为 16 1kblocks。
为什么使用 61468 1k 块 - 我已经考虑过,inode 表、日志大小,还有什么需要 61MB 的空间?
感谢您提前抽出时间