Sistema
MacBook Pro, finales de 2013, 1 TB SSD (nuevo, recientemente reemplazado por Apple), APFS (sin registro en el diario, sin distinción de mayúsculas), High Sierra 10.13.2, Time Machine to network HDD.
Lo que pasó
- Mac dejó de funcionar,
no space left on device
. - Ha fallado el reinicio.
- Se intentó iniciar el modo de recuperación con Command-R y se ejecutó First Aid desde Disk Utility - porque aparentemente el sistema de recuperación también reside en el mismo disco que parece hacer que fsck en APFS sea imposible.
- Se intentó eliminar manualmente algunos archivos a través de
rm
, se obtuvono space left on device
- Se intentó truncar algunos archivos manualmente a través de
cat /dev/null > somefile
, se obtuvono space left on device
-
Inició el modo de recuperación con Shift-Command-R (descarga el sistema desde Internet) y ejecutó First Aid de nuevo. Esta vez con éxito limitado:
** Checking volume. ** Checking the container superblock. ** Checking the EFI jumpstart record. ** Checking the space manager. ** Checking the object map. ** Checking the APFS volume superblock. ** Checking the object map. error: invalid dstream.size (10730881024), is greater than dstream.alloced_size (71151616) error: xf : INO_EXT_TYPE_DSTREAM : invalid dstream error: inode_val: object (oid 0x16309a1): invalid xfields ** Checking the fsroot tree. fsroot tree is invalid. ** The volume /dev/rdisk2s1 could not be verified completely.
Así que aparentemente el árbol fsroot no es válido. He buscado, pero no he podido encontrar ningún consejo útil sobre cómo solucionar este problema (excepto, por supuesto, reformatear y restaurar desde una copia de seguridad, lo que me gustaría evitar).
Información de fondo adicional
En el sistema hay una VM de Parallels Windows con un disco duro virtual de 100 GB (sí, un archivo grande), que se usó recientemente (por lo que se necesitaba una copia de seguridad). La última vez que utilicé la computadora, aproximadamente 20 GB aún estaban libres en el SSO macOS. Durante aproximadamente un día, las copias de seguridad de Time Machine no se completaron, pero no se mostró ningún mensaje de error. Cuando ocurrió el problema, dejé la máquina encendida durante la noche para completar una copia de seguridad incremental de Time Machine. La conexión aquí es que, al parecer, Time Machine está utilizando instantáneas APFS. Sospecho que esta es la causa raíz de por qué ocurrió este desastre.
Preguntas
- ¿Hay alguna forma de solucionar esto (sin reformatear y restaurar desde la copia de seguridad)?
- ¿Cuál es la mejor manera de evitar esto en el futuro (especialmente con respecto a Time Machine)?
Gracias.
Actualizar
Cuando se ejecuta fsck_apfs
con el indicador de depuración -d
, la salida contiene un poco más de información:
** Checking volume.
** Checking the container superblock.
** Checking the EFI jumpstart record.
** Checking the space manager.
** Checking the object map.
** Checking the APFS volume superblock.
** Checking the object map.
error: invalid dstream.size (10730881024), is greater than dstream.alloced_size (71151616)
error: xf : INO_EXT_TYPE_DSTREAM : invalid dstream
error: inode_val: object (oid 0x16309a1): invalid xfields
obj-id: 23267745 type: Inode
private-id: 23267745 parent-id: 12896552 cr/mtime: 1515089959653928186/1515090145416398252
def-prot-class: 0
uid/gid/mode: 0/0/0x8180 bsd_flags: 0x0 internal_flags: 0x8280 name: NO-NAME
** Checking the fsroot tree.
fsroot tree is invalid.
** The volume /dev/disk2 could not be verified completely.