Algoritmo de recuperação de dados do sistema de arquivos HFS+
Neste artigo vamos analisar a estrutura do sistema de arquivos HFS+, que mudanças recebeu em relação a sua versão anterior do HFS. Vamos considerar algoritmos de recuperação de dados de disco com o sistema de arquivos HFS+.
- 1. Vantagens e diferenças do HFS+
- 2. HFS Plus architecture
- 3. Recuperação de dados na máquina do tempo
- 4. HFS+ algoritmo de recuperação
- Conclusão
- Perguntas e respostas
- Comentários
1. Vantagens e diferenças do HFS+
A principal diferença entre HFS+ é que ele usa uma arquitetura de 32 bits ao invés de 16 bits como no HFS. O antigo endereçamento era uma séria limitação que não permitia trabalhar com volumes maiores que 65.536 blocos. Com um volume de disco de 1 GB, o tamanho do cluster (bloco) era de 16 KB; mesmo um arquivo de 1 byte ocuparia todos os 16 KB.
HFS+, como no sistema anterior, usa uma árvore B para armazenar a maioria dos metadados.
O volume em HFS+ é dividido em setores (chamados de blocos lógicos em HFS) iguais a 512 bytes. Um ou mais setores formam um cluster, o número total de clusters depende do tamanho do disco. O endereçamento de 32 bits permite o acesso a mais de 4.294.967.296 clusters, em oposição aos 65.536 clusters mais antigos. Em comparação, estes dois sistemas têm:
- diferentes comprimentos de nome de arquivo: Em HFS: 31, em HFS+: 255;
- codificação do nome do arquivo: HFS: Mac Roman, HFS+: Unicode;
- tamanho do nó de direção: HFS: 512 Bytes, HFS+: 4K Bytes;
- e aumentou o tamanho máximo do arquivo: HFS: 2 ^ 31, HFS+: 2 ^ 63.
Vantagem ou Diferença | Descrição |
---|---|
Suporte para arquivos grandes | O HFS+ suporta trabalhar com arquivos grandes, tornando-o útil para armazenar arquivos multimídia e outros dados volumosos. |
Sistema de arquivos com journaling | O HFS+ oferece journaling, o que reduz o risco de perda de dados durante falhas do sistema ou quedas de energia inesperadas. |
Suporte a Unicode | O sistema de arquivos HFS+ suporta codificação Unicode, permitindo o armazenamento de arquivos com nomes em diferentes idiomas. |
Otimizado para uso em macOS | O HFS+ é projetado especificamente para macOS, proporcionando alto desempenho e estabilidade nesses dispositivos. |
Desfragmentação | O HFS+ desfragmenta automaticamente os arquivos, aumentando o desempenho durante a leitura e gravação de dados. |
Suporte a metadados | O HFS+ suporta metadados estendidos, ajudando a organizar e gerenciar melhor os arquivos. |
Compatibilidade com Time Machine | O HFS+ é totalmente compatível com a função de backup Time Machine no macOS. |
Limitações no suporte para sistemas modernos | O HFS+ não possui a funcionalidade e confiabilidade do APFS (Apple File System), que é o padrão nas versões mais recentes do macOS. |
2. HFS Plus architecture
O espaço no HFS Plus é dividido em setores (chamados de blocos lógicos), que são tipicamente de 512 bytes de tamanho. Estes setores estão agrupados em blocos de alocação (análogos a clusters no Windows), que podem conter um ou mais setores. O número de blocos de alocação depende do tamanho total do volume. No HFS+, o valor dos blocos de alocação é de 32 bits. O sistema de arquivo é codificado em Big Endian.
Para gerenciar a localização dos dados em um disco, o HFS+ armazena informações de serviço sobre ele: arquivos de metadados. Entre eles, os mais importantes para o funcionamento do sistema de arquivos e os mais interessantes na busca de dados ausentes são os seguintes:
- Sección de título (Volume Header). Tiene una estructura de tabla, usa la extensión de registros (Extensiones);
- Mapa de archivos de asignación de disco (Allocation File). Estructura: mapa de bits, utiliza expansión de registros (Extents);
- Catálogo de archivos (Catalog File). Tiene una estructura de árbol B, usa extensión de registro (Extents);
- Entradas de expansión adicionales (Extents Overflow File). Tiene una estructura de árboles B (B-Tree);
- Lista de sectores defectuosos (Bad block file). Tiene una estructura de árboles B (B-Tree);
- Ejecución de archivo (StartUp file). Tamaño fijo;
- Registro (Journal). Área de un disco con un tamaño y una posición fijos.
El sistema contiene muchas más estructuras, pero estas son predominantes para la recuperación de datos. Para continuar analizando la estructura, necesitamos comprender los conceptos básicos: árbol B y expansión de registros.
O que é uma Árvore B?
B-Trees são usadas para armazenar parte das informações do HFS+. Eles são necessários para escrever conjuntos arbitrários de informações (por exemplo, 100 MB) em blocos com tamanho fixo (por exemplo, 4 KB). Neste caso, não as informações em si são escritas no primeiro bloco, mas links para blocos subsequentes, nos quais links para o próximo nível de blocos ou informações diretamente necessárias também podem ser armazenadas. Os elementos de árvore que armazenam links são chamados de nós e os elementos de dados de nível 0 são chamados de folhas.
Qual é a extensão de registro e Extensão do arquivo de extravasamento?
Para armazenar informações sobre os setores ocupados pelo arquivo, o HFS+ pode usar de 0 a 8 registros estendidos. Cada registro armazena um link para o primeiro setor de dados e o número de grupos consecutivos utilizados para os dados. Se o arquivo for muito fragmentado e 8 registros não forem suficientes para descrever todas as partes, os fragmentos restantes são escritos em um arquivo com extensões adicionais: Extent Overflow File.
Cabeçalho do volume
O cabeçalho do volume está sempre localizado no segundo setor desde o início do disco e contém informações gerais sobre o volume. Estes são o tamanho dos blocos de alocação, o tempo de criação do volume e os endereços da alocação de outras estruturas de sistema de arquivos: Arquivo de catálogo, Arquivo de Extensão de transbordo, Arquivo de alocação, Registro, etc. No segundo setor a partir do fim do disco, há sempre uma cópia de segurança do cabeçalho.
Arquivo de alocação
O arquivo contém informações sobre blocos de alocação livres e ocupados. Cada bloco é representado por um bit, o valor “1” corresponde ao bloco ocupado e “0” – ao bloco livre. Esta estrutura é às vezes referida como um bitmap. O arquivo pode ser de tamanho arbitrário e não tem que ser localizado em blocos contíguos. As informações sobre os fragmentos do arquivo estão descritas no cabeçalho do volume.
Arquivo de catálogos
O arquivo armazena a maior parte dos dados sobre a localização de arquivos e pastas em disco. Esta estrutura bastante grande é uma árvore B.
Este arquivo no HFS Plus é muito semelhante ao arquivo do catálogo do HFS. A principal diferença é o tamanho do campo. Eles se tornaram maiores e agora contêm mais informações. Isto permite, por exemplo, nomes de arquivo Unicode de 255 caracteres mais longos. O tamanho recorde para HFS é de 512 bytes, enquanto para HFS Plus é de 4 KB para Mac OS e 8 KB para OS X. Os campos no HFS têm um tamanho fixo, enquanto no HFS Plus o tamanho pode variar dependendo do tamanho real dos dados.
A maioria dos campos armazena pequenos atributos que podem caber dentro de 4 KB. Para atributos maiores, são usadas extensões adicionais (máximo 8, se forem necessárias mais extensões, elas são armazenadas no arquivo de transbordo de extensão). As extensões armazenam links para os seguintes campos, que contêm muitas informações de atributos.
StartUp file o Archivo de inicio
O arquivo é para sistemas operacionais que não suportam HFS ou HFS Plus. Isto é semelhante aos blocos de inicialização de um volume HFS.
Bad blocos
O arquivo contém informações sobre todos os setores relocados (ruins).
Journal o Registro
O registro não é um arquivo, mas uma área fixa de dados no disco. O link para o primeiro setor e o tamanho da área são armazenados no cabeçalho da seção. Antes de escrever qualquer alteração no disco, o HFS+ as grava no registro e depois nos arquivos do sistema. No caso de uma falha de energia no momento da redação, ele pode restaurar o sistema de arquivo.
Por favor note que o tamanho do registro no HFS+ é limitado e periodicamente sobrescreve seu conteúdo. O volume de boot log no Mac-mini é geralmente sobrescrito em 5-10 minutos e MacBook em 30 minutos. Se a Máquina do Tempo estiver habilitada, o tempo é reduzido para 20 segundos.
3. Recuperação de dados na máquina do tempo
Início com Mac OS X Leopard, Time Machine está incluído. Este utilitário cria backups de arquivos, registrando todas as mudanças que ocorrem no sistema de arquivos. As ações listadas permitem ao usuário restaurar todo o sistema, vários arquivos, ou um arquivo separado para o modo como estava em um determinado momento.
Time Machine requer um disco dedicado para operar. A Apple está lançando uma cápsula de tempo Apple dedicada que atua como uma unidade de rede especificamente para backups de Time Machine. A Time Machine pode ser usada com qualquer unidade USB ou eSata. Quando você inicia a Time Machine pela primeira vez, ela cria uma pasta na unidade de backup especificada que contém todos os seus dados.
Time Machine então copiará somente os arquivos modificados. Em geral, se você usa Time Machine para um disco, recuperar dados perdidos não é um grande problema.
4. HFS+ algoritmo de recuperação
Recuperar informações do sistema de arquivos HFS+ é muito mais difícil do que de outros sistemas. As dificuldades surgem do fato de que o HFS+ utiliza árvores B para armazenar metadados sobre a alocação de arquivos. Após excluir um arquivo, a árvore B é imediatamente atualizada e a informação sobre a localização do arquivo excluído é perdida.
Nosso Programa permite visualizar o dispositivo e a estrutura do sistema de arquivos HFS+ no Windows sem software ou drivers adicionais.
Passo | Descrição das ações |
---|---|
1. Instalação do programa | Baixe e instale o Hetman Partition Recovery no seu computador. |
2. Conexão do disco | Conecte o disco HFS+ ao computador, se não for interno. |
3. Iniciar o programa | Abra o Hetman Partition Recovery e selecione o disco HFS+ na lista de discos disponíveis. |
4. Digitalização do disco | Inicie o processo de digitalização para encontrar arquivos perdidos ou excluídos. |
5. Visualização dos dados recuperados | Após a digitalização, visualize os arquivos recuperados no formato que preferir. |
6. Seleção de arquivos para recuperação | Selecione os arquivos que deseja recuperar e clique no botão de recuperação. |
7. Salvamento dos arquivos recuperados | Salve os arquivos recuperados em outro disco ou unidade externa para evitar a sobrescrição dos dados. |
O algoritmo do utilitário, com uma varredura completa, permite excluir estes links no processo de busca de dados perdidos e restaurar as informações que precisamos.
Durante uma rápida varredura, o programa lê o cabeçalho do volume ou seu backup. Do cabeçalho, obtém-se o endereço do arquivo do catálogo e a localização do registro no disco. Se os blocos pertencentes aos arquivos excluídos ainda não foram sobrescritos, ele os lê e restaura os dados.
Se os blocos do arquivo excluído ainda não foram sobrescritos, este método permitirá que você restaure completamente o arquivo. Mesmo se os blocos do arquivo forem sobrescritos, os dados do arquivo podem permanecer no registro ou o arquivo será parcialmente recuperado.
O algoritmo de análise completo do programa lhe permitirá excluir elementos em cadeia no processo de busca de dados excluídos. O utilitário irá construir a estrutura do disco e exibir os arquivos excluídos, mesmo que o cabeçalho da seção e o arquivo do diretório tenham sido parcialmente sobrescritos.
Conclusão
Overall, podemos dizer que a implementação do sistema de arquivos HFS+ é agora obsoleto. Este sistema foi otimizado a partir do antigo HFS. O HFS+ já foi substituído pelo novo sistema de arquivos da Apple.
HFS+ é significativamente inferior em velocidade, segurança e confiabilidade à APFS, portanto, a recuperação de dados é um grande problema para ela. Os dados raramente desaparecem sem deixar rastro. Ao saber como o sistema de arquivo funciona bem, você pode recuperar até mesmo o que foi considerado irremediavelmente perdido.
Os principais sintomas de corrupção do sistema de arquivos HFS são: