ext2에서 찾은 모든 출판물에서 블록 그룹의 구조는 다음과 같이 정의됩니다.
- 슈퍼블록 : 1블록
- 그룹 설명자: N 블록
- 데이터 비트맵: 1블록
- Inode 비트맵: 1블록
- 인덱스 노드 테이블: N 블록
- 데이터 블록: 남은 블록
그러나ext2 커널 문서버전 >0은 각 블록 그룹에 슈퍼블록 및 그룹 설명자의 복사본을 저장하지 않을 수 있다고 합니다.
ext2 파티션을 사용 하면 fsstat
다음과 같은 결과가 나타납니다.
Group: 1:
Inode Range: 1977 - 3952
Block Range: 8193 - 16384
Layout:
Super Block: 8193 - 8193
Group Descriptor Table: 8194 - 8194
Data bitmap: 8451 - 8451
Inode bitmap: 8452 - 8452
Inode Table: 8453 - 8699
Data Blocks: 8700 - 16384
Free Inodes: 1976 (100%)
Free Blocks: 0 (0%)
Total Directories: 0
Group: 2:
Inode Range: 3953 - 5928
Block Range: 16385 - 24576
Layout:
Data bitmap: 16385 - 16385
Inode bitmap: 16386 - 16386
Inode Table: 16387 - 16633
Data Blocks: 16387 - 16386, 16634 - 24576
Free Inodes: 1976 (100%)
Free Blocks: 0 (0%)
이 출력에 대한 두 가지 사항이 나를 혼란스럽게 합니다.
SB 그룹 및 그룹 설명. 저장 시 그룹 설명 사이에는 256개 블록의 간격이 있습니다. 및 데이터 비트맵. 편집:
dumpe2fs
GDT 블록을 사용하여 방금 이것이 예약되어 있다는 것을 알았습니다.온라인 크기 조정용. 그렇다면 새로운 질문은 예약된 GDT 블록의 크기가 어떻게 결정되는가입니다.Data Blocks: 16387 - 16386
그룹 2는 무엇을 의미하나요?
답변1
resize_inode 함수는 GDT가 커질 수 있도록 이러한 블록을 예약하기 위해 숨겨진 inode(7번, 를 사용하여 볼 수 있음 debugfs
) 를 생성합니다. stat <7>
기본적으로 파일 시스템을 원래 크기의 1024배로 늘릴 수 있는 충분한 공간을 예약합니다. mke2fs
포맷할 때 기능을 비활성화하거나 크기 조정 옵션을 사용할 수 있습니다 .
그룹 2: 16387 - 16386의 데이터 블록은 무엇을 의미합니까?
음수 크기(시작 전 끝) 범위를 가질 수 없기 때문에 이는 프로그램의 버그처럼 보입니다.