Делаем бекап OS X на сетевое хранилище

By | August 11, 2011

У Apple для хранения резервных копий данных есть такое устройство под названием Time Capsule. Есть модели на 1, 2, 3TB, а может уже и больше есть… А что, если я не хочу тратить 10-20 тысяч родных рублей и хочу использовать уже имеющиеся средства, такие как NAS-сервер, или удаленную Linux машину с приличным массивом дисков? По простому, макосевскую Time Machine, а также Aperture Vault не подружить с сетевыми дисками, т.к. в ответ вы получите только ругань и упреки от Стива в том, что до сих пор не купили тайм капсулу. Но, все таки, надо что-то попробовать…

Итак, в этой статье я расскажу, как заставить Time Machine и Aperture сохранять все бекапы на Linux-сервере. Статья, также, может быть полезна владельцем NAS устройств, поддерживающих протокол AFP. Поехали! Первым делом нужно убедить Time Machine отображать в списке выбора дисков сетевые шары, для чего открываем терминал и выполняем команду:

Довольно просто пока, да? Далее, на linux-сервере (в моем случае под управлением Fedora), нужно установить netatalk версии не ниже 2.2. Важно, чтобы версия не была ниже, иначе ничего работать не будет! После установки, конфигурим следующим образом:

  • В директории /etc/netatalk, в AppleVolumes.default в самом низу прописываем /mnt/storage/tm TimeMachine allow:YOURUSER rwlist:YOURUSER cnidscheme:tdb options:usedots,upriv,tm, где /mnt/storage/tm – путь до того места на сервере, где будут лежать бекапы, а YOURUSER – логин пользователя на сервере, под которым будет работать шара
  • В afpd.conf тоже в самом низу добавляем – -uamlist uams_dhx.so,uams_dhx2.so -unixcodepage UTF-8 -maccodepage MAC_CYRILLIC -savepassword -setpassword -tcp -advertise_ssh
  • Приводим вид содержимого файла netatalk.conf в такой вид:
  • В файле /etc/nsswitch.conf правим строчку (добавляем mdns4 mdns):
  • Переходим в директорию /etc/avahi/services и создаем там файл afpd.service:

  • Перезагружаем avahi-daemon и netatalk

На этом конфигурация закончена. Теперь последний, немного шаманский этап. Открываем Дисковую утилиту и создаем новый образ с параметрами:

  • Сохранить как: [имякомпьютера]_[макадрес].sparseimage
  • Имя тома: Backup of [имякомпьютера]
  • Размер тома: Выбрать (2TB, к примеру)
  • Формат тома: Mac OS Extended (Journaled)
  • Кодирование: нет
  • Разделы: Одиночный раздел – Схема разделов Apple
  • Формат образа: растущий пакет-образ диска

Вместо [имякомпьютера] нужно подставить название вашей машины точно так, как оно прописано, например, в терминале (например, в терминале у меня workimac:~ flash$, имя компа = workimac). Вместо [макадрес] подставляем мак того устройства, которым вы пользуетесь для общения с linux-сервером (это либо Ethernet, либо AirPort). Важно – мак-адрес должен быть написан в нижнем регистре и без двоеточий. Теперь, жмем “Создать” и после этого перемещаем наш файл-образ на подмонтированный сетевой диск TimeMachine, т.е. туда, где будет сохранять бекапы Time Machine.

На этом шаманство закончено. Теперь можно смело открыть настройки Time Machine и указать в качестве диска нашу сетевую шару. Для того, чтобы подключить шару под Aperture Vault, необходимо в /etc/netatalk/AppleVolumes.default добавить еще одну строку:

а затем перезагрузить netatalk. Теперь можно смело подмонтировать новый диск и указать его в Aperture.

Восстановление данных из Time Machine

Если случилось так, что вам пришлось загрузиться с DVD диска, чтобы сделать полное восстановление системы, то сперва надо через терминал примонтировать наш сетевой диск TimeMachine:
mount -t afp afp://username:password@hostname/TimeMachine /Volumes/TimeMachine
а затем уже, закрыв терминал входить в машину времени.

UPDATE: Если у вас OS X Lion версии 10.7.2 или выше, можно обойтись без последнего шага, где нужно было создать образ диска и положить его на сетевой диск. У меня получилось просто подключить пустую шару, выбрать диск в Time Machine и все само заработало (TM сделала образ самостоятельно).