Estrutura do bloco ext2: tamanho dos blocos GDT reservados

2

Em toda publicação que encontrei sobre o ext2, a estrutura de um grupo de blocos é definida da seguinte forma:

  • Super bloco: 1 bloco
  • Descritor de Grupo: N blocos
  • Bitmap de dados: 1 bloco
  • Bitmap do inode: 1 bloco
  • Tabela de Inodes: N blocos
  • Blocos de dados: blocos restantes

No entanto, no documento do kernel do ext2 , afirma-se que as versões > 0 podem não ser armazenadas cópias dos superblocos e descritores de grupo em cada grupo de blocos.

Quando eu fsstat minha partição ext2, recebo a seguinte saída:

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

Há duas coisas sobre essa saída que me confundem:

  1. Nos grupos em que o SB e o grupo desc. são armazenados, há um intervalo de 256 blocos entre o grupo desc. e bitmap de dados. EDIT: Usando dumpe2fs acabei de descobrir que estes são blocos GDT reservados, usado para redimensionamento online . Portanto, a nova pergunta é: como o tamanho desses blocos reservados de GDT é determinado?

  2. O que significa Data Blocks: 16387 - 16386 no Grupo 2?

por goose999 02.04.2014 / 16:32

1 resposta

1

O recurso resize_inode cria um inode oculto (número 7, você pode visualizá-lo em debugfs com stat <7> ) para reservar esses blocos para que o GDT possa ser expandido. Por padrão, ele reserva espaço suficiente para aumentar o sistema de arquivos para 1024 vezes seu tamanho original. Você pode desativar o recurso ou ajustar o tamanho usando as opções para mke2fs no momento do formato.

What does Data Blocks: 16387 - 16386 in Group 2 mean?

Isso parece simplesmente um bug no programa, já que você não pode ter um tamanho negativo (termina antes de começar).

    
por 02.04.2014 / 17:20