Есть ли способ изменить расположение локальных резервных копий Time Machine (./MobileBackups) на другой диск?

Я использую загрузочный диск SSD и жесткий диск на своем Macbook Pro 5,5, и я, очевидно, не могу использовать Time Machine для заполнения моего SSD. Мне было интересно, может ли машина времени создавать локальные резервные копии пользователей на моем SSD, но хранить их на моем жестком диске и иметь возможность использовать типичные функции локальных резервных копий машины времени, потому что в противном случае это было бы ненужным. Если такой вопрос был, буду признателен за ссылку, потому что искал и ничего не нашел. В противном случае, большое спасибо за любую помощь, которую вы можете предложить.

Мне было интересно, удалось ли вам переместить локальные резервные копии Time Machine, как описано в моем ответе и комментарии ниже. Если это так, я был бы признателен, если бы вы могли отметить свой вопрос как ответ. Спасибо!
Я только что зарегистрировался и заметил это. Очень жаль, что мне потребовалось так много времени, чтобы отметить это как ответ. Спасибо за отличное прохождение!
Нет проблем, спасибо за ваш отзыв, я рад, что смог помочь!

Ответы (3)

Я не смог найти способ изменить путь /.MobileBackups, но вы можете создать папку на жестком диске, а затем сделать символическую ссылку на нее /.MobileBackups:

  1. Откройте Приложения>Утилиты>Терминал.

    Теперь вам нужно будет ввести несколько команд. Нажмите returnпосле каждой команды для ее выполнения. При появлении запроса введите свой пароль.

  2. Папка снимков имеет сложные разрешения. Самый простой способ сохранить их — скопировать существующую папку в новое место на жестком диске:

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

    (замените /Volumes/HDDпуть к вашему жесткому диску.)

    rsyncварианты:

    • -a: режим архива (рекурсивный; копировать символические ссылки как символические ссылки; сохранять разрешения, время, владельца, группу, файлы устройств, сокеты и fifos)
    • -h: результат вывода в удобочитаемом формате
    • -v: подробный, то есть показать, что делает команда
    • -H: сохранить жесткие ссылки
    • -E: копировать расширенные атрибуты, такие как ветки ресурсов и списки управления доступом.
  3. Отключите локальные снимки (это удалит /.MobileBackupsи его содержимое):

    sudo tmutil disablelocal

  4. Создать символическую ссылку:

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

    (замените /Volumes/HDDпуть к вашему жесткому диску.)

  5. Включить локальные снимки:

    sudo tmutil enablelocal

  6. Создайте локальный снимок:

    sudo tmutil snapshot

  7. Если вы видите новый снимок, датированный «сейчас»:

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

    все готово!

Если что-то пошло не так или не работает должным образом, вернитесь к исходной конфигурации:

  1. Отключить локальные снимки:

    sudo tmutil disablelocal

    Это удалит символическую ссылку /.MobileBackups. Если это не так, удалите его с помощью:

    sudo rm /.MobileBackups

  2. Включить локальные снимки:

    sudo tmutil enablelocal

  3. Удалите папку с альтернативными снимками на жестком диске:

    sudo rm -rf /Volumes/HDD/.MobileBackups

    ( rm -rfэто опасная команда, которая не будет запрашивать подтверждение перед удалением папки. Убедитесь, что путь указан правильно!)

Спасибо! Это выглядит здорово и хорошо написано. У меня есть небольшая проблема: когда я отключаю локальное резервное копирование, образ диска ./MobileBackup размонтируется, и rsync выдает ошибку: 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]Спасибо за вашу помощь, было бы здорово, чтобы это заработало, так как же вы заставили rsync работа? Еще раз спасибо.
Я проглядел, что tmutil disableсразу стирает /.MobileBackups, поэтому rsyncжалуется и выходит с ошибкой, извините за это. Я отредактировал свой ответ, попробуйте (не забудьте сначала включить снимки sudo tmutil enable).
Jaume- это было чрезвычайно полезно. В OSX 10.8.2 это позволяет мне записывать локальные снимки машины времени, но по какой-то причине я не могу прочитать содержимое папок в машине времени. Я уверен, что это какая-то проблема с разрешениями, но я не могу понять это. Есть идеи? Если я скопирую папку со второго диска и изменю права доступа, резервные копии будут завершены. Если я ввожу машину времени, у нее есть папки, соответствующие датам создания снимков, но я не могу найти никакого содержимого. Я заметил, что разрешения на диске, с которым я синхронизировался, немного отличаются — это не так.
Я рад, что это было полезно. Что касается вашего вопроса: если вы имеете в виду, что резервные копии есть, /.MobileBackupsно вы не видите их при входе в Time Machine, это может быть проблема с разрешением. /.MobileBackupsне предназначен для прямого доступа, а его внутренняя структура, включая разрешения, не документирована. Вы можете заглянуть внутрь (использовать sudo ls /.MobileBackups/Computer/<date>) или даже скопировать файлы из него, но не меняйте разрешения. Я бы порекомендовал вам воссоздать /.MobileBackupsс нуля, как объяснено в моем ответе, и проверить, работает ли он. Если это так, это была проблема с разрешениями.

Я знаю, что это какой-то старый вопрос/ответ, но я повторяю это прямо сейчас в Yosemite, и я добавил небольшую причудливую деталь в эту конфигурацию: так как я нахожусь в Yosemite, я был вынужден применить "корень" Бенджамина вместо sudo", в настоящее время он работает так, как ожидалось, но мне не нравилось иметь значок для тома моментального снимка, что-то, что вам не нужно видеть и получать к нему доступ при выполнении обычных действий в качестве пользователя, поэтому я решил скрыть значок тома моментального снимка с помощью команды SetFile (которая, на самом деле, устанавливается через xcode)

используя пути из предыдущих примеров, это будет:

SetFile -a V /Volumes/HDD/

и пуф, значок громкости исчез: локальные снимки снова полностью невидимы, как обычно, но все еще подключены (вы можете просматривать и даже открывать каталоги через терминал, как и любой другой невидимый каталог в вашей файловой системе)

Я даже сделал небольшой шелл-скрипт (не тестировался, потому что я уже сделал это вручную, поэтому ОБРАТИТЕ ВНИМАНИЕ ПЕРЕД ЗАПУСКОМ , так как его нужно запускать от имени пользователя root, как объяснил Бенджамин в своем комментарии/ответе)

Последнее замечание, просто к вашему сведению: насколько я вижу сейчас, том моментального снимка обычно может быть зашифрован.

Спасибо за вашу работу, вот скрипт bash, явно основанный на ваших ответах:

#!/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

Если вы используете OSX 10.8 или выше, что-то происходит, когда вы отключаете локальные моментальные снимки, так что существующие моментальные снимки больше не доступны через TM. Чтобы решить эту проблему, используйте sudo -s, чтобы войти в систему как пользователь root, и выполните следующий код, чтобы изменить превосходный учебник 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

Кажется, это работает до сих пор.

Я хочу быть осторожным с rm - в зависимости от количества интервалов вам нужно позволить программному обеспечению для резервного копирования мобильных устройств очистить вещи. Теоретически rm безвреден, но мне не нравятся условия гонки для удаления файлов, когда я могу помочь. Я добавил команды сна, чтобы подсистема стабилизировалась после ее выключения и повторного включения.