Настраиваем Debian/Ubuntu как Mac хранилище

    Уже давно являюсь пользователем продукции Apple. Старенький макбук полностью справляется с теми задачами, что на него возлагаются. В основном конечно развлекательные. Но в последнее время стало не хватать места на 40 гиговом жестком диске. И вот наконец у меня зачесались руки настроить свой домашний сервер, как хранилище. Некоторое время работал по ftp, но это было не удобно. Было принято решение настроить наконец Appletalk, не зря же он есть и заодно приручить к нему TimeMachine:-)

    Настройка всего этого можно разделить на несколько этапов:
    1. Установка Appletalk
    2. Настройка AppleTalk
    3. Установка Avahi
    4. Настройка Avahi
    5. Настройка TimeMachine

    Ну что ж, приступим.

    1. Установка AppleTalk



    Пакет Netatalk — opensource реализация сервиса Appletalk (AFP сервер). Mac OS X требует поддержки шифрования, но стандартная сборка этого пакета не поддерживает шифрование. Поэтому необходимо пересобрать этот пакет.

    Тут можно скачать уже правильно собранный пакет, и перейти к пункту 2.

    Но лучше собрать самому выполнив эти команды:
    Скачиваем сырцы:
    cd /tmp
    sudo apt-get build-dep netatalk
    sudo apt-get source netatalk
    cd netatalk-2*

    Устанавливаем то, что нужно для сборки:
    sudo apt-get install cracklib2-dev fakeroot libssl-dev
    Собираем:
    sudo DEB_BUILD_OPTIONS=ssl
    sudo export DEB_BUILD_OPTIONS
    sudo dpkg-buildpackage -rfakeroot

    И, если все в порядке, устанавливаем:
    sudo dpkg -i ../netatalk_2*.deb
    Все не так страшно как казалось. Чтобы при обновлении системы правильный пакет не заменился более новым но не правильным ставим блок на пакет netatalk:
    echo "netatalk hold" | sudo dpkg --set-selections
    Всё, теперь перейдем к настройке.

    2. Настройка AppleTalk



    Сперва нужно отключить те сервисы, которые для решения текущей задачи не нужны. Приведем секцию в фаиле /etc/default/netatalk до такого вида:
    ATALKD_RUN=no
    PAPD_RUN=no
    CNID_METAD_RUN=yes
    AFPD_RUN=yes
    TIMELORD_RUN=no
    A2BOOT_RUN=no


    Теперь пришло время главного конфигурационного файла /etc/netatalk/afpd.conf и внизу добавим эту строчку:
    - -transall -uamlist uams_randnum.so,uams_dhx2.so,uams_guest.so -nosavepassword -advertise_ssh

    Теперь перейдем к настройке ресурсов, которые будут рассшарены по afp. Это настраивается в файле /etc/netatalk/AppleVolumes.default
    Строка:
    /home/torrent/downloads "Torrent-Downloads" allow:username,nobody rolist:nobody cnidscheme:cdb options:usedots
    рассшаривает папку /home/torrent/downloads под именем Torrent-Downloads для пользователя username и для гостевого пользователя. Причем Гость может только читать из этой папки.

    Строка:
    /home/username/TimeMachine "TimeMachine" allow:username1,username2 cnidscheme:cdb options:usedots,upriv
    рассшаривает ресурс для TimeMachine.

    После редактирования конфигов, стоит перезапустить netatalk:
    sudo /etc/init.d/netatalk restart

    Установка Avahi


    После проделанных выше шагов можно, с помощью Finder, зайти на рассшаренные ресурсы. Но каждый раз использовать для этого меню не удобно, нужно сделать так, чтобы сервер afp был виден в меню ресурсов Finder.
    Для этого нам и понадобился Avahi. Avahi — демон предоставляющий в сети сервисы на подобии Bonjour.

    Установка avahi проста:
    sudo apt-get install avahi-daemon
    sudo apt-get install libnss-mdns


    В файле /etc/nsswitch.conf в строке начиающийся на hosts нужно добавить в конце mdns, вот так:
    hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns

    4. Настройка Avahi


    Создадим фаил /etc/avahi/services/afpd.service с содержанием:
    <?xml version="1.0" standalone='no'?><!--*-nxml-*-->
    <!DOCTYPE service-group SYSTEM "avahi-service.dtd">
    <service-group>
    <name replace-wildcards="yes">%h</name>
    <service>
    <type>_afpovertcp._tcp</type>
    <port>548</port>
    </service>
    <service>
    <type>_device-info._tcp</type>
    <port>0</port>
    <txt-record>model=Xserve</txt-record>
    </service>
    </service-group>


    И перезапустим avahi:
    sudo /etc/init.d/avahi-daemon restart

    Теперь хранилище должно было появится в левом сайдбаре Finder.

    5. Настройка TimeMachine


    В консоли мака нужно выполнить команду:
    defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

    Вот и все.
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 25
    • 0
      Может не macbook, а powerbook или ibook? macbook не выпускался с HDD меньше 80Gb
      • +3
        первые макбуки конца 2006 начала 2007 выпускались с 60гб винтами
        • 0
          Спасибо, не знал :)
        • 0
          Вообщем-то были MacBook с любыми винтами, так же как и iBook и PowerBook и MacBook Pro

          Таинственный Custom Edition =)
        • 0
          диск на 80, но ноут используется иногда и по работе, поэтому нужна винда, которой отведено 40 гигов.
        • +1
          Спасибо. Полезно, я использовал самбу для этого. При случае попробую этот подход.
          • +2
            С самбы, к сожалению, нельзя восстановить систему, загрузившись с OSX DVD.
            Netatalk архив тоже сразу не подцепить, но его, по крайней мере, можно из консоли подмонтировать mount -t afp. А самбу не подмонтировать, нет поддержки самбы у установочного DVD.
            • 0
              От самбы лучше вообще отказаться, так как там были проблемы (они и остаются) (например неправильная запись backup файлов)
          • 0
            от себя скажу, что defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1 не нужен
            Если все правильно настроенно, то система будет видеть его как нормальное хранилище сразу, и time mashine без проблем сама будет с ним работать.
            • 0
              Вот-вот! Добавлю что под «все правильно настроено» имеется в виду в первую очередь avahi, потому как даже если используется самба, то при настроенном avahi, mac увидит шары и сможет на них бэкапиться.
              • +1
                CIFS он не увидит без хака. (под хаком строка в терминале) (пусть она там будет на Windows или на Linux)

                Free Image Hosting at www.ImageShack.us

                В отличии от правильно настроенного NetaTalk

                Free Image Hosting at www.ImageShack.us

                Проблема с netatalk была одна, она поддерживала старую реализацию протокола afp (которая была в 10.5 и версия вроде была 3.1)
                В текущий версии Netatalk (2.0.5) есть опция

                Changes in 2.0.5
                NEW: afpd: Time Machine support with new volume option «tm».

                Так, что статью есть куда писать дописывать и раскрывать. В довершении всего, можно прикрутить авторизацию через Kerberos.
            • +2
              Не рекомендую использовать этот способ (я пробовал).
              Во-первых вы не сможете в таком случае восстановить систему после сбоя.
              Во-вторых такой способ порой работает глючно и весь бекап может сломаться, у меня такое было (не зря они его отключили по умолчанию).
              • 0
                www.kremalicious.com/2008/06/ubuntu-as-mac-file-server-and-time-machine-volume/ — с описанием возможных проблем и кучей коментариев.
                При создании зашифрованого образа возникают прблемы в Snow Leopard, а имеено: time machine не принимает образ из-за отсутствия файла com.apple.TimeMachine.MachineID.plist, в котором должен быть HostUUID.
                • 0
                  Про time machine на «чужом» afp — тут (заголовок «Non-Apple AFP can be dangerous with time machine...»). Выдержка:

                  The technical reason why Apple limits Time Machine to 10.5+ AFP volumes appears to be to prevent disk image corruption. There were additional features added to AFP in 10.5 to support Time Machine. These presumably allow the disk image engine to force disk image journal data to write out all the way to the disk. Without such features, a network interruption can result in a corrupted filesystem on the disk image despite journaling.

                  Так что присоединяюсь к вышевысказавшимся — не надо этого делать. Ненадежный бекап хуже его отсутствия, imho конечно.
                  • 0
                    С новым Netatalk — это неактуально.
                    проблема сводилось к тому, что 10.6 использует протокол 3.2 с новыми фичами для TM. 10.5 использует 3.1, те если вы поднимите AFP на MacOs 10.5 получите те же грабли.

                    На текущий момент все вроде как поправлено.
                    habrahabr.ru/blogs/ubuntu/79107/?reply_to=2317100#comment_2317223
                    • 0
                      Я не отследил этого момента, спасибо!
                      Теперь, кстати, TM видит тома с соответствующей опцией и без «TMShowUnsupportedNetworkVolumes 1», что внушает некоторое доверие.
                      Осталось только проверить надежность на собственных данных… :-)
                  • 0
                    Как то Вы все на TimeMachine накинулись.
                    Основной акцент топика на настройке afp сервера. А то что с ним можно подружить Timemachine, это только дополнительный плюс, а не основная фишка.
                    • 0
                      У меня лично дома в качестве небольшого такого сервачка используется D-Link NAS DNS-323, с поднятым avahi (ну и трансмишном, но не об этом речь). Пробовал поднимать afpd, но реально не увидел выигрыша по сравнению с smb, посему отключил и оставил только smb. А т.к. стоит avahi, то список шар показывается мгновенно на любой макоси.
                      П.С. В 10.6 проблемы с долгим открыванием списка шар нет — там и без avahi все показывается быстро.
                      • 0
                        Смысл в том, что samba не предназначена для такого backup, и с samba есть ряд сложностей.
                      • 0
                        Оживить что ли.)
                        Народ, 10.6 не видит linux server, т.е как bonjour сервер его нет, если напрямую подключать, то работает прекрасно. Я так понимаю проблема с avahi, но найти причину немогу.
                        • 0
                          Сам себе отвечаю. На 10.6 все работает… это если у вас Mac. А если Хак, то будте уверены, что поддержка bonjour включена на сетевом интерфейсе. У меня, как оказалось, на Realtek r1000 series card была выключена.
                        • 0
                          Как вы вовремя… Сегодня с утра искал ответ на родственный вопрос, думаю эта тема мне хорошо поможет. Спасибо, скоро попробую -)
                          • 0
                            Спасибо, очень полезно.
                            • 0
                              Спасибо! Два вопроса.

                              1) Для поддержки шифрования всё ещё нужно собирать пакет вручную, или уже можно использовать из репов?

                              2) Можно ли считать AFP достаточно безопасным протоколом для работы через открытый инет, или, всё-таки, лучше заворачивать такое в туннель/vpn?

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

                              Самое читаемое