MacBook 7.1 (unibody blanco) de 2010, he actualizado a un nuevo SSD hace algunos años. Durante el arranque el MacBook se apaga cuando la barra de carga está a un 80% aproximadamente. Al arrancar en modo verbose puedo ver el mensaje de error durante unos 3 segundos antes de que el ordenador se apague (no he encontrado la forma de evitar que se apague para poder ver con más detalle la salida). He tomado una foto del error:
Esta es una transcripción de la imagen (algunos detalles más aparecen durante el apagado durante una fracción de segundo, pero no he podido capturarlo.
...
disk0s2: I/O error
jnl: disk0s2: update_fs_block: failed to update block 2 (ret 5)
jnl: disk0s2: journal_open: Error replaying the journal!
hfs_mount: journal_open == NULL; couldn't be opened on MacBookSSD
mount_hfs: error on mount(): error = -1.
mount_hfs: Invalid argument
Tue Dec ... localhost com.apple.xpc.lauch[1] <Emergency>: Boot task failed: mount
Tue Dec ... localhost com.apple.xpc.lauch[1] <Emergency>: Shutting down in 3 seconds.
He arrancado en modo de recuperación (cmd + r) y trató de hacer el "First Aid" y parecía tener éxito: El volumen del MacBookSSD parece estar bien, Código de salida 0. Sin embargo, el error se mantuvo.
Además, he probado lo siguiente:
-
Arranque seguro (arranque manteniendo SHIFT). Aparece el mismo error durante el arranque.
-
FSCK en modo de recuperación utilizando el terminal:
fsck_hfs -fy /dev/rdisk0s2 ... ** The volume MacBookSSD appears to be OK.
-
Intenté montar el dispositivo manualmente (mismo error que el anterior):
mkdir /tmp/3 /sbin/mount_hfs /dev/disk0s2 /tmp/3 mount_hfs: error on mount(): error = -1. mount_hfs: Invalid argument
-
Reiniciar la NVRAM (cmd + Alt + p + r durante el arranque)
-
Reiniciar el SMC (Shift + Alt + Ctrl + Power)
Edición: He probado a arrancar en modo de usuario único (cmd + s durante el arranque) y he ejecutado
fsck_hfs -fy /dev/disk0s2
de nuevo. La salida es:
** /dev/rdisk0s2
** Root file system
Executing fsck_hfs (version hfs-407.50.6).
** Checking Journaled HFS Plus volume.
The volume name is MacBookSSD
** Checking extents overflow file.
** Checking catalog file.
** Checking multi-linked files.
** Checking catalog hierarchy.
** Checking extended attributes file.
** Checking volume bitmap.
** Checking volume information.
** The volume MacBookSSD appears to be OK.
disk0s2: I/O error.
*****The volume was modified *****
diskutil list
muestra para el disco0 afectado la siguiente salida:
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *240.1 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_HFS MacBookSSD 239.1 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
Con diskutil verifyDisk /dev/disk0
Lo entiendo:
Started partition map verification on disk0
Checking prerequisites
Checking the partition list
Checking the partition map size
Checking for an EFI system partition
Checking the EFI system partition's size
Checking the EFI system partition's file system
Checking the EFI system partition's folder content
Problems were found with the partition map which might prevent booting
Error: -69842: Couldn't mount disk
Con diskutil repairDisk /dev/disk0
Me sale
Repairing the partition map might erase disk0s1, proceed? (y/N) y
Started partition map repair on disk0
Checking prerequisites
Checking the partition list
Adjusting partition map to fit whole disk as required
Problems were encountered during repair of the partition map
Error: -69697: Partition map repair failed while adjusting structures to fit current whole disk size
Underlying error: 5: Input/output error
Así que diskutil
aparentemente no es capaz de reparar mi disco. Para comprobar si hay defectos de hardware, he ejecutado dmesg
y obtener algo como lo siguiente (mostrando sólo algunas líneas de la parte inferior, ya que es un montón de salida que no puedo copiar aquí):
...
disk0s2: I/O error
jnl disk0s2: update_fs_block:failed to update block 2 (ret 5)
jnl: disk0s2: journal_open: Error replaying the journal!
hfs: early jnl init: failed to open/create the journal (retval 0).
hfs_mountfs: hfs_early_journal_init failed, setting to FSK
hfs(1): Journal replay fail. Writing lastMountVersion as FSK!
disk0s2: I/O error.
hfs_mountfs: hfs_early_journal_init failed, erroring out
hfs_mount: hfs_mountfs returned error=22 for device disk0s2
...
disk0s1: I/O error.
disk0s1: I/O error.
disk0s1: I/O error.
disk0s1: I/O error.
msdosfs_fat_uninit_vol: error 5 from msdosfs_fat_cache_flush
Starting poll type 4
Restarting poll type 4
Command 0x2 completed. inCount: 2 ...
disk0: I/O error.
...
¿Te parece que esto es un error de hardware y que debería instalar un nuevo dispositivo?
PD: He podido montar /dev/disk0s2 con una memoria USB de CloneZilla en terminal unix y he podido guardar la mayoría de mis datos en un archivo externo (desgraciadamente sin aplicaciones instaladas...). Sin embargo, el montaje de disk0s2 en el terminal de recuperación de Mac o en modo de usuario único sigue fallando.
Actualización del espacio libre en disco: Cuando monto /dev/sda2 con el terminal USB en vivo de CloneZilla, df -h
muestra un uso de alrededor del 79% (175G de 223G en uso). Parece correcto.