Temat: Time Machine na LEDE
Budowa Time Machine na LEDE trochę się różni od opisywanych w sieci (w LEDE jest netatalk v3), opiszę instalację i konfigurację.
Time Capsule udaje terminal HP Thin Client HP t5740 (2GB RAM, flash disk 2GB, dysk SATA 1TB).
Opis instalacji dysku 2,5" wewnątrz obudowy terminala można znaleźć np. >>tu<< lub >> tu <<. Dodam tylko, że na śrubki mocujące dysk trzeba nałożyć podkładki o gr. ok. 1mm - wtedy jedyną modyfikacją obudowy jest usunięcie jednego pinu vesa, wszystko idealnie mieści się w obudowie.
Zainstalowałem własną kompilację LEDE z obsługą RAM-u > 1GB, sterownikami karty sieciowej tg3 i kilkoma innymi drobnymi modyfikacjami.
Dysk przeznaczony na Time Machine może być sformatowany w ext4, nie trzeba przeznaczać na TM całego dysku ani partycji, można wybrany katalog na dysku. Ja mam na dysku 1 partycję etx4, montowaną w /home i na TM przeznaczyłem katalog /home/TimeMachine
Procedura:
1. Instalacja avahi i netatalk:
opkg update && opkg install avahi-daemon netatalk
2. Opcjonalnie - instalacja shadow-utils (nowego użytkownika można dodać ręcznie)
opkg install shadow-groupadd shadow-groupdel shadow-groupmod shadow-useradd shadow-userdel shadow-usermod
3. Dodanie nowego użytkownika i grupy, ustawienie hasła użytkownika:
groupadd timemachine
useradd username -N -g users -G timemachine
passwd username
gdze username to nazwa użytkownika TM.
4. Utworzenie katalogu na TM i zmiana uprawnień
mkdir /home/TimeMachine
chgrp timemachine /home/TimeMachine && chmod 770 /home/TimeMachine
5. Konfiguracja netatalk: vi /etc/afp.conf:
Uzupełniamy sekcję [Global] i definicję udziałów afp:
;
; Netatalk 3.x configuration file
;
[Global]
; Global server settings
uam path = /usr/lib/uams
;uam list = uams_guest.so uams_dhx.so uams_dhx2.so
uam list = uams_dhx.so uams_dhx2.so
advertise ssh = yes
log file = /home/afpd.log
; [Homes]
; basedir regex = /xxxx
; [My AFP Volume]
; path = /path/to/volume
; [My Time Machine Volume]
; path = /path/to/backup
; time machine = yes
[Time Machine]
path = /home/TimeMachine
time machine = yes
W sekcji [Global] dołożyłem logowanie do pliku - jeśli tej linii nie ma, afpd zapisuje do loga systemowego, z którego trudniej wyodrębnić informację o zdarzeniach związanych z afpd. Wolumin dla TM ma ustawioną flagę time machine, można zdefiniować więcej woluminów z różnymi uprawnieniami (pełna dokumentacja netatalk v3 dostępna jest na stronie projektu: sourceforge
6. Zmiana uprawnień pliku /etc/afpd.conf - bardzo istotna. Domyślnie jest:
ls -l /etc/afp.conf
-rw------- 1 root root 558 Oct 29 22:07 /etc/afp.conf
Demon afpd pracuje z uprawnieniami root-a, ale podczas próby połączenia użytkownika uruchamiany jest kolejny proces z uprawnieniami tego użytkownika, nie ma on dostępu do pliku afp.conf i po kilkudziesięciosekundowym mieleniu na Mac-u wyskakuje komunikat o błędzie, pomimo poprawnie podanej nazwy użytkownika i hasła.
Zmieniamy to:
chgrp timemachine /etc/afp.conf && chmod 640 /etc/afp.conf
Pozostaje restart demona afpd: /etc/init.d/afpd restart
Po restarcie w katalogu /tmp/netatalk tworzą się pliki afp_signature.conf:
# DON'T TOUCH NOR COPY THOUGHTLESSLY!
# This file is auto-generated by afpd.
#
# ServerSignature is unique identifier used to prevent logging on to
# the same server twice.
#
# If setting "signature = xxxxx" in afp.conf, this file is not used.
"PicoNAS" A0FC3E0F553E364F1F01D0DF71B24EF1
PicoNAS to nazwa hosta (z pliku /etc/config/system), można ją ew. zmienić w pliku konfiguracyjnym avahi, dalej sygnatura serwera.
Oraz plik afp_voluuid.conf:
# DON'T TOUCH NOR COPY THOUGHTLESSLY!
# This file is auto-generated by afpd
# and stores UUIDs for Time Machine volumes.
"Time Machine" 1874F34D-1D7C-4EE6-EBE9-977B72461ED2
zawierający informację o zdefiniowanych w /etc/afp.conf voluminach. Jeżeli pliki się utworzą i zawierają wymagane informacje, demon afpd działa i oczekuje na połączenie.
Sprawdzamy, czy możemy połaczyć się z Mac-a: w finderze command-k, adres serwera to afp://ip_serwera (potem można to wpisac do dns-a). Po chwili powinien pojawić się monit o podanie użytkownika i hasła. Po podaniu poprawnych informacji powinna pojawić się lista udziałów serwera - zdefiniowanych w pliku /etc/afp.conf.
Jeżeli tak jest, ozacza to, że afpd działa poprawnie. Aby wolumen zdefiniowany jako time machine = yes można było używać jako dysk archiwizacyjny Mac-a, trzeba jeszcze odblokować dostęp do nie-applowych wolumenów backupu - w terminalu maca wpisujemy:
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
Teraz można uruchomić Time Machine na Macu, wybrać dysk - powinny pojawić się udziały, zdefiniowane jako time machine = yes.
Nie potrzeba nic modyfikować w plikach konfiguracyjnych demona avahi. Ale w finderze na Mac-u serwer nie ma poprawnej ikony - wyświetla się ikona ze znakiem "?". Aby to zmienić, trzeba utworzyć plik /etc/avahi/services/afpd.service:
(w pierszej linii pliku xml brakuje 2 znaków "?", blokowały wysłanie postu)
<xml version="1.0" standalone="no">
<!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>
Istotna jest linia model=, dostępne warianty to:
MacBook Laptop MacBook4,1,Black MacBookPro MacBookAir MacPro iMac Macmini AppleTV iPhone iPodTouch iPad Xserve RackMac TimeCapsule PowerBook PowerMac AppleTV1 AppleTV2 AirPort. Demon avahi sam wykrywa, że konfiguracja uległa zmianie i przeładowuje ją.
Poprzednie wersje netatalk wymagały, aby w tym pliku były też zdefiniowane udziały afp, musiała być zgodność nazewnictwa woluminów w plikach konfiguracyjnych afpd i avahi. Wersja 3 netatalk znacznie to upraszcza.