mkfs ext2는 inode 번호를 무시합니다.

mkfs ext2는 inode 번호를 무시합니다.

ext2 파일 시스템을 만들고 싶습니다. "를 설정하고 싶습니다.인덱스 노드 수"특정 번호에 대한 옵션입니다. 여러 값을 시도했습니다.

  • 만약에-N 99000그런 다음 인덱스 노드 수: 99552
  • 만약에-N 3500그런 다음 인덱스 노드 수: 3904
  • 만약에-N500그런 다음 인덱스 노드 수: 976

하지만 내 가치는 언제나아니 똑같다. 왜?

나는 mkfs를 이렇게 호출한다

sudo mkfs -q -t ext2 -F /dev/sda2 -b 4096 -N 99000 -O none,sparse_super,large_file,filetype

이렇게 결과를 확인해보니

$ sudo tune2fs -l /dev/sda2
tune2fs 1.46.5 (30-Dec-2021)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          11111111-2222-3333-4444-555555555555
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      filetype sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              99552
Block count:              1973720
Reserved block count:     98686
Overhead clusters:        6362
Free blocks:              1967353
Free inodes:              99541
First block:              0
Block size:               4096
Fragment size:            4096
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         1632
Inode blocks per group:   102
Filesystem created:       Thu Apr  6 20:00:45 2023
Last mount time:          n/a
Last write time:          Thu Apr  6 20:01:49 2023
Mount count:              0
Maximum mount count:      -1
Last checked:             Thu Apr  6 20:00:45 2023
Check interval:           0 (<none>)
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
Default directory hash:   half_md4
Directory Hash Seed:      61ff1bad-c6c8-409f-b334-f277fb29df54

답변1

이 숫자는 무시되지 않고 반올림됩니다. inode를 위한 공간이 그룹별로 할당된 것 같습니다. 출력에서 다음을 확인하세요.

Inodes per group:         1632

99,000개의 inode를 요청하면 1,632로 나눌 수 없습니다. 따라서 필요한 inode 수를 확보하기 위해 이 숫자는 1,632로 나눌 수 있는 99,552로 반올림되었습니다.

이 제한은 수량에서 어떻게든 파생된 것 같습니다.블록 그룹여기서 각 그룹의 inode 수는 모든 블록 그룹에서 동일합니다. 내 생각에는 블록 그룹당 inode 수는 요청된 inode 수를 블록 그룹 수로 나눈 다음 정수로 반올림하여 계산됩니다. 바라보다OSDev Wiki의 Ext2

블록 그룹이란 무엇입니까? 블록은 inode와 함께 "블록 그룹"으로 그룹화됩니다. 이것들은 연속된 그룹에 지나지 않습니다.

조각.

각 블록 그룹은 다음과 같은 특별한 목적을 위해 일부 블록을 예약합니다.

  • ...
  • 이 그룹에 속한 인덱스 노드 구조 테이블
  • ..

관련 정보