Base de Conhecimento

Esses artigos fornecem informações básicas e recomendações úteis sobre recuperação de dados e acesso a arquivos.

Download software

Noções básicas sobre sistemas de arquivos

Noções básicas sobre sistemas de arquivos

Atualmente, o mercado oferece diferentes formas para armazenar informações no formato digital. Os dispositivos de armazenamento existentes incluem discos rígidos internos e externos, cartões de memória de câmeras de foto/vídeo, pendrives USB, sistemas RAID complexos, entre outros. Os dados são mantidos nesses dispositivos na forma de arquivos, como documentos, fotos, bancos de dados, mensagens de e-mail etc., que precisam ser organizados com eficiência no disco e recuperados facilmente quando necessário.

O artigo a seguir fornece uma visão geral do sistema de arquivos, os principais meios de gerenciamento de dados em qualquer armazenamento e descreve as peculiaridades dos diferentes tipos de sistemas de arquivos.


O que é um sistema de arquivos?

Qualquer arquivo de computador é armazenado em uma mídia de armazenamento com uma determinada capacidade. De fato, cada armazenamento é um espaço linear para leitura ou gravação de informações digitais. No início do armazenamento, cada byte de informações tem seu deslocamento (offset), este deslocamento é o seu endereço de referência. Um armazenamento pode ser apresentado como uma grade com um conjunto de células numeradas (cada célula é um único byte). Qualquer arquivo salvo no armazenamento obtém suas próprias células.

Geralmente, os armazenamentos de computador usam o par de deslocamento “sector”e “in-sector” para fazer referência a qualquer byte de informações no armazenamento. Um “setor” é um grupo de bytes (geralmente 512 bytes), uma unidade endereçável mínima do armazenamento físico. Por exemplo, o byte 1040 em um disco rígido será referenciado como um setor nº 3 e compensado no setor 16 bytes ([sector]+[sector]+[16 bytes]). Esse esquema é aplicado para otimizar o endereçamento de armazenamento, pois usa um número menor para se referir a qualquer parte das informações localizadas no armazenamento.

Para omitir a segunda parte do endereço (in-sector offset), os arquivos geralmente são armazenados a partir do início do setor e ocupam setores inteiros (por exemplo: um arquivo de 10 bytes ocupa todo o setor, um arquivo de 512 bytes também ocupa todo o setor, ao mesmo tempo, um arquivo de 514 bytes ocupa dois setores inteiros).

Cada arquivo é armazenado em setores "não utilizados" e pode ser lido posteriormente de acordo com sua posição e tamanho. No entanto, como sabemos quais setores estão ocupados e quais estão disponíveis? Onde estão armazenados o tamanho, a posição e o nome do arquivo? É exatamente pra isso que o sistema de arquivos serve.

Como um todo, um sistema de arquivos é uma representação estruturada de dados, composta por um conjunto de metadados que descrevem esses dados. É aplicado ao armazenamento durante a operação de formatação. Um sistema de arquivos serve para o armazenamento como um todo cumprir sua função, porém, também faz parte de um segmento de armazenamento isolado - uma partição de disco. Normalmente, um sistema de arquivos opera blocos, não setores. Os blocos do sistema de arquivos são grupos de setores que otimizam o endereçamento de armazenamento. Os sistemas de arquivos modernos geralmente usam tamanhos de bloco de 1 a 128 setores (512-65536 bytes). Os arquivos geralmente são armazenados no início de um bloco e ocupam blocos inteiros.

Operações constantes de gravação/exclusão no sistema de arquivos causam sua fragmentação. Assim, os arquivos não são armazenados como unidades inteiras, mas são divididos em fragmentos. Por exemplo, um armazenamento é completamente ocupado por arquivos com o tamanho de cerca de 4 blocos cada (por exemplo, uma coleção de fotos). Um usuário deseja armazenar um arquivo que ocupe 8 blocos e, portanto, exclui o primeiro e o último arquivos. Ao fazer isso, o usuário libera o espaço de 8 blocos, no entanto, o primeiro segmento fica localizado próximo ao início do armazenamento, enquanto o segundo segmento - fica no final do armazenamento. Nesse caso, o arquivo de 8 blocos é dividido em duas partes (4 blocos para cada parte) e ocupa o espaço livre de cada uma delas (holes). As informações sobre os dois fragmentos como partes de um único arquivo são armazenadas no sistema de arquivos.

Além dos arquivos do usuário, o sistema de arquivos também contém seus próprios parâmetros (como tamanho do bloco), descrição de arquivos (incluindo tamanho do arquivo, local do arquivo, seus fragmentos etc.), nomes de arquivos e hierarquia de diretórios. Também pode armazenar informações de segurança, atributos estendidos e outros parâmetros.

Para atender a diversos requisitos dos usuários, como desempenho, estabilidade e confiabilidade de armazenamento, diversos sistemas de arquivos são desenvolvidos para atender a diferentes finalidades com mais eficiência.

Sistemas de arquivos do Windows

O Microsoft Windows emprega dois principais sistemas de arquivos: NTFS, o formato principal que as versões mais modernas deste sistema operacional usam por padrão, e FAT, que foi herdado do DOS antigo e tem exFAT como sua extensão posterior. Além disso, o sistema de arquivos ReFS foi desenvolvido pela Microsoft como um sistema de arquivos de nova geração para computadores servidores a partir do Windows Server 2012.

FAT

O FAT (File Allocation Table) é um dos tipos mais simples de sistema de arquivos, que existe desde os anos 80. Ele consiste no setor de descrição do sistema de arquivos (setor de inicialização ou superbloco), na tabela de alocação de blocos do sistema de arquivos (referida como Tabela de Alocação de Arquivos) e no espaço de armazenamento simples para armazenar arquivos e pastas. Os arquivos no FAT são armazenados em diretórios. Cada diretório é uma matriz de registros de 32 bytes, cada um definindo um arquivo ou atributos estendidos de um arquivo (por exemplo, um nome de arquivo longo). Um registro de arquivo atribui o primeiro bloco de um arquivo. Qualquer próximo bloco pode ser encontrado na tabela de alocação de blocos, usando-o como uma lista vinculada.

A tabela de alocação de bloco contém uma matriz de descrição do bloco. Um valor zero indica que o bloco não é usado e um diferente de zero se refere ao próximo bloco de um arquivo ou a um valor especial para o final do arquivo.

Os números em FAT12, FAT16, FAT32 representam o número de bits usados para enumerar um bloco do sistema de arquivos. Isso significa que o FAT12 pode usar até 4096 referências de bloco diferentes, enquanto o FAT16 e o FAT32 podem usar até 65536 e 4294967296 respectivamente. A contagem máxima real de blocos é ainda menor e depende da implementação do driver do sistema de arquivos.

O FAT12 e o FAT16 costumavam ser aplicados a disquetes antigos e não são muito usados atualmente. O FAT32 ainda é amplamente utilizado para cartões de memória e pen drives. O sistema é suportado por smartphones, câmeras digitais e outros dispositivos portáteis.

O FAT32 pode ser usado em armazenamentos externos ou partições de disco compatíveis com o Windows com tamanho inferior a 32 GB (o Windows não pode criar um sistema de arquivos FAT32 com mais de 32 GB, embora o Linux suporte o tamanho de até 2 TB), no entanto esse sistema não serve para armazenar arquivos cujo tamanho exceda 4 GB. Para resolver esse problema, o exFAT foi introduzido, o que não possui limitações realistas em relação ao tamanho dos arquivos ou partições.

NTFS

O NTFS (New Technology File System) foi introduzido em 1993 com o Windows NT e atualmente é o sistema de arquivos mais comum para computadores com Windows. A maioria dos sistemas operacionais da linha Windows Server também usa esse formato.

O sistema de arquivos é bastante confiável graças ao registro no diário e suporta muitos recursos, incluindo controle de acesso, criptografia, etc. Cada arquivo no NTFS é armazenado como um descritor de arquivo na Master File Table (Tabela de Arquivos Mestre) e no conteúdo do arquivo. A Master File Table contém entradas com todas as informações sobre os arquivos: tamanho, alocação, nome etc. As 16 primeiras entradas da Master File Table são mantidas para o BitMap, que mantém um registro de todos os clusters livres e usados, o Log usado para registros e o BadClus contendo informações sobre clusters incorretos. O primeiro e o último setor do sistema de arquivos contêm configurações do sistema de arquivos (o registro de inicialização ou o superbloco). Este sistema de arquivos usa valores de 48 e 64 bits para fazer referência a arquivos, podendo suportar armazenamento de dados com capacidade extremamente alta.

ReFS

O ReFS (Sistema de Arquivos Resiliente) é o mais recente desenvolvimento da Microsoft introduzido no Windows 8 e agora disponível para o Windows 10. A arquitetura do sistema de arquivos é totalmente diferente de outros sistemas de arquivos do Windows e é organizada principalmente na forma de B+-tree. O ReFS possui alta tolerância a falhas devido a novos recursos incluídos no sistema. E ainda, com o recurso Copy-on-Write (CoW): nenhum metadado é modificado sem ser copiado; os dados não são gravados nos dados existentes, mas no novo espaço em disco. Com qualquer modificação no arquivo, uma nova cópia dos metadados é armazenada no espaço de armazenamento livre e, em seguida, o sistema cria um link dos metadados mais antigos para o mais recente. Assim, o sistema armazena uma quantidade significativa de backups antigos em locais diferentes, proporcionando fácil recuperação de arquivos, a menos que esse espaço de armazenamento seja substituído.

As informações sobre as perspectivas de recuperação de dados desses sistemas de arquivos podem ser encontradas em Chances de Recuperação. Para instruções e recomendações detalhadas, visite esta página.

Sistemas de arquivos do macOS

O macOS da Apple aplica dois sistemas de arquivos: HFS +, uma extensão para o seu próprio sistema de arquivos HFS usado em computadores Macintosh antigos. Além disso, foi lançado recentemente o APFS.

HFS+

O HFS + costumava ser o sistema de arquivos principal dos produtos de desktop da Apple, incluindo computadores Mac, iPods e produtos Apple X Server antes de ser substituído pelo APFS no macOS High Sierra. Os produtos avançados de servidor também usam o sistema de arquivos Apple Xsan, um sistema de arquivos em cluster derivado do StorNext e CentraVision.

O sistema de arquivos HFS + usa B-trees para inserir e localizar arquivos. Os volumes são divididos em setores, geralmente com 512 bytes de tamanho, que são agrupados em blocos de alocação, cujo número depende do tamanho de todo o volume. As informações relativas aos blocos de alocação disponíveis e usados são mantidas no Arquivo de Alocação. Todos os blocos de alocação atribuídos a cada arquivo são registrados no Extents Overflow File. E, finalmente, todos os atributos do arquivo estão listados no arquivo Atributos. A confiabilidade dos dados é aprimorada por meio do registro diferenciado, o que possibilita acompanhar todas as alterações no sistema e reverter alterações críticas rapidamente em caso de eventos inesperados. Entre outros recursos suportados, estão links físicos para diretórios, criptografia de volume lógico, controle de acesso, compactação de dados, etc.

APFS

O sistema de arquivos da Apple tem como objetivo tratar de questões fundamentais presentes em seu antecessor e foi desenvolvido para trabalhar de forma eficiente com armazenamentos em flash modernos e unidades SSD. Esse sistema de arquivos de 64 bits usa o método de “copy-on-write” para aumentar o desempenho, o que permite copiar cada bloco antes que as alterações sejam aplicadas e oferece muitos recursos de integridade de dados e economia de espaço. Todo o conteúdo e metadados dos arquivos, pastas e outras estruturas do APFS são mantidos no contêiner do APFS. O superbloco do contêiner armazena informações sobre o número de blocos no contêiner, o tamanho do bloco etc. As informações sobre todos os blocos alocados e livres do contêiner são gerenciadas com a ajuda de estruturas de bitmap. Cada volume no contêiner possui seu próprio superbloco de volume, que fornece informações sobre esse volume. Todos os arquivos e pastas do volume são gravados na B-Tree de Arquivos e Pastas, enquanto a Extents B-Tree é responsável por extensões - referências ao conteúdo do arquivo (início do arquivo, comprimento em blocos).

Os detalhes relacionados à possibilidade de recuperação de dados desses sistemas de arquivos podem ser encontrados em Chances de Recuperação. Se você estiver interessado na parte prática do procedimento, visite esta página.

Sistemas de arquivos do Linux

O Linux de código aberto visa implementar, testar e usar diferentes tipos de sistemas de arquivos. Os sistemas de arquivos Linux mais populares são:

Ext

Ext2, Ext3, Ext4 (um sistema de arquivos Linux “nativo”). Este sistema de arquivos ainda está passando por um estágio de desenvolvimento e melhorias. O sistema de arquivos Ext3 é apenas uma extensão do Ext2 que usa operações de gravação de arquivos transacionais com um registro. O Ext4 é um desenvolvimento adicional do Ext3, estendido com o suporte de informações otimizadas de alocação de arquivos (extensões) e atributos de arquivos estendidos. Esse sistema de arquivos é frequentemente usado como um sistema de arquivos "raiz" para a maioria das instalações Linux.

ReiserFS

ReiserFS - um sistema de arquivos Linux alternativo para armazenar um grande número de arquivos pequenos. Ele possui boa capacidade de busca de arquivos e permite a alocação compacta de arquivos, armazenando “tails” de arquivos ou arquivos pequenos junto com metadados para não usar grandes blocos de sistema de arquivos com a mesma finalidade. No entanto, esse sistema de arquivos não recebe mais suporte ativo.

XFS

XFS - um sistema de arquivos derivado da empresa SGI e foi inicialmente usado para servidores IRIX da empresa. Agora, as especificações XFS são implementadas no Linux. O sistema de arquivos XFS tem ótimo desempenho e é amplamente usado para armazenar arquivos.

JFS

JFS - um sistema de arquivos desenvolvido pela IBM para os sistemas de computação mais complexos da empresa. JFS1 geralmente significa JFS e JFS2 é o segundo release. Atualmente, esse sistema de arquivos é de código aberto e implementado nas versões mais modernas do Linux.

Btrfs

Btrfs - um sistema de arquivos projetado pela Oracle suportado pelo kernel principal do Linux desde 2009. O sistema de arquivos visa maior confiabilidade e escalabilidade, oferecendo maior tolerância a falhas, administração mais fácil etc., juntamente com vários recursos avançados, mas ainda não pode ser considerado totalmente estável.

O conceito de "hard links" usados nesse tipo de sistema operacional faz com que a maioria dos sistemas de arquivos Linux seja semelhante, pois o nome do arquivo não é considerado um atributo de arquivo e definido como um apelido (alias) para um arquivo em um determinado diretório. Um arquivo pode ser linkado de vários locais, até mesmo multiplicar-se no mesmo diretório com nomes diferentes. Isso pode levar a dificuldades sérias e até intransponíveis na recuperação de nomes de arquivos após a exclusão ou danos ao sistema de arquivos.

As informações sobre a possibilidade de recuperação bem-sucedida de dados dos sistemas de arquivos mencionados podem ser encontradas em Chances de Recuperação. Para entender como o procedimento deve ser realizado, visite esta página.

Sistemas de arquivos BSD, Solaris, Unix

O sistema de arquivos mais comum para esses sistemas operacionais é o UFS (Unix File System), também conhecido como FFS (Fast File System).

Atualmente, o UFS (em diferentes versões) é compatível com todos os sistemas operacionais da família Unix e com o principal sistema de arquivos do BSD OS e do Sun Solaris OS. Computadores modernos tendem a implementar alternativas para o UFS em diferentes sistemas operacionais (ZFS para Solaris, JFS e sistemas de arquivos derivados para Unix etc.).

As informações sobre a probabilidade de um resultado bem-sucedido quando se trata de recuperação de dados desses sistemas de arquivos podem ser encontradas em Chances de Recuperação. O processo em si é descrito nesta página.

Sistemas de arquivos em cluster

Sistemas de arquivos em cluster são usados em cluster systems. Esses sistemas de arquivos suportam armazenamento distribuído.

Os sistemas de arquivos distribuídos são:

  • ZFS - empresa Sun “Zettabyte File System” - um sistema de arquivos desenvolvido para armazenamentos distribuídos do Sun Solaris OS.

  • Apple Xsan - a nova versão da Apple dos sistemas de arquivos CentraVision e StorNext mais recentes.

  • VMFS - Virtual Machine File System (Sistema de arquivos de máquinas virtuais) desenvolvido pela empresa VMware para seu VMware ESX Server.

  • GFS - Sistema Global de Arquivos do Red Hat Linux.

  • JFS1 (ultrapassado) - projetado originalmente para o sistema de arquivos IBM JFS usado em sistemas de armazenamento AIX mais antigos.

As propriedades em comum desses sistemas de arquivos incluem suporte a armazenamento distribuído, extensibilidade e modularidade.

Para obter mais informações sobre a recuperação de dados desses sistemas de arquivos, visite a página Chances de recuperação.

Última atualização: 07 de fevereiro de 2020

Avaliação: - votos
Compartilhe: