Time Machine server на FreeBSD: backup, restore, полный restore...

[Оглавление раздела Hackinthosh]

Как многие знают, Time Machine на Mac OS X 10.7 не поддерживает SMB

Пришлось осилить AFP и к нему mDNSResponder. И если с AFP все тривиально, то с mDNSResponder пришлось помудохавозиться, ибо документации к нему в сети сыскать не удалось, исключительно методом тыка разбирался.

Идеальное решение должно уметь:

  • Бэкап TimeMachine на FreeBSD-сервер.
  • Пофайловое восстановление с TimeMachine за нужную дату.
  • Накатка целого бэкапа из инсталлятора Lion/Snow Leopard

Нижеприведенный текст - для FreeBSD, для Linux/Solaris будет отличаться процедура установки пакетов, а настройка должна быть примерно такая же.

Netatalk и его настройка

Первые две задачи решаются установкой netatalk из портов:
    cd /usr/ports/net/netatalk
    make && make install

Настройка получилась такая (имена томов/серверов условные):

# ===/usr/local/etc/AppleVolumes.default ====  
/backup/mac1/    "TMmac1" allow:lexa options:tm,usedots
/backup/mac2/    "TMmac2" allow:lexa options:tm,usedots
/backup/mac3/    "TMmac3" allow:lexa options:tm,usedots
     
# === /usr/local/etc/afpd.conf ====
"server" -uamlist uams_dhx2.so  -ipaddr 192.168.1.1
"server" -uamlist uams_dhx2.so  -ipaddr 192.168.2.1
     
# ===/usr/local/etc/netatalk.conf ====
ATALK_NAME=server
     
# ===/etc/rc.conf ===
netatalk_enable="YES"
afpd_enable="YES"
cnid_metad_enable="YES"
Пояснения:
  1. Я решил завести три отдельные AFP-share, по одной для каждого из MacOS-устройств. Так удобнее, ибо все мои макоси пытаются назвать себя Alex Tutubalin's MacBook (Mac, MacPro), отчего имеется много путаницы.
  2. На сервере много сетевых интерфейсов, но AFP я хочу только на двух из них.
  3. ATALK_NAME, как мне показалось, ни на что не влияет, но все его ставят - и я тоже.
Стартуем всю халабуду:
/usr/local/etc/rc.d/netatalk start
После этого:
  • В Finder можно приконнектиться (Cmd-K) по afp://ip-адрес-сервера (логин-пароль - FreeBSD-шный)
  • После такого приконнекчивания TimeMachine видит тома в списке (по кнопке Select Disk), причем никаких TMShowUnsupportedNetworkVolumes 1 не нужно.

А приконнектившись - можно бэкапить и (выборочно) ресторить. Для автоматического поиска томов, бэкапов и т.п. нужен mDNS.

mDNS

Прежде чем перейти к сути, хочу высказать фе сразу всем: компании Apple, авторам портов и т.п. Этот кусок - либо вовсе недокументирован, либо документация зарыта где-то в глубинном вебе, гугление по словам mDNSResponder.conf и тому подобным - находит очень мало хорошего.

Впрочем, полезные вещи в глубинном вебе тоже встречаются, я руководствовался такими вот текстами и утилитами:

  • FreeBSD and OS X Lion Time machine - у меня так, как там написано - не заработало.
  • Bonjour Browser - утилита, которая позволяет посмотреть, что же творится в этом самом бонжуре. Ибо Finder показывает катастрофически мало, да и mDNS (Mac)/mDNSBrowse (FreeBSD port) тоже не подарок.
  • Вот этот вот тред про FreeNAS, откуда более-менее понятно что смотреть, куда копать и какие (нецензурно) бывают флаги.
  • И немножко документации Эппла где описаны флаги у тома.

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

  1. ports/net/mDNSResponder не ставим, он чудовищный какой-то.
  2. Ставим ports/net/howl обычным способом (make && make install)
  3. Настройка описана ниже
# === /etc/rc.conf ==
mdnsresponder_enable="YES"
mdnsresponder_flags="-i em0 -i igb0"

# === /usr/local/etc/howl/mDNSResponder.conf ==
"server"    _afpovertcp._tcp    local.    548
"server" _adisk._tcp local 9 "sys=waMA=0,adVF=0x100" "dk0=adVF=0xa1,adVN=TMmac1"  "dk1=adVF=0xa1,adVN=TMmac2" "dk2=adVF=0xa1,adVN=TMmac3"
У меня, как я писал выше, два сетевых интерфейса смотрят в дом, оба перечислены в параметрах mDNSResponder и с howl так работает.

В mDNSResponder.conf первая строчка описывает afp-сервер, вторая - с тем же именем сервера - поддерживаемые на нем тома. Указывать MAC-адрес в sys=waMA= необязательно, 0 вполне работает.

При этом server виден в Finder (в левой колонке) и по кнопке 'Connect as...' дает ввести логин-пароль, после чего дает доступ к трем перечисленным томам и к четвертому (home-каталогу пользователя).

Флаги, насколько я их понял:

  • В колонке sys= 0x100 - сервер 10.5/10.6. Можно поставить 0x1010, тогда эта штука притворится TimeCapsule и в списке томов в Finder не будет тома с именем пользователя.
  • В колонке dkN= 0x80 - поддержка TimeMachine, 0x01 - поддержка AFP. В разных местах в интернете встречаются комбинации этих флагов вида 0x81, 0x83, 0xa1. У меня работали все три варианта, какой-то разницы я не увидел, оставил 0xa1
Если на AFP-сервере несколько томов, то они все описываются в одной строчке _adisk._tcp - и так работает. Несколько строчек тоже работают, но создают несколько строчек в левой колонке Finder, что неудобно.

Запускаем mDNSResponder:

 /usr/local/etc/rc.d/mdnsresponder start
и наслаждаемся результатом:
  • В TimeMachine наши тома видны сразу, не нужно коннектиться к afp:// в Finder. Это работает и в 10.7.2 и в 10.6.8. Пофайловое восстановление тоже, естественно, работает.
  • Инсталлятор OS X 10.7 Lion умеет найти эти тома в сети (если она сконфигурирована в момент инсталляции) и поресторить с них систему. Это я проделал.
  • Инсталлятор 10.6.7 (от iMac, скачаный с рутрекера) на старом MacBook Pro сказал, по смыслу, следущее: неподдерживаемая система, ставиться не буду, могу восстановиться из Backup. И нашел тома AFP в сети, дал залогиниться, предложид выбрать из бэкапов, а дальше я не стал. Т.е. работает.

    Как мне объяснили, то что DVD идущий с конкретной моделью может не инсталлировать на другую - это фишка. Сюрприз от Apple. Но что этот сюрприз умеет накатить бэкап - большой плюс.

  • 10.6.3 Retail, 10.6.0 Retail: выбираем в Utilities "Restore System from Backup", выбор тома-бэкапа работает, дальше - не пробовал.
Все тесты восстановления делались на Mac Book Pro 2007-го года, эксперименты с восстановлением Хакинтоша тоже будут, но не сегодня.

Типичные (мои) ошибки:

  • Имена томов в AppleVolumes и в mDNSResponder.conf должны быть одинаковы, регистр имени - важен.
  • Если login/пароль на сервере и на маке/хакинтоше разные, то не надо ожидать, что простой клик в имя тома в Finder принесет счастье, не забывайте про 'Connect as'

Больше всего изумляет, конечно, процедура полного восстановления:

  • Грузимся с флешки
  • Включаем WiFi
  • Выбираем "восстановить с TimeMachine backup"
  • После чего оно часа полтора восстанавливает (т.к. WiFi, по проводу было бы гораздо быстрее), перегружается
  • И мы видим систему, в которой даже запущенные программы - те же, что были запущены на момент бэкапа (это, вроде, только Lion-овская фишка).

Comments

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

>Больше всего изумляет, конечно, процедура полного восстановления:

в последних макбук-аирах (и всех маках где предустановлен лион, как я понимаю) процедура полного восстановления даже не содержит первого пункта ("грузимся с флещки"), оно теперь в биосе есть (или как он там называется) - и может восстановить из тайм-машины (вроде как). а если нет её, то залезть на сервер apple и накатить lion оттуда...
то есть к примеру меняем системный SSD на чистый, включаем мак, зажимая cmd-R, настраиваем вайфай и вперёд.

На каких-то не в BIOS, а Restore Partition на диске. Т.е. в случае поломки диска - придется таки с флэшки.

Я так и написал - на последних маках, где на заводе предустановлен Lion, вот там поддерживается Интернет-восстановление.

Соответственно все маки, на которых предустановлен снегопард и ранее - не поддерживают, при замене диска грузиться надо с флешки.

В текущий air (с Lion-ом) в коробку теперь флешку с ОСью не кладут даже.

С Lion-ом сейчас продается все (как минимум, с сайта Apple).

А эта самая Internet Recovery есть только в Air и Mini

А, точно, сорри.
Я неправильно понял у них на сайте (http://www.apple.com/ru/macosx/recovery/ ) "Функция восстановления системы через Интернет устанавливается на каждом новом Mac, начиная от Mac mini и MacBook Air.", надо понимать не так, что "все что продается сейчас с Lion" а "всё новое железо, которое будет выпущено после новых Air mid 2011 и Mini 2011."

Да, и там ниже приписано "Не все компьютеры Mac с системой OS X Lion поддерживают восстановление через Интернет. "