1 (edytowany przez gimbus109 2016-10-30 00:23:02)

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.