Сервер для Time Machine на Windows или Linux

В статье про директорию /Users/Shared/adi я пообещал рассказать как сделать костыль сервер для Time Machine на машине с Windows. Но если у вас она на Linux — так ещё лучше.

Сервер для Time Machine на Windows или Linux

Сервер Time Machine будет поднят с помощью Netatalk (утилита поддерживает протокол Apple — AFP). Если у вас Windows, то способ реализации не слишком удобный, придётся устанавливать виртуальную машину с Linux (в моём случае была Ubuntu Server, её и рекомендую ставить). Мне это удобно, ибо в кладовке стоит постоянно включенный системный блок с установленной Windows 10.

Виртуальную машину я создавал в VMware, но вы можете воспользоваться любимым софтом (например VirtualBox, он бесплатен). Главное — не забудьте включить сетевой режим — мост, чтобы сервер было видно в локальной сети как отдельное сетевое устройство. Размер жёсткого диска указывайте в соответсвии с необходимым размером для хранилища (я сделал в два раза больше, чем ssd на MacBook’е + 100Gb сверху).

Сервер для Time Machine на Windows или Linux

Если вы уже установили Ubuntu Server (либо другой дистрибутив на Debian) в виртуальной машине и она пингуется в сети — можно приступать к установке.

Диск Time Machine на Ubuntu Server

Для начала полностью обновимся и почистим за собой.

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade && sudo apt-get autoremove

Соглашайтесь со всеми изменениями, нажимая клавишу Enter. Теперь нужно установить зависимости Netatalk:

sudo apt-get install build-essential devscripts debhelper cdbs autotools-dev dh-buildinfo libdb-dev libwrap0-dev libpam0g-dev libcups2-dev libkrb5-dev libltdl3-dev libgcrypt11-dev libcrack2-dev libavahi-client-dev libldap2-dev libacl1-dev libevent-dev d-shlibs dh-systemd

Теперь скачаем последнюю версию Netatalk с git:

git clone https://github.com/adiknoth/netatalk-debian

Соберём установочные пакеты:

cd netatalk-debian
debuild -b -uc -us
cd ..

После окончания сборки пакетов должно появится 3 файла:

  • libatalk-dev_*_**.deb
  • libatalk16_*_**.deb
  • netatalk_*_**.deb

Где * — это версия пакета, а ** — разрядность операционной системы, под которую собрался пакет (и, соответсвенно, разрядность вашей ОС).

Теперь установим сам Netatalk:

sudo dpkg -i libatalk-dev_*.deb
sudo dpkg -i libatalk16_*.deb
sudo dpkg -i netatalk_*.deb

Установим ещё несколько необходимых пакетов (демон Avahi и другие зависимости):

sudo apt-get install avahi-daemon libc6-dev libnss-mdns

Настройка сервера Time Machine

Перейдём в домашнюю директорию:

cd ~/

И создадим папку, где будут хранится бекапы Time Machine:

mkdir tm

Открываем конфиг:

sudo nano /etc/netatalk/afp.conf

И добавьте вот такие строки:

time machine = yes
path = /home/timemachine/tm
valid users = timemachine

Вместо timemachine на второй и третьей строчке вставьте имя пользователя, которого вы создали во время установки Ubuntu Server. Сохраните файл и запустите необходимые сервисы:

sudo systemctl enable netatalk.service
sudo systemctl start netatalk.service
sudo systemctl enable avahi-daemon.service
sudo systemctl start avahi-daemon.service

Всё, сервер Time Machine работает! Но чтобы ваша OS X видела сервер, откройте терминал и пропишите эти строки:

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

Так вы включили поддержку «неподдерживаемых» (или неофициальных) серверов Time Machine.

Перейдите в настройки Time Machine и проверьте видимость сервера:

Сервер для Time Machine на Windows или Linux

Ваш бюджетный вариант Apple Time Capsule готов! Если что-то пошло не так и не получается — пишите в комментарии, будем разбираться вместе.

Если вы никогда не пользовались подобными бекапами — обязательно посмотрите как красиво выглядит восстановление файлов:

Сейчас, в более новых версиях OS X и macOS (да, начиная с версии 10.12 операционная система будет переименована) перелистывание и фон выглядят чуть по другому, но механика не изменилась.