Un modo per cambiare la posizione dei backup locali di Time Machine (./MobileBackups) su un'altra unità?

2

Ho in esecuzione un'unità di avvio SSD e un'unità HDD sul mio MacBook Pro 5,5 e ovviamente non posso avere Time Machine che carica il mio SSD. Mi stavo chiedendo se ci fosse comunque la macchina del tempo per creare backup locali degli utenti sul mio SSD, ma memorizzarli sul mio HDD e poter usare le caratteristiche tipiche dei backup locali della macchina del tempo, perché altrimenti non sarebbe necessario. Se questa domanda è stata posta, apprezzerei un link, perché ho cercato e non ho trovato nulla. Altrimenti, ti ringrazio molto per qualsiasi aiuto tu possa offrire.

    
posta JeffM 28.01.2013 - 06:45
fonte

3 risposte

4

Non sono riuscito a trovare alcun modo per modificare il percorso /.MobileBackups , ma puoi creare una cartella sul tuo HDD e quindi collegarlo simbolicamente a /.MobileBackups :

  1. Apri Applicazioni > Utilità > Terminale.

    Ora dovrai digitare diversi comandi. Premere return dopo ogni comando da eseguire. Quando richiesto, digita la tua password.

  2. La cartella degli snapshot ha autorizzazioni complesse. Il modo più semplice per conservarli è copiare la cartella esistente nella nuova posizione sul tuo HDD:

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

    (sostituisci /Volumes/HDD con il percorso del tuo HDD.)

    % opzioni dirsync sono:

    • -a : modalità di archiviazione (ricorsiva; copia symlinks come collegamenti simbolici; preserva permessi, tempi, proprietario, gruppo, file di dispositivo, socket e fifos)
    • -h : risultato di output in formato leggibile dall'uomo
    • -v : verbose, ovvero mostra cosa sta facendo il comando
    • -H : conserva hardlink
    • -E : copia gli attributi estesi come i fork delle risorse e gli ACL
  3. Disabilita le istantanee locali (questo eliminerà /.MobileBackups e il suo contenuto):

    sudo tmutil disablelocal

  4. Crea link simbolico:

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

    (sostituisci /Volumes/HDD con il percorso del tuo HDD.)

  5. Abilita istantanee locali:

    sudo tmutil enablelocal

  6. Crea uno snapshot locale:

    sudo tmutil snapshot

  7. Se vedi una nuova istantanea datata "ora":

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

    hai finito!

Se qualcosa è andato storto o non funziona come previsto, ripristina la configurazione originale:

  1. Disabilita istantanee locali:

    sudo tmutil disablelocal

    Questo cancellerà il link simbolico /.MobileBackups . In caso contrario, cancellalo con:

    sudo rm /.MobileBackups

  2. Abilita istantanee locali:

    sudo tmutil enablelocal

  3. Elimina la cartella delle istantanee alternative sul disco fisso:

    sudo rm -rf /Volumes/HDD/.MobileBackups

    ( rm -rf è un comando pericoloso che non chiederà conferma prima di eliminare la cartella. Assicurati che il percorso sia corretto!)

risposta data 28.01.2013 - 09:26
fonte
1

So che questa è in qualche modo una vecchia domanda / risposta, ma ora sto riprovaggiando questo in Yosemite e ho aggiunto un piccolo dettaglio a questa configurazione: visto che sono su Yosemite sono stato costretto ad applicare Il metodo "root invece di sudo" di Benjamin funziona attualmente come previsto, ma non mi piaceva avere un'icona per il volume dell'istantanea, qualcosa che non dovresti vedere e accedere mentre fai cose normali come un utente, quindi io scegli di nascondere l'icona del volume dell'istantanea usando il comando SetFile (che, afaik, è installato tramite xcode)

utilizzando i percorsi degli esempi precedenti, sarebbe:

SetFile -a V /Volumes/HDD/

e pouf, l'icona del volume è scomparsa: le istantanee locali sono di nuovo totalmente invisibili, come al solito, ma sono ancora montate (puoi sfogliare e persino aprire directory tramite terminale, come con qualsiasi altra directory invisibile nel tuo filesystem)

Ho persino creato un piccolo script di shell (non testato, perché l'ho già fatto manualmente, quindi PRESTARE ATTENZIONE PRIMA DI ESEGUIRE , poiché è necessario eseguirlo come root come spiegato da Benjamin nel suo commento / risposta )

Nota finale, solo fyi: per quello che posso vedere ora, il volume dell'istantanea può essere normalmente crittografato

Grazie per il tuo lavoro, ecco lo script di bash, chiaramente basato sulle tue risposte:

#!/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
    
risposta data 10.07.2015 - 20:10
fonte
1

Se stai utilizzando OSX 10.8 o versioni successive, succede qualcosa quando disabiliti le istantanee locali in modo tale che le istantanee esistenti non siano più accessibili tramite TM. Per risolvere questo problema, usa sudo -s per accedere come utente root ed eseguire il seguente codice per modificare l'eccellente tutorial di 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

Sembra che funzioni fino ad ora.

    
risposta data 20.03.2013 - 18:55
fonte

Leggi altre domande sui tag