Solución al problema de "disco no expulsado correctamente" al activar desde reposo

Es un problema conocido que lleva ya años, ojo no hacer lo que pone en el enlace, lo pongo como referencia:
https://support.apple.com/es-es/101847
Esto puede ser un problema para quienes usan un conjunto de escritorio y trabaja con discos externos conectados.

REPITO, no hacer lo que dice, que es deshabilitar el reposo, un SO moderno sin modo reposo es inutilizable y anacrónico, como para que recomienden eso de forma oficial.

Pillando de aquí y de allá al final hice una solución temporal, que es expulsar los discos externos al suspender, y montarlos al activar. Los pasos son:
1) Instalar homebrew, TODO usuario de macOS debería tenerlo, es habilitar el repositorio de la comunidad: https://brew.sh/

2) Instalamos SleepWatcher:
brew install sleepwatcher
brew services start sleepwatcher


3) Creamos 2 scripts en la carpeta home del usuario que instaló y corrió el servicio sleepwatcher, un fichero .sleep y otro .wakeup, su contenido:
.sleep:
#!/bin/sh

for i in $(diskutil list external | grep external | awk '{print $1}'); do
   diskutil eject $i
done


.wakeup:
#!/bin/sh

for i in $(diskutil list external | grep external | awk '{print $1}'); do
   diskutil mountDisk $i
done


Y ya estaría, a partir de ahora al suspender el equipo se expulsan los discos externos, y al activarlo se montan de nuevo. Ya no hay peligro de corrupción.

Esto debería ser una solución temporal mientras lo arreglan en el SO, pero como digo al parecer esto viene desde hace ya años y ahí sigue.
Seguro que la solución le es útil a más de uno.

Lo cierto es que el SO debería hacerlo automáticamente, pero tanto como decir que sin reposo no se puede usar... yo no lo he usado en mi vida ese modo. Mi ordenador o está encendido o está apagado (y apagada la regleta).

El problema de brew es que puede llegar a ser un lio interesante porque instala sus propias versiones de todo y puedes llegar a tener conflictos con versiones del propio sistema, como Python, etc.
No he tenido ese problema con el brew, instala las cosas en su propia ruta siempre identificada con homebrew.

Si se instala lo mismo desde 2 fuentes pues puede pasar independientemente del método usado, mejor decidir e instalarlo por una vía.
Dartanyan escribió:El problema de brew es que puede llegar a ser un lio interesante porque instala sus propias versiones de todo y puedes llegar a tener conflictos con versiones del propio sistema, como Python, etc.

Siempre hay solución para todo. El problema de muchos usuarios de macOS es que no tienen demasiada idea de como gestionar un sistema mediante linea de comandos y es alli donde reside toda su fuerza. Homebrew instala sus propios programas en su propia ruta (PATH) para tener un control y que no se mezcle con las utilidades del sistema (/opt/homebrew). Tan sencillo como llamar en el path a las utilidades de homebrew en vez de a las del sistema. Otra solución en ocasiones consiste en usar métodos mas especializados, por ejemplo pyenv. Otra practica buena es ejecutar de vez en cuando un 'brew doctor' y que te explique los problemas que encuentra.

❯ brew doctor
Your system is ready to brew.


darksch escribió:Si se instala lo mismo desde 2 fuentes pues puede pasar independientemente del método usado, mejor decidir e instalarlo por una vía.

Y muñeca chochona para el caballero. Como apunte los Cask que suelen dar una app en la ruta /Applicaciones los puedes instalar por tu lado y si es menester sobrescribirlos con la versión de homebrew forzando la instalación. (brew install --Cask --force 'loquesea').
Efectivamente ahí reside el el problema y que puede complicar al usuario que no esté muy dado. El uso de la variable path puede ser un caos si el mismo binario se encuentra dentro de las rutas del sistema y del propio brew.

Que puede pasar, pasa, porque me ha pasado. Hablo de máquinas utilizadas para el desarrollo en la cual se suelen instalar varias herramientas. Al igual en máquinas para usuarios estándar el problema es más difícil de que aparezca.
Se pueden hacer muchas cosas con macOS, recordemos que es un sistema certificado Unix, con lo que ello implica.
Maneras mil para establecer el PATH: https://stackoverflow.com/a/38670834
Manejo de servicios y automatizaciones, incluso con su launchd: https://www.macstadium.com/blog/automating-login-and-startup-events-in-macos

Al final me encuentro muy cómodo con este sistema porque tiene su parte principal de hacerlo todo visual y con los típicos arrastrar y demás, y muy potente con cosas tipo leer un PDF o ver una preview pulsando espacio en el fichero, la organización de pantallas y ventanas, los gestos con el trackpad, Time Machine, etc. Pero al mismo tiempo tienes ahí tu sistema completo Unix con el que puedes hacer mil cosas. A veces están los típicos problemitas que de la manera base no hay manera, y que puedes abordar con la consola.
Yo tengo un Mac mini M2, el mas básico con 256Gb de disco y 8Gb de RAM. Ha sido un regalo de mis compañeros por mi retiro (larga enfermedad). La verdad es que la maquinita esta bastante bien pero macOS a mi no me gusta nada. Pero nada de nada. O sea es un sistema que cumple su función pero no es de mi estilo, a mi me gusta manejar todo a mi antojo y en eso Linux es imbatible. Un sistema que cada vez se parece mas a iOS y que no me deja hacer según que cosas aun siendo root por que no se fía de mi criterio no es que me parezca lo mejor del mundo. La maquina ha de estar a mis ordenes no yo a las de ella. Pero, para lo que suelo hacer con ella (programar con python con neovim o vscode) va perfecta y como es un regalo bienvenido sea. Entiendo que tiene su mercado y entiendo que tiene su publico pero para un perro viejo de la antigua escuela no es que sea la panacea. Volviendo a la queja de @Dartanyan entiendo su postura pero es lo que dije antes, si controlas en el tema de linea de comandos esos problemas no dejan de ser meros estorbos tontos que se arreglan fácilmente.

Saludos y no me peguéis por lo que he dicho que estoy malito :Ð
Soy perro viejo y macOS me gusta. Los últimos años estuve con Fedora.

Lo de iOS es mera palabrería de barra de bar que se ha difundido, es solo aspecto de los settings y poco más, el sistema funciona como siempre.
7 respuestas