¿Qué haría que los volúmenes APFS se muestren debajo del disco incorrecto?

2

Tengo un problema APFS bastante interesante. Hay dos volúmenes en una, unidad interna, y dos que se clonaron de ella, en una externa. Los cuatro volúmenes se muestran debajo de la unidad interna, a pesar de que aparecen debajo del dispositivo correcto que va por el número de dispositivo. Entonces, tienes disk1s1, disk1s5, disk8s1 y disk8s5, todos mostrándose en disk1.

También se muestran como pertenecientes a disk6, que aloja disk8. Sin embargo, Disk8: aparece como "No inicializado" y no hará nada.

Comenzó así:

  1. La unidad de mi sistema tenía un error fsroot cuando estaba marcada. Parecía causar problemas con el arranque y algunos cuelga; Quería clonar el disco para tener una copia de seguridad de mis copias de seguridad, para estar súper seguro.
  2. No pude clonar ni el disco ni el volumen de la unidad del sistema. Terminaría con un solo archivo en la unidad de destino que decía "para convertir".
  3. Utilicé dd para clonar el disco. El clon tiene el mismo problema de "árbol de fstroot no válido", por supuesto.
  4. Después de reiniciar, los volúmenes que pertenecen a la unidad externa se muestran en el disco contenedor para la unidad del sistema (interna). Y después de otro reinicio ... desmontar y montar de nuevo ...

Mientras tanto, no puedo volver a instalar High Sierra en la unidad de sistema original, se cuelga con una barra de estado completa y el logotipo de Apple. Lo hace incluso después de que lo haya borrado: First Aid / fsck comprueba ahora que también está borrado. Así que eso es confuso.

Me sacaré de este lío, pero como no puedo encontrar nada en este extraño problema, creo que podría ser útil para otra persona en el futuro.

No sé mucho sobre estos aspectos de la estructura del disco y la unidad, etc., pero si fsroot no representa la raíz del sistema de archivos, lo dejo todo.

Entonces, ¿el volumen tiene información dañada sobre a qué disco pertenece? ¿Así es como terminé aquí?

Saben a qué dispositivo pertenecen ... se muestra en la sección Dispositivo, y usan diskutil list, o df -h; como quieras.

Errores de primeros auxilios de la utilidad de disco:

error: invalid dstream.default_crypto_id (0x4), given apfs_fs_flags (0x1)
error: xf : INO_EXT_TYPE_DSTREAM: invalid dstream
error: inode_val: object (oid 0x1a24c0): invalid xfields
fsroot tree is invalid.
The volume /dev/disk/ could not be verified completely.

Eso es todo. Si alguien se ha encontrado con este problema, me encantaría conocer tu experiencia.

    
pregunta Fin Hirschoff 18.09.2018 - 15:23

1 respuesta

1

La respuesta simple es que los volúmenes APFS (de dos discos separados) aparecen debajo del disco incorrecto cuando los contenedores comparten un UUID. Por supuesto, cuando clonas una unidad , vienen los UUIDs - volúmenes y el contenedor. Posiblemente suceda cuando dos volúmenes tienen el mismo UUID también.

Renuncié a intentar solucionar el problema con los UUID en los contenedores. El método que conozco es usar una de las utilidades del sistema de archivos -

/System/Library/Filesystems/hfs.fs/Contents/Resources/hfs.util o /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util

por ejemplo, y como las particiones de Contenedor APFS no tienen un sistema de archivos, me quedé atascado allí y atacé mi problema desde una dirección diferente.

Para corregir los UUID en volúmenes individuales:

Supongamos que diskDsV y diskFsB (ambos volúmenes APFS) comparten el mismo UUID. Puede cambiar uno de ellos desmontando el volumen y haciendo esto:

./System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -s rdiskDsV

Si esta es una unidad del sistema , es mucho más complicado. Tiene un volumen de prearranque y también tiene que cambiar el nombre de una carpeta en el directorio raíz de ese volumen: el nombre de la carpeta debe ser el UUID de la unidad del sistema.

A pesar de que se muestran 2 volúmenes en la lista, cuando hace clic en el disco, puede ver que en realidad hay 5. Se crearon automáticamente Preboot, VM y Recuperación, y en su mayor parte están ocultos.

Entonces,paraencargarsedeesto,encuentreelUUIDcorrectoparaelvolumendelsistemacomoeste(supongoqueess1,podríaserdiferente):

./System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util-krdiskDs1

Luego,diskutillist/dev/diskD:veráselvolumendeprearranque;llamémoslosp.Acontinuaciónsudodiskutilmount/dev/diskDsp,luegols/Volumes/Preboot/yverálacarpeta.SielnombrenocoincideconelUUIDdelvolumencorrecto,cámbielo.

Dospasosfinales- vea aquí para más - (diskDspNAME es el punto de montaje en Volúmenes):

Declare dónde están los archivos de arranque:

sudo bless --folder/Volumes/diskDspNAME/System/Library/CoreServices --bootefi

Actualizar el caché del enlazador dinámico:

sudo update_dyld_shared_cache -root /Volumes/diskDspNAME -force

    
respondido por el Fin Hirschoff 01.10.2018 - 19:28

Lea otras preguntas en las etiquetas