APFS/High Sierra - `tmutil deletelocalsnapshots` no elimina instantáneas

La lista de instantáneas locales produce esto

> tmutil listlocalsnapshots /
com.apple.TimeMachine.2018-01-30-194719
com.apple.TimeMachine.2018-01-30-211627
com.apple.TimeMachine.2018-01-30-224917
com.apple.TimeMachine.2018-01-30-234619
com.apple.TimeMachine.2018-01-31-014151
com.apple.TimeMachine.2018-01-31-024107
com.apple.TimeMachine.2018-01-31-034442
com.apple.TimeMachine.2018-01-31-044108
com.apple.TimeMachine.2018-01-31-054441
com.apple.TimeMachine.2018-01-31-064120

e intento eliminar una instantánea local pero ejecuto esto

> sudo tmutil deletelocalsnapshots 2018-01-30-194719
Deleted local snapshot '2018-01-30-194719'

pero enumerar las instantáneas locales nuevamente mostró que la instantánea no se eliminó

> tmutil listlocalsnapshots /
com.apple.TimeMachine.2018-01-30-194719
com.apple.TimeMachine.2018-01-30-211627
com.apple.TimeMachine.2018-01-30-224917
com.apple.TimeMachine.2018-01-30-234619
com.apple.TimeMachine.2018-01-31-014151
com.apple.TimeMachine.2018-01-31-024107
com.apple.TimeMachine.2018-01-31-034442
com.apple.TimeMachine.2018-01-31-044108
com.apple.TimeMachine.2018-01-31-054441
com.apple.TimeMachine.2018-01-31-064120

Solo por diversión, escribí un pequeño script de bash para eliminarlos a todos (lo que también evita cualquier error tipográfico).

for date in $(tmutil listlocalsnapshots / | perl -pe 's/com.*(2018.*)/\1/'); do echo "deleting $date"; sudo tmutil deletelocalsnapshots "$date";  done

Por extraño que parezca, puedo ejecutar repetidamente ese comando anterior y siempre mostrará el mismo resultado:

deleting 2018-01-30-194719
Deleted local snapshot '2018-01-30-194719'
deleting 2018-01-30-211627
Deleted local snapshot '2018-01-30-211627'
deleting 2018-01-30-224917
Deleted local snapshot '2018-01-30-224917'
deleting 2018-01-30-234619
Deleted local snapshot '2018-01-30-234619'
deleting 2018-01-31-014151
Deleted local snapshot '2018-01-31-014151'
deleting 2018-01-31-024107
Deleted local snapshot '2018-01-31-024107'
deleting 2018-01-31-034442
Deleted local snapshot '2018-01-31-034442'
deleting 2018-01-31-044108
Deleted local snapshot '2018-01-31-044108'
deleting 2018-01-31-054441
Deleted local snapshot '2018-01-31-054441'
deleting 2018-01-31-064120
Deleted local snapshot '2018-01-31-064120'

¿Por qué no se eliminan mis instantáneas? Tengo poco espacio de almacenamiento (13 gb de espacio; las instantáneas ni siquiera se borrarían cuando me quedaran 2 gb de espacio libre)

Respuestas (2)

Gran solución para detectar que el sistema de archivos estaba dañado cuando los comandos normales no funcionaban. También tenga en cuenta que puede evitar iterar en la lista de instantáneas y simplemente indicar al sistema que recupere espacio hasta el límite que elija y lo supere:

tmutil thinlocalsnapshots / $(echo "5 * 1000000000" | bc) 2

El comando anterior solicita 5 GB de limpieza. Elegí las matemáticas de eco para facilitar la marcación hacia arriba y hacia abajo sin que se cambie la larga cadena de ceros. Siéntase libre de simplificar el comando anterior con un número que le guste que sea más grande que su disco si tiene la intención de que el sistema limpie todas las instantáneas posibles.

Cómo simplificar las instantáneas locales de Time Machine en macOS High Sierra

¡Gracias por esto! Lo usé en 10.14.6 (Mojave), tmutil thinlocalsnapshots / 2000000000000 2(Eso es 2 seguido de 12 ceros, entonces 2 TB). ¡Eliminó todas las instantáneas locales y liberó 130 GB de espacio en disco! Esto resolvió mi molestia y confusión cuando eliminé más de 100 GB de archivos y mi espacio disponible en el disco no cambió.

Creo que las instantáneas de la máquina del tiempo menos recientes estaban dañadas, posiblemente debido a algunos bloqueos del sistema causados ​​​​por errores de APFS.

Intenté ejecutar los primeros auxilios de DIsk Utility, pero eso congeló mi computadora durante más de 3 horas (¿tal vez se quedó sin espacio para trabajar?) - Terminé teniendo que forzar el reinicio.

Resolví el problema ejecutando primeros auxilios arrancados desde una instalación de disco duro externo de High Sierra. Eliminó algunas instantáneas antiguas. Luego pude arrancar desde mi disco normal y ejecutar, tmutil deletelocalsnapshots...lo que borró con éxito las instantáneas y liberó espacio.

¿No sería bueno si pudieras hacer esto desde Recovery... pero tmutilno existe en Recovery :/
Solo agregando que si su interrupción (CTRL+C) tmutil deletelocalsnapshots __SOME_DATE__, tmutil listlocalsnapshots /le dirá que todavía está aquí. Y no podrá eliminarlo (todavía dice que está aquí). Así que simplemente reinicie su Mac y luego tmutil deletelocalsnapshots __SOME_DATE__funcionará.