Я использую загрузочный диск SSD и жесткий диск на своем Macbook Pro 5,5, и я, очевидно, не могу использовать Time Machine для заполнения моего SSD. Мне было интересно, может ли машина времени создавать локальные резервные копии пользователей на моем SSD, но хранить их на моем жестком диске и иметь возможность использовать типичные функции локальных резервных копий машины времени, потому что в противном случае это было бы ненужным. Если такой вопрос был, буду признателен за ссылку, потому что искал и ничего не нашел. В противном случае, большое спасибо за любую помощь, которую вы можете предложить.
Я не смог найти способ изменить путь /.MobileBackups
, но вы можете создать папку на жестком диске, а затем сделать символическую ссылку на нее /.MobileBackups
:
Откройте Приложения>Утилиты>Терминал.
Теперь вам нужно будет ввести несколько команд. Нажмите returnпосле каждой команды для ее выполнения. При появлении запроса введите свой пароль.
Папка снимков имеет сложные разрешения. Самый простой способ сохранить их — скопировать существующую папку в новое место на жестком диске:
sudo rsync -ahvHE /.MobileBackups /Volumes/HDD/
(замените /Volumes/HDD
путь к вашему жесткому диску.)
rsync
варианты:
-a
: режим архива (рекурсивный; копировать символические ссылки как символические ссылки; сохранять разрешения, время, владельца, группу, файлы устройств, сокеты и fifos)-h
: результат вывода в удобочитаемом формате-v
: подробный, то есть показать, что делает команда-H
: сохранить жесткие ссылки-E
: копировать расширенные атрибуты, такие как ветки ресурсов и списки управления доступом.Отключите локальные снимки (это удалит /.MobileBackups
и его содержимое):
sudo tmutil disablelocal
Создать символическую ссылку:
sudo ln -s /Volumes/HDD/.MobileBackups /.MobileBackups
(замените /Volumes/HDD
путь к вашему жесткому диску.)
Включить локальные снимки:
sudo tmutil enablelocal
Создайте локальный снимок:
sudo tmutil snapshot
Если вы видите новый снимок, датированный «сейчас»:
ls -l /Volumes/HDD/.MobileBackups/Computer/
(...)
drwxr-xr-x@ 3 root wheel 102 Jan 28 09:05 2013-01-28-090534
все готово!
Если что-то пошло не так или не работает должным образом, вернитесь к исходной конфигурации:
Отключить локальные снимки:
sudo tmutil disablelocal
Это удалит символическую ссылку /.MobileBackups
. Если это не так, удалите его с помощью:
sudo rm /.MobileBackups
Включить локальные снимки:
sudo tmutil enablelocal
Удалите папку с альтернативными снимками на жестком диске:
sudo rm -rf /Volumes/HDD/.MobileBackups
( rm -rf
это опасная команда, которая не будет запрашивать подтверждение перед удалением папки. Убедитесь, что путь указан правильно!)
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
)./.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
Кажется, это работает до сих пор.
жауме
Джефф М
жауме