O que são Inodes e Superblocos no Linux

Inodes e Superblocos no Linux

Neste artigo vamos apresentar dois conceitos muito importantes para a administração de sistemas Linux: Inodes e Superblocos. Ambos tem relação com o gerenciamento do sistema de arquivos (filesystem).

Um sistema de arquivos pode ser dividido em duas categorias de objetos:

  • Dados de usuários -Dados reais armazenados em diretórios
  • Metadados – Informações estruturais do sistema de arquivos, como diretórios, superblocos e inodes

O espaço em um disco é dividido em múltiplos ‘blocos’, os quais são usados para:

  • Armazenar os dados de usuários (maioria dos blocos);
  • Armazenar os metadados do sistema de arquivos.

Inode

Todo arquivo em um sistema de arquivos Linux possui um número único especial que é chamado de Inode. Cada objeto no sistema de arquivos é representado por um inode. O inode é uma estrutura de dados usada pelo sistema operacional para armazenar as propriedades do arquivo, e ele contém informações como:

  • Informações sobre grupo e proprietário do arquivo
  • Tipo do arquivo (comum, diretório, socket, pipe, bloco, etc.)
  • Permissões do arquivo
  • Tamanho do arquivo
  • Data e hora na qual o arquivo foi criado
  • Data e hora da última modificação ou leitura
  • Outras informações específicas

Uma definição mais formal de inode, retirada da Wikipedia, é a seguinte:

“Em um sistema de arquivos de estilo Unix, um nó de índice, informalmente referido como um nó-i (inode), é uma estrutura de dados usada para representar um objeto do sistema de arquivos, que pode ser uma de várias coisas, incluindo um arquivo ou diretório.”

Como vemos, o conceito de inode é pertinente aos sistemas Unix e derivados, não estando presente somente em distribuições Linux.

Em Linux, podemos descobrir o número de inode de um arquivo ou diretório usando a opção -i do comando ls. Por exemplo, se quisermos descobrir o inode do arquivo /etc/passwd, basta executar o comando a seguir:

# ls -li /etc/passwd

Outra opção é usar o comando stat, que traz várias informações sobre um arquivo passado como parâmetro, incluindo seu número de inode. Veja o exemplo a seguir:

$ stat /etc/passwd

Saída:

Comando stat no Linux  mostrando inodes

Caso você queria ver as informações de inodes do sistema de arquivos, pode usar o comando df com a opção -i:

$ df -i

Saída:

Comando df-i no Linux mostrando inodes

Superbloco

O superbloco é um bloco especial que contém informações sobre o sistema de arquivos, como:

  • Tipo do sistema de arquivos;
  • Status
  • Tamanho
  • Estruturas de metadados

O Linux mantém cópias do superbloco em cada sistema de arquivos.

O superbloco é utilizado para unir todos os inodes em um sistema de arquivos, contendo todas as informações necessárias para gerenciar os arquivos.

Como o superbloco é muito importante no sistema, é comum haver uma cópia de backup do superbloco em intervalos regulares no sistema de arquivos, além de ser mantida uma cópia em memória RAM.

Podemos visualizar o conteúdo do superbloco em uma partição, como a /dev/sda1, com o comando dumpe2fs, como segue:

# dumpe2fs /dev/sda1

A figura a seguir mostra o resultado da execução desse comando em uma distribuição Linux Fedora 26 (apenas uma parte da saída é mostrada, pois o comando retorna muitas informações):

Comando dumpe2fs no Linux Fedora, mostrando o superbloco

Podemos também filtrar a saída do comando dumpe2fs para mostrar apenas as informações sobre os backups do superbloco, como segue:

# dumpe2fs /dev/sda1 | grep -i superblock

Verificando backups de superblocos com dumpe2fs no Linux

Os backups do superbloco se encontram nos seguintes locais:

  • Em sistemas de arquivos com blocos de 1K -> no bloco 8193
  • Em sistemas de arquivos com blocos de 2K -> no bloco 16384
  • Em sistemas de arquivos com blocos de 4K -> no bloco 32768

É isso aí! Neste artigo introduzimos os conceitos de inodes e superblocos no Linux. Na próxima lição vamos falar mais sobre o sistema de arquivos do Unix / Linux.

Até lá!

 

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

2 Comentários em O que são Inodes e Superblocos no Linux

  1. Fábio, pode-se dizer que os INODES servem para indicar também a posição/local do arquivo dentro do disco?

Escreva um comentário

Seu e-mail não será divulgado


*