6 votos

¿Cómo realiza Apple una conversión in situ sin pérdidas de HFS+ a APFS?

Desde High Sierra, Apple ha permitido a los usuarios hacer una conversión in situ de un sistema de archivos HFS+ existente a APFS sin perder los archivos. Esto puede ocurrir automáticamente durante una actualización del sistema operativo o puede ser realizado por el usuario con la Utilidad de Discos.

Mi pregunta es, ¿cómo se consigue esto técnicamente? No estoy preguntando cómo un usuario puede hacer la conversión, estoy preguntando lo que realmente sucede en el disco durante el proceso de conversión. He hecho algunas búsquedas pero sólo he encontrado referencias a que se puede hacer. Este artículo proporciona algunas analogías, y he encontrado algunas pistas sobre cómo APFS permite cambiar el tamaño de las particiones más fácilmente.

¿El software convierte directamente un sistema de archivos a otro sobre la marcha? Si APFS es básicamente una mejora de HFS+ puedo ver que esto es fácil, pero mi impresión es que no es el caso.

¿Crea dos particiones y mueve lentamente el contenido de una a otra, redimensionando a medida que avanza, o crea una imagen del sistema antiguo y luego la restaura en el nuevo sistema? Parece que esto requeriría una buena cantidad de espacio libre, y podría fallar si la unidad está llena.

¿Algo más?

4voto

Douglas Puntos 10417

Es un proceso de cuatro pasos según este artículo de La empresa Ecletic Light

  1. Lee y convierte los metadatos HFS+ existentes (archivos, directorios, etc.) al formato APFS; los escribe en el espacio libre de la unidad
  2. Verifica que los datos del APFS son correctos
  3. Si no hay errores, escribe el superbloque del volumen en formato APFS
  4. Elimina los metadatos HFS+ dejando sólo el volumen APFS

Lo convierte pieza a pieza, actualizando el volumen a medida que avanza. Por eso necesita suficiente espacio libre antes de que comience el proceso de conversión.

1voto

Nate Puntos 220

No sé mucho en términos de detalles, pero estoy bastante seguro de que el proceso básico implica la construcción de estructuras de datos de volumen paralelo y luego cambiar cuál se utiliza.

Para entender lo que esto significa, hay que saber un poco sobre cómo un sistema de archivos almacena sus archivos en el disco. De forma algo simplificada, hay dos tipos de datos almacenados: el contenido real de los archivos se almacena como datos en bruto, y luego hay una base de datos adicional que mantiene un registro, para cada archivo, de donde se almacenan los datos brutos de ese archivo en particular (así como los "metadatos", como el nombre del archivo, los permisos, la hora de la última modificación, etc.).

El contenido de los archivos en bruto es prácticamente el mismo entre los diferentes formatos de volúmenes (excepto para los volúmenes encriptados), pero los metadatos de la base de datos serán diferentes entre HFS+ vs. APFS vs. FAT vs. lo que sea.

La mayor parte del contenido del disco es (generalmente) el contenido bruto del archivo, ya que los metadatos suelen ser mucho más pequeños que el contenido real del archivo. Esto significa que al convertir de un formato a otro, la mayor parte del contenido del volumen no necesita cambiar; sólo la base de datos que almacena las ubicaciones de los archivos y los metadatos necesita ser convertida. Así que lo que puedes hacer es construir una base de datos de nuevo formato en el espacio libre del volumen (copiando y convirtiendo el contenido del de formato antiguo), y luego simplemente decir "ok, usa el nuevo ahora". (y marcar el antiguo como espacio libre en el nuevo formato).

Este es el punto de vista simplificado; en la práctica, estoy seguro de que hay muchas complicaciones y detalles complicados que hay que tratar. Pero estoy seguro de que esta es la idea básica.

Por cierto, hay un truco similar que a veces se utiliza (incluso por Apple) para hacer discos multiformato (o "híbridos"). Por ejemplo, el software de grabación de CD/DVD y de creación de imágenes de Apple puede crear discos que son válidos como volúmenes HFS+ (legibles en Macs), y también volúmenes ISO 9660 válidos (legibles en una amplia variedad de otros sistemas operativos que no distinguen HFS+ de un agujero en el suelo). Almacena una copia del contenido de cada archivo, y dos bases de datos diferentes (una en formato ISO y otra en HFS+), y lo configura para que los diferentes sistemas operativos vean el que entienden y puedan leer el volumen.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X