저는 Linux를 처음 사용하는데 특정 파티션에서 사용 가능한 데이터 크기를 알고 싶습니다. 그러나 다른 프로그램을 실행하면 사용 가능한 크기가 달라집니다.
파일 시스템에 대해 내가 아는 것:
- 파일 및 하위 디렉터리의 이름은 상위 디렉터리 파일에 저장됩니다.
- 파일의 메타데이터(예: 액세스 권한)는 inode 데이터(inode 데이터 테이블)에 저장됩니다.
- 각 파티션에는 로깅 시스템이 있을 수 있습니다.
나는 파일 시스템 EXT4를 사용하여 /dev/sdb3에 완전히 새로운 데이터 없는 파티션을 만들었습니다. Lost+Found라는 폴더 하나만이 있습니다. 이 폴더는 자동으로 생성되어 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 테이블, 로그 크기, 61MB의 공간이 필요한 또 무엇에 대해 생각해 보았습니까?
시간을 내주셔서 감사합니다.