Ext2 블록 구조: GDT 블록 크기 유지

Ext2 블록 구조: GDT 블록 크기 유지

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%)

이 출력에 대한 두 가지 사항이 나를 혼란스럽게 합니다.

  1. SB 그룹 및 그룹 설명. 저장 시 그룹 설명 사이에는 256개 블록의 간격이 있습니다. 및 데이터 비트맵. 편집: dumpe2fsGDT 블록을 사용하여 방금 이것이 예약되어 있다는 것을 알았습니다.온라인 크기 조정용. 그렇다면 새로운 질문은 예약된 GDT 블록의 크기가 어떻게 결정되는가입니다.

  2. Data Blocks: 16387 - 16386그룹 2는 무엇을 의미하나요?

답변1

resize_inode 함수는 GDT가 커질 수 있도록 이러한 블록을 예약하기 위해 숨겨진 inode(7번, 를 사용하여 볼 수 있음 debugfs) 를 생성합니다. stat <7>기본적으로 파일 시스템을 원래 크기의 1024배로 늘릴 수 있는 충분한 공간을 예약합니다. mke2fs포맷할 때 기능을 비활성화하거나 크기 조정 옵션을 사용할 수 있습니다 .

그룹 2: 16387 - 16386의 데이터 블록은 무엇을 의미합니까?

음수 크기(시작 전 끝) 범위를 가질 수 없기 때문에 이는 프로그램의 버그처럼 보입니다.

관련 정보