Making debian linux support Time Machine in OS X 10.7 Lion

เมื่อไม่กี่วันที่ผ่านมากทาง Apple ได้ปล่อย OS X 10.7 Lion ออกสู่ App Store ทางเราก็ไม่รอช้าจัดการโหลดมาเล่นซะ

ก่อนทำการติดตั้งก็จัดการ Backup ไว้ก่อนด้วย Time Capsule ที่เราทำขึ้นมาก่อนหน้านี้ ที่นี่

พอติดตั้งเสร็จปุ๊บ เพื่อความปลอดภัยก็ทำการ Backup ซ้ำอีกที ขี้เกียจโหลด Lion มาใหม่ แต่อ้าว ทำไมขึ้นแบบนี้ล่ะ

ไปหาข้อมูลมาก็พบว่า Lion ได้เปลี่ยนไปใช้ AFP 3.3 ซึ่งจะต้องใช้ Netatalk 2.2 ขึ้นไป

แต่ package ในตัว debian squeeze ของเรายังไม่มี จะไปเอา source มา compile ก็ยังเป็น beta

หาไปหามาก็ไปเจอดราม่าเล็กๆของทีมงาน netafp แต่ก็จะไม่ขอกล่าวละกัน เอาเป็นว่าไปเจอ source ของ netatalk 2.2.0-p6 ที่ github

ฉะนั้นแล้วอย่ารอช้ารีบโหลดด่วน เดี๋ยวเผื่อมันจะหายไปภายหลัง

จัดการโหลด source มาจาก https://github.com/jrmithdobbs/netatalk-2-2-0-p6 ตามคำสั่งต่อไปนี้

$git clone https://github.com/jrmithdobbs/netatalk-2-2-0-p6.git

เสร็จแล้วก็เข้าไป configure และ compile

$cd netatalk-2-2-0-p6

$./configure –enable-debian

$make

$sudo make install

*หมายเหตุ ถ้าติดตั้งครั้งที่แล้วเรียบร้อยให้ถอนการติดตั้งก่อนนะครับ ตามนี้

$sudo apt-get remove netatalk

แล้วก็ทำการแก้ไขไฟล์ /usr/local/etc/netatalk/afpd.conf

$sudo vi /usr/local/etc/netatalk/afpd.conf

ใส่คำสั่งนี้ในไฟล์

– -tcp -noddp -nozeroconf -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword -advertise_ssh -udp

*ที่เซ็ท -nozeroconf ก็เพราะว่าใน netatalk 2.2 มันจะทำการประกาศตัวเองอยู่แล้ว ซึ่งเราจะใช้ avahi แบบเดิมแทนเพราะสามารถเนียนเป็น Time Capsule ได้

ต่อมาก็แก้ไขไฟล์ /usr/local/etc/netatalk/AppleVolumes.default

$sudo vi /usr/local/etc/netatalk/AppleVolumes.default

ใส่พารามิเตอร์ตามนี้นะครับ หลังๆรู้สึกว่าถ้าแชร์แบบใช้ user จะเข้ากันได้ดีกว่านะครับ สามารถ restore ตั้งแต่ตอนใส่แผ่นได้เลย(ส่วน Lion ยังไม่รู้)

/home/username/TimeMachine TimeMachine allow:username1,username2 cnidscheme:dbd options:usedots,upriv,tm

เสร็จแล้วก็ restart netatalk

$sudo /etc/init.d/netatalk restart

หลักจากที่ทำเสร็จแล้วเราก็ต้องประกาศในเครื่อง Mac รู้ว่าเรามี Time Capsule แล้วนะ โดยเราจะใช้โปรแกรม avahi ซึ่งเป็นโปรแกรมที่รองรับโปรโตคอล mDNS หรือ Bonjour ของ Apple นั่นเอง

$sudo apt-get install avahi-daemon

เมื่อติดตั้งเสร็จแล้ว ก็ทำการแก้ไขไฟล์ nsswitch.conf

$sudo vi /etc/nsswitch.conf

เพิ่มคำว่า mdns ลงไปในบรรทัดที่เขียนว่า hosts: ตามนี้

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns

จากนั้นก็ไปตั้งค่าใน avahi เพื่อบอก service ที่เรามี

$sudo vi /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 Time Capsule</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>

<service>
<type>_adisk._tcp</type>
<port>9</port>
<txt-record>sys=waMA=xx:xx:xx:xx:xx:xx,adVF=0x100</txt-record>
<txt-record>dk0=adVF=0x83,adVN=TimeMachine</txt-record>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=TimeCapsule</txt-record>
</service>
</service-group>

waMA=xx:xx:xx:xx:xx:xx ให้แทนที่ด้วย mac address ของ server นะครับ

เพียงเท่านี้เราก็มี Time Capsule เนียนๆใช้แล้วครับ แถมยังรองรับ OS X 10.7 Lion ด้วย