¡Obtenga un descuento o regalo!

Algoritmo de recuperación de datos del sistema de archivos HFS+

En este artículo veremos la estructura del sistema de archivos HFS+, qué cambios ha recibido en comparación con su versión anterior de HFS. Consideraremos los algoritmos de recuperación de datos en el disco con el sistema de archivos HFS+.

Algoritmo de recuperación de datos del sistema de archivos HFS+

Contenido:

Ventajas y diferencias de HFS+

La principal diferencia entre HFS+ es que utiliza una arquitectura de 32 bits en lugar de 16 bits como en HFS. El antiguo direccionamiento era una seria limitación que no permitía trabajar con volúmenes mayores a 65,536 bloques. Con un volumen de disco de 1 GB, el tamaño del clúster (bloque) era de 16 KB; incluso un archivo de 1 byte ocupaba los 16 KB.

HFS+, como en sistema anterior, utiliza un árbol B para almacenar la mayoría de los metadatos.

El volumen en HFS+ se divide en sectores (en HFS se les llama bloques lógicos) iguales a 512 bytes. Uno o más sectores forman un clúster, el número total de clústeres depende del tamaño del disco. El direccionamiento de 32 bits permite el acceso a más de 4,294,967,296 clústeres frente a los antiguos 65,536 clústeres. En comparación, estos dos sistemas tienen:

  • diferentes longitudes de nombre de archivo: En HFS: 31, en HFS+: 255;
  • codificación de nombre de archivo: HFS: Mac Roman, HFS+: Unicode;
  • tamaño del nodo de directorio: HFS: 512 Bytes, HFS+: 4K Bytes;
  • y aumentó el tamaño máximo de archivo: HFS: 2 ^ 31, HFS+: 2 ^ 63.

Arquitectura HFS Plus

El espacio en HFS Plus se divide en sectores (llamados bloques lógicos), que suelen tener un tamaño de 512 bytes. Estos sectores se agrupan en bloques de distribución (análogos a los clústeres en Windows), que pueden contener uno o más sectores. El número de bloques de asignación depende del tamaño total del volumen. En HFS+, el valor de los bloques de asignación es de 32 bits. El sistema de archivos tiene codificación Big Endian.

HFS Plus

Para administrar la ubicación de los datos en un disco, HFS + almacena información de servicio en él: archivos de metadatos. Entre ellos, los más importantes para el funcionamiento del sistema de archivos y los más interesantes a la hora de buscar datos faltantes son los siguientes:

  • 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.

¿Qué es árbol B?

Los árboles B se utilizan para almacenar parte de la información de HFS+. Son necesarios para escribir matrices arbitrarias de información (por ejemplo, 100 MB) en bloques con un tamaño fijo (por ejemplo, 4 KB). En este caso, no se escribe la información en sí misma en el primer bloque, sino enlaces a bloques posteriores, en los que también se pueden almacenar enlaces al siguiente nivel de bloques o información directamente necesaria. Los elementos de árbol que almacenan enlaces se denominan nodos y los elementos de datos de nivel 0 se denominan hojas.

Би-дерево

¿Qué es la extensión de registro y Extent Overflow File?

Para almacenar información sobre los sectores ocupados por el archivo, HFS+ puede usar de 0 a 8 registros extendidos. Cada registro almacena un enlace al primer sector de datos y el número de grupos consecutivos utilizados para los datos. Si el archivo está muy fragmentado y 8 registros no son suficientes para describir todas las partes, los fragmentos restantes se escriben en un archivo con extensiones adicionales: Extent Overflow File.

Volume header o Encabezado de volumen

El encabezado del volumen siempre se encuentra en el segundo sector desde el principio del disco y contiene información general sobre el volumen. Estos son el tamaño de los bloques de asignación, el tiempo de creación del volumen y las direcciones de la asignación de otras estructuras del sistema de archivos: Archivo de catálogo, Archivo de desbordamiento de extensión, Archivo de asignación, Registro, etc. En el segundo sector desde el final del disco, siempre hay una copia de respaldo del encabezado.

Volume headerVolume headerVolume header

Archivo de asignación

El archivo contiene información sobre los bloques de asignación libres y ocupados. Cada bloque está representado por un bit, el valor «1» corresponde al bloque ocupado y «0» – al libre. Esta estructura a veces se denomina mapa de bits. El archivo puede tener un tamaño arbitrario y no tiene que estar ubicado en bloques contiguos. La información sobre los fragmentos de archivo se describe en el encabezado del volumen.

Allocation file

Archivo de catálogo

El archivo almacena la mayoría de los datos sobre la ubicación de archivos y carpetas en el disco. Esta estructura bastante grande es un árbol B.

Este archivo en HFS Plus es muy similar al archivo de catálogo HFS. La principal diferencia es el tamaño del campo. Se han vuelto más grandes y ahora contienen más información. Por ejemplo, esto permite nombres de archivo Unicode de 255 caracteres más largos. El tamaño de registro para HFS es de 512 bytes, mientras que para HFS Plus es de 4 KB para Mac OS y 8 KB para OS X. Los campos en HFS tienen un tamaño fijo, mientras que en HFS Plus el tamaño puede variar dependiendo del tamaño real de los datos.

La mayoría de los campos almacenan pequeños atributos que pueden caber dentro de 4 KB. Para atributos más grandes, se utilizan extensiones adicionales (máximo 8, si se necesitan más extensiones, se almacenan en el archivo de desbordamiento de extensión). Las extensiones almacenan enlaces a los siguientes campos, que contienen gran cantidad de información sobre atributos.

StartUp file o Archivo de inicio

El archivo es para sistemas operativos que no son compatibles con HFS o HFS Plus. Esto es similar a los bloques de arranque de un volumen HFS.

Bad blocks o Bloques malos

El archivo contiene información sobre todos los sectores reubicados (defectuosos).

Journal o Registro

El registro no es un archivo, sino un área fija de datos en el disco. El enlace al primer sector y el tamaño del área se almacenan en el encabezado de la sección. Antes de escribir cualquier cambio en el disco, HFS+ los escribe en el registro y luego en los archivos del sistema. En caso de un corte de energía en el momento de la grabación, puede restaurar el sistema de archivos.

Tenga en cuenta que el tamaño del registro en HFS+ es limitado y periódicamente se sobrescribe su contenido. El registro de volumen de arranque en Mac-mini generalmente se sobrescribe en 5-10 minutos y MacBook en 30 minutos. Si Time Machine está activado, el tiempo se reduce a 20 segundos.

Journal

Recuperación de datos en Time Machine

A partir de Mac OS X Leopard, se incluye Time Machine. Esta utilidad crea copias de seguridad de archivos, registrando todos los cambios que ocurren en el sistema de archivos. Las acciones enumeradas permiten al usuario restaurar todo el sistema, varios archivos o un archivo separado en la forma en que estaba en un momento determinado.

Time Machine necesita un disco dedicado para funcionar. Apple está lanzando una Apple Time Capsule dedicada que actúa como una unidad de red específicamente para las copias de seguridad de Time Machine. Time Machine se puede utilizar con cualquier unidad USB o eSata. Cuando inicia Time Machine por primera vez, crea una carpeta en la unidad de respaldo especificada que contiene todos los datos.

Entonces Time Machine copiará solo los archivos modificados. En general, si se usa Time Machine para un disco, recuperar los datos perdidos no es un gran problema.

Time Machine

Algoritmo de recuperación HFS+

Recuperar información del sistema de archivos HFS+ es mucho más difícil que de otros sistemas. Las dificultades surgen del hecho de que HFS + usa árboles B para almacenar metadatos sobre la asignación de archivos. Después de eliminar un archivo, el árbol B se actualiza inmediatamente y se pierde la información sobre la ubicación del archivo eliminado.

Nuestro Programa le permite ver el dispositivo y la estructura del sistema de archivos HFS+ en Windows sin un software ni controladores adicionales.

El algoritmo de la utilidad, con un análisis completo, le permite excluir estos enlaces en el proceso de búsqueda de datos perdidos y restaurar la información que necesitamos.

Durante un análisis rápido, el programa lee el encabezado del volumen o su copia de seguridad. Del encabezado se obtiene la dirección del archivo de catálogo y la ubicación del registro en el disco. Si los bloques que pertenecen a los archivos eliminados aún no se han sobrescrito, los lee y restaura los datos.

Si los bloques del archivo eliminado aún no se han sobrescrito, este método le permitirá restaurar completamente el archivo. Incluso si se sobrescriben los bloques del archivo, los datos del archivo pueden permanecer en el registro o el archivo se recuperará parcialmente.

El algoritmo del análisis completo del programa permitirá excluir los elementos de la cadena en el proceso de búsqueda de datos eliminados. La utilidad construirá la estructura del disco y mostrará los archivos eliminados, incluso si el encabezado de la sección y el archivo de directorio se sobrescribieron parcialmente.

Алгоритм восстановления HFS+

Conclusión

En general, podemos decir que la implementación del sistema de archivos HFS+ ya está obsoleta en estos momentos. Este sistema se ha optimizado desde el antiguo HFS. HFS+ ya ha sido reemplazado por el nuevo sistema de archivos de Apple.

HFS + es significativamente inferior en velocidad, seguridad y confiabilidad a APFS, por lo que la recuperación de datos es un tema de gran actualidad para él. La información rara vez desaparece sin dejar rastro. Conociendo bien el funcionamiento del sistema de archivos, puede recuperar incluso lo que se consideró perdido irremediablemente.

Recomendado para ti