Em primeiro lugar, e percebo que não é um dos termos da sua pergunta, você deve entender metadata . Sucintamente, e roubado da Wikipedia, os metadados são dados sobre os dados. Isso quer dizer que os metadados contêm informações sobre um dado. Por exemplo, se eu tenho um carro, tenho um conjunto de informações sobre o carro, mas que não faz parte do carro em si. Informações como o número de registro, marca, modelo, ano de fabricação, informações de seguro e assim por diante. Todas essas informações são coletivamente chamadas de metadados. Nos sistemas de arquivos Linux e UNIX, os metadados existem em vários níveis da organização, como você verá.
O superbloco é essencialmente um metadado do sistema de arquivos e define o tipo, tamanho, status e informações do sistema de arquivos sobre outras estruturas de metadados (metadados de metadados). O superbloco é muito crítico para o sistema de arquivos e, portanto, é armazenado em várias cópias redundantes para cada sistema de arquivos. O superbloco é uma estrutura de metadados muito "de alto nível" para o sistema de arquivos. Por exemplo, se o superbloco de uma partição, / var, for corrompido, o sistema de arquivos em questão (/ var) não poderá ser montado pelo sistema operacional. Normalmente, neste caso, você precisa executar fsck
, que selecionará automaticamente uma cópia de backup alternativa do superbloco e tentará recuperar o sistema de arquivos. As próprias cópias de backup são armazenadas em grupos de blocos espalhados pelo sistema de arquivos com o primeiro armazenado em um deslocamento de 1 bloco desde o início da partição. Isso é importante no caso de uma recuperação manual ser necessária. Você pode visualizar informações sobre backups de superblocos com o comando dumpe2fs /dev/foo | grep -i superblock
, que é útil no caso de uma tentativa de recuperação manual. Vamos supor que o comando dumpe2fs produza a linha Backup superblock at 163840, Group descriptors at 163841-163841
. Podemos usar essas informações e o conhecimento adicional sobre a estrutura do sistema de arquivos para tentar usar esse backup de superbloco: /sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo
. Por favor note que eu assumi um tamanho de bloco de 1024 bytes para este exemplo.
Um inode existe em ou sobre um sistema de arquivos e representa metadados sobre um arquivo. Para maior clareza, todos os objetos em um sistema Linux ou UNIX são arquivos; arquivos reais, diretórios, dispositivos e assim por diante. Por favor, note que, entre os metadados contidos em um inode, não há nome de arquivo como os humanos pensam, isso será importante mais tarde. Um inode contém essencialmente informações sobre propriedade (usuário, grupo), modo de acesso (leitura, gravação, permissões de execução) e tipo de arquivo.
Uma dentry é a cola que contém inodes e arquivos juntos, relacionando números de inodes a nomes de arquivos. Dentries também desempenham um papel no cache de diretórios que, idealmente, mantém os arquivos usados com mais frequência para acesso mais rápido. A travessia do sistema de arquivos é outro aspecto do dentry, pois mantém um relacionamento entre os diretórios e seus arquivos.
Um arquivo , além de ser o que os humanos normalmente pensam quando apresentados à palavra, é na verdade apenas um bloco de dados arbitrários logicamente relacionados. Comparativamente muito aborrecido, considerando todo o trabalho realizado (acima) para mantê-los informados.
Compreendo perfeitamente que algumas frases não fornecem uma explicação completa de nenhum desses conceitos, portanto sinta-se à vontade para solicitar detalhes adicionais quando e onde for necessário.