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.
No pude encontrar ninguna forma de modificar la ruta /.MobileBackups
, pero puede crear una carpeta en su HDD y luego vincularla a /.MobileBackups
:
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.
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/HDD
con la ruta a su HDD).
rsync
las 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 ACLDeshabilite las instantáneas locales (esto eliminará /.MobileBackups
y su contenido):
sudo tmutil disablelocal
Crear enlace simbólico:
sudo ln -s /Volumes/HDD/.MobileBackups /.MobileBackups
(reemplace /Volumes/HDD
con la ruta a su HDD).
Habilitar instantáneas locales:
sudo tmutil enablelocal
Cree una instantánea local:
sudo tmutil snapshot
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:
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
Habilitar instantáneas locales:
sudo tmutil enablelocal
Elimine la carpeta de instantáneas alternativa en su HDD:
sudo rm -rf /Volumes/HDD/.MobileBackups
( rm -rf
es un comando peligroso que no pedirá confirmación antes de eliminar la carpeta. ¡Asegúrese de que la ruta sea correcta!)
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.tmutil disable
inmediatamente borra /.MobileBackups
, por eso rsync
se queja y sale con un error, lo siento. He editado mi respuesta, pruébalo (no olvides habilitar las instantáneas primero sudo tmutil enable
)./.MobileBackups
pero no las ve cuando ingresa a Time Machine, podría ser un problema de permisos. /.MobileBackups
no 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 /.MobileBackups
desde 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.
jaume
jeffm
jaume