¿Alguna forma de cambiar la ubicación de las copias de seguridad locales de Time Machine (./MobileBackups) a otra unidad?

Estoy ejecutando una unidad de arranque SSD y una unidad HDD en mi Macbook Pro 5,5 y obviamente no puedo hacer que Time Machine llene mi SSD. Me preguntaba si había alguna forma de que Time Machine creara copias de seguridad locales de los usuarios en mi SSD, pero las almacenara en mi HDD y pudiera usar las características típicas de las copias de seguridad locales de Time Machine, porque de lo contrario sería innecesario. Si se ha hecho esta pregunta, agradecería un enlace, porque busqué y no pude encontrar nada. De lo contrario, muchas gracias cualquier ayuda que pueda ofrecer.

Me preguntaba si logró mover las copias de seguridad locales de Time Machine como se describe en mi respuesta y comentario a continuación. Si ese es el caso, le agradecería que marcara su pregunta como respondida. ¡Gracias!
Acabo de iniciar sesión y me di cuenta de esto. Siento mucho haber tardado tanto en marcarlo como respondido. ¡Gracias por el gran recorrido!
No hay problema, gracias por tus comentarios, ¡me alegro de haber podido ayudar!

Respuestas (3)

No pude encontrar ninguna forma de modificar la ruta /.MobileBackups, pero puede crear una carpeta en su HDD y luego vincularla a /.MobileBackups:

  1. Abra Aplicaciones>Utilidades>Terminal.

    Ahora tendrás que escribir varios comandos. Presione returndespués de cada comando para que se ejecute. Cuando se le solicite, escriba su contraseña.

  2. La carpeta de instantáneas tiene permisos complejos. La forma más sencilla de conservarlos es copiar la carpeta existente a la nueva ubicación en su HDD:

    sudo rsync -ahvHE /.MobileBackups /Volumes/HDD/

    (reemplace /Volumes/HDDcon la ruta a su HDD).

    rsynclas opciones son:

    • -a: modo de archivo (recursivo; copiar enlaces simbólicos como enlaces simbólicos; conservar permisos, tiempos, propietario, grupo, archivos de dispositivos, sockets y fifos)
    • -h: resultado de salida en formato legible por humanos
    • -v: detallado, es decir, muestra lo que está haciendo el comando
    • -H: preservar enlaces duros
    • -E: copie atributos extendidos como bifurcaciones de recursos y ACL
  3. Deshabilite las instantáneas locales (esto eliminará /.MobileBackupsy su contenido):

    sudo tmutil disablelocal

  4. Crear enlace simbólico:

    sudo ln -s /Volumes/HDD/.MobileBackups /.MobileBackups

    (reemplace /Volumes/HDDcon la ruta a su HDD).

  5. Habilitar instantáneas locales:

    sudo tmutil enablelocal

  6. Cree una instantánea local:

    sudo tmutil snapshot

  7. Si ve una nueva instantánea fechada "ahora":

    ls -l /Volumes/HDD/.MobileBackups/Computer/
    (...)
    drwxr-xr-x@ 3 root  wheel  102 Jan 28 09:05 2013-01-28-090534
    

    ¡Ya terminaste!

Si algo salió mal o no funciona como se esperaba, vuelva a la configuración original:

  1. Deshabilitar instantáneas locales:

    sudo tmutil disablelocal

    Esto eliminará el enlace simbólico /.MobileBackups. Si ese no es el caso, elimínelo con:

    sudo rm /.MobileBackups

  2. Habilitar instantáneas locales:

    sudo tmutil enablelocal

  3. Elimine la carpeta de instantáneas alternativa en su HDD:

    sudo rm -rf /Volumes/HDD/.MobileBackups

    ( rm -rfes un comando peligroso que no pedirá confirmación antes de eliminar la carpeta. ¡Asegúrese de que la ruta sea correcta!)

¡Gracias! Eso se ve muy bien y bien escrito. Tengo un pequeño problema que cuando deshabilito la copia de seguridad local, la imagen de disco ./MobileBackup se desmonta y rsync arroja un error: building file list ... rsync: link_stat "/.MobileBackups" failed: No such file or directory (2) done sent 29 bytes received 20 bytes 98.00 bytes/sec total size is 0 speedup is 0.00 rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(992) [sender=2.6.9]Gracias por su ayuda hasta ahora, sería genial que esto funcionara, entonces, ¿cómo consiguieron que rsync ¿trabajar? Gracias de nuevo.
Pasé por alto que tmutil disableinmediatamente borra /.MobileBackups, por eso rsyncse queja y sale con un error, lo siento. He editado mi respuesta, pruébalo (no olvides habilitar las instantáneas primero sudo tmutil enable).
Jaume: esto fue extremadamente útil. En OSX 10.8.2, esto me permite escribir las instantáneas locales de Time Machine, pero por alguna razón no puedo leer el contenido de las carpetas en Time Machine. Estoy seguro de que es algún tipo de problema de permisos, pero no puedo resolverlo. ¿Algunas ideas? Si copio la carpeta de la segunda unidad y cambio los permisos de acceso, las copias de seguridad están ahí y completas. Si entro en la máquina del tiempo, tiene carpetas correspondientes a las fechas en que se realizaron las instantáneas, pero no puede encontrar ningún contenido. Me doy cuenta de que los permisos son un poco diferentes en la unidad con la que me sincronicé, no es roo
Me alegro de que haya sido útil. En cuanto a su pregunta: si quiere decir que las copias de seguridad están /.MobileBackupspero no las ve cuando ingresa a Time Machine, podría ser un problema de permisos. /.MobileBackupsno está destinado a ser accedido directamente, y su estructura interna, incluidos los permisos, no está documentada. Puede mirar dentro (usar sudo ls /.MobileBackups/Computer/<date>) o incluso copiar archivos, pero no cambie los permisos. Le recomiendo que recree /.MobileBackupsdesde cero como se explica en mi respuesta y pruebe si funciona. Si ese es el caso, fue un problema de permisos.

Sé que esta es una pregunta/respuesta de alguna manera antigua, pero estoy rehaciendo esto ahora mismo en Yosemite y agregué un pequeño detalle elegante a esta configuración: desde que estoy en Yosemite me he visto obligado a aplicar la "raíz" de Benjamin en lugar de "sudo", actualmente funciona como se esperaba, pero no me gustaba tener un ícono para el volumen de la instantánea, algo que no debería necesitar ver y acceder mientras hace cosas normales como usuario, así que elijo ocultar el ícono del volumen de la instantánea usando el comando SetFile (que, afaik, se instala a través de xcode)

usando rutas de ejemplos anteriores, sería:

SetFile -a V /Volumes/HDD/

y puf, el ícono de volumen desapareció: las instantáneas locales vuelven a ser totalmente invisibles, como de costumbre, pero aún están montadas (puede navegar e incluso abrir directorios a través de la terminal, como con cualquier otro directorio invisible en su sistema de archivos)

Incluso hice un pequeño shellscript (no probado, porque ya lo hice manualmente, así que PRESTE ATENCIÓN ANTES DE EJECUTARLO , ya que debe ejecutarse como root como explicó Benjamin en su comentario/respuesta)

Nota final, solo para tu información: por lo que puedo ver ahora, el volumen de la instantánea normalmente se puede cifrar

Gracias por su trabajo, aquí está el script bash, claramente basado en sus respuestas:

#!/bin/sh

# description:
# move /.MobileBackups to a different volume, to avoid wearing your SSD
# this script must me run as root, not via sudo. 
# based on http://apple.stackexchange.com/questions/80183/any-way-to-change-the-location-of-time-machine-local-backups-mobilebackups-t

################################################################################

# safety measure to avoid kids running this script with no clue and blaming me.
# comment it
echo "always check what you run before running it" && exit


# syntax/help
if [ -z "${1}" ] ; then
    echo "\nusage:\t`basename ${0}` /Volumes/SnapshotVolume\n"
    echo "*** Please note that this script MUST be run as root, not via sudo ***"
    echo "*** just run \"sudo su\", insert your password and THEN run this script ***"
    echo
    exit    
fi 

# checks that this script is run being root, not via sudo
homeDir=`echo ~`
if [ "${homeDir}" != "/var/root"  ] ; then
    echo
    echo "*** Please note that this script MUST be run as root, not via sudo ***"
    echo "*** just run \"sudo su\", insert your password and THEN run this script ***"
    echo
    exit    
fi 


# get dest volume path
snapVolume="${1}"

# create a "Backups" directory inside the snapshot volume root directory
# please note that this is a safety measure: if the snapshot volume is not
# excluded from time machine backups, you'll find an already existing directory
# at /Volumes/SnapshotVolume/.MobileBackups (each volume has his own directory)
# so, to avoid any mess, I prefer to make a Backups directory and put the actual
# .MobileBackups inside it, at a non volume-root level
mkdir ${snapVolume}/Backups

# duplicate the existing .MobileBackups to the destination path
rsync -ahvHE /.MobileBackups ${snapVolume}/Backups/

# this double command will remove the existing /.MobileBackups directory and,
# if and only if the rm command exits with no errors, symlink the new directory
# cloned in the 2nd hard drive to the main drive /.MobileBackups path
rm -rf /.MobileBackups && ln -s ${snapVolume}/Backups/.MobileBackups /.MobileBackups

# makes the snapshot volume invisible in finder
SetFile -a V ${snapVolume}

# a final test, just because..
tmutil snapshot

Si está ejecutando OSX 10.8 o superior, algo sucede cuando deshabilita las instantáneas locales, de modo que ya no se puede acceder a las instantáneas existentes a través de TM. Para resolver este problema, use sudo -s para iniciar sesión como usuario root y ejecute el siguiente código para modificar el excelente tutorial de Jaume:

cd /
tmutil disablelocal
sleep 300

rm -rf /Volumes/HDD/.MobileBackups/

tmutil enablelocal
sleep 60
tmutil snapshot
tmutil snapshot

rsync -ahvHE /.MobileBackups /Volumes/HDD/
rm -rf .MobileBackups
ln -s /Volumes/HDD/.MobileBackups /.MobileBackups

tmutil snapshot
tmutil snapshot

Eso parece funcionar hasta ahora.

Quiero tener cuidado con el rm: dependiendo de la cantidad de intervalos, debe dejar que el software de copias de seguridad móviles limpie las cosas. Teóricamente, el rm es inofensivo, pero no me gusta tener condiciones de carrera para eliminar archivos cuando puedo evitarlo. Agregué comandos de suspensión para permitir que el subsistema se estabilice después de apagarlo y encenderlo nuevamente.