Qué hacer si al arrancar Lion el Finder no responde
Esto es algo que hemos visto ya en dos equipos distintos con Lion: simplemente un día arrancas el sistema y de repente el Finder no responde, el escritorio no se muestra o no funciona, el cursor del ratón se pone en modo balón de playa…
Las causas pueden ser numerosas, pero en los dos casos que nos atañen el problema surgió por haberse corrompido el fichero .DS_Store de la carpeta del escritorio.
Bueno, ¿y qué son los ficheros .DS_Store?. Dichos ficheros son utilizados por el Finder para almacenar atributos extendidos y metadatos de las carpetas, como las opciones de visualización, la vista de los iconos, incluso el tamaño de la ventana del Finder, cosas así. El caso es que si un fichero .DS_Store se corrompe, el Finder se hace un lío cuando intenta mostrar la carpeta que contiene ese fichero y lo más habitual es que se quede colgado. Y si el que se corrompe es el fichero .DS_Store de la carpeta del escritorio, pues imagínate.
¿Por qué se puede corromper un fichero .DS_Store? Ahí las causas pueden ser muchas, pero los sospechosos más habituales serían un disco duro poco fiable o una memoria RAM estropeada. Sin embargo, en este caso el problema ha surgido en dos máquinas distintas y por tanto es difícil —aunque no imposible, ciuidado— que ambas tengan los mismos problemas de hardware. Además, en ambos casos parece que antes de haberse corrompido el .DS_Store del escritorio se guardaron varios ficheros en él casi simultáneamente. Eso puede significar que el Finder ha tenido un problema de concurrencia al guardar los metadatos varias veces al mismo tiempo.
Me explico: cuando se guarda un fichero en el escritorio, el Finder a su vez guarda en el .DS_Store algunos datos, como la posición del icono del fichero en el escritorio, por ejemplo. Si se guardan varios ficheros en el escritorio casi al mismo tiempo, el Finder tiene que hacer ese proceso de guardar la posición del icono del fichero una vez por cada fichero que se está guardando. Si se hace en orden, primero un fichero, después otro, y así sucesivamente, no hay problema. Pero si no se controla eso y se intentan guardar todos esos datos al mismo tiempo, lo normal es que acabe todo mezclado y el Finder luego no sepa qué datos corresponden a cada fichero. Y entonces arrancas Lion y de repente el Finder no responde.
Esto concluye la explicación de por qué creemos que pasa. Ahora veamos cómo arreglarlo.
La solución rápida pasa por borrar el fichero .DS_Store del escritorio. ¿Estropearemos algo por borrar ese fichero? No, y además el Finder volverá a generar un nuevo fichero .DS_Store automáticamente, así que en ese sentido no es de esperar ningún problema. ¿Pero cómo lo borramos si no funciona el Finder?
Para ello echaremos mano del arranque en modo de usuario único (single-user mode). El proceso para arrancar en modo de usuario único se describe en este documento de soporte de Apple, pero vamos, que básicamente se reduce a encender el equipo manteniendo pulsadas las teclas ⌘ y S hasta que observemos que, en lugar de la manzana, la pantalla se pone en negro y un montón de mensajes de texto fluyen por ella.
Antes de continuar hay que prevenir de ciertas cosas: el arranque en modo de usuario único es una herramienta extremadamente útil para solucionar problemas cuando el entorno gráfico del sistema no responde, pero también es una herramienta muy peligrosa si no se sabe utilizar. Un gran poder conlleva una gran responsabilidad.
Al final del arranque podremos observar una línea parecida a la siguiente:
:/ root#
¡Bienvenido al Terminal! Por si creías que no lo ibas a utilizar nunca.
Llegados a este punto podemos ejecutar cualquier comando del subsistema UNIX sobre el que está construído OS X, pero para el caso que nos ocupa sólo necesitaremos tres comandos. Para ejecutar comandos en el terminal deberemos tener en cuenta unas cuantas cosas:
La distribución del teclado en este modo es la inglesa americana,así que si pulsas la tecla de la eñe obtendrás un bonito punto y coma, por ejemplo. Si no quieres aprenderte la distribución de teclado americana, te valdrá con saber que el carácter de la barra inclinada se obtiene pulsando la tecla del guión que hay justo a la derecha del punto y el carácter del guión se obtiene pulsando la tecla del apóstrofo, justo a la derecha del cero.
Para escribir /, pulsar -.
Para escribir -, pulsar ‘. Es sencillo.- Una vez escrito un comando, pulsa Enter para ejecutarlo. Lo habitual en UNIX es que los comandos no muestren ningún mensaje si todo va bien. Así que si ejecutas un comando y no obtienes ningún mensaje es que vas bien.
Ahora que hemos aclarado estos puntos, este es el primer comando que debes ejecutar:
mount -uw /
Este comando remonta el sistema de ficheros raíz en modo de lectura y escritura. Por defecto, cuando arrancas en modo de usuario único el sistema se pone en modo de sólo lectura para que no rompas nada. Ejecutando el comando anterior lo pondrás en modo de lectura y escritura para poder borrar el fichero.
Para el siguiente comando, supongamos que mi nombre de usuario es eth0. Este es el comando:
rm /Users/eth0/Desktop/.DS_Store
Donde pone eth0 tendrás que poner tu usuario. Ese comando borra el fichero .DS_Store de la carpeta del escritorio. Es importante que respetes las mayúsculas y minúsculas.
Por último, para reiniciar el sistema, ejecutamos el siguiente comando:
reboot
Y entonces esperamos a que arranque el sistema normalmente y comprobamos que el escritorio y el Finder funcionan bien.
También publicado en el blog PutoSwitcher.