samba + bonjour

[華語, cmn-Hant-TW]

之前這篇有提到開 AFP 分享以及用 Model Name 偽裝成某種型號的 Mac 的方法,其實用同樣的機制也可以把 SMB 的伺服器包的漂漂亮亮的,而且多這層之後用戶端的 Finder 找分享的速度也會比較快,不管從美觀或實用的角度來看都是值得打開。和那篇一樣有 avahi 或 howl 兩種選擇,設定上也和那篇類似,只是把 AFP 的設定換 SMB 而已。 (SMB 伺服器當然要另外安裝,這邊假設 SMB 本來就通的,沒有的話去 ports 找 net/samba3x 挑一個來裝,samba 設定就不詳述了)

/usr/local/etc/avahi/services/smb.services (avahi)
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
 
<name replace-wildcards="yes">%h</name>
 
<service>
<type>_smb._tcp</type>
<port>445</port>
</service>
 
<service>
<type>_device-info._tcp</type><port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
 
</service-group>

smb.services 檔名一樣是可以自訂的,除了 type 要改成 _smb._tcp 外其他和 afp 的設定都相同,細節請參考 AFP 那篇

/usr/local/etc/mDNSResponder.conf (howl)
"ServerName" _device-info._tcp local. 1 "TXTVersion=1.0" "model=Xserve"
"ServerName"  _smb._tcp            local.      445

用 howl 的話那所有 service 的設定都會在這個檔案裡面,如果 AFP 已經開了的話就直接加上一行 SMB 的設定即可。

值得注意的是雖然平常 SMB 服務是用 139 這個埠,但是 Mac OS X 10.7 Lion 不吃這個埠的 SMB 分享,所以用 445 比較保險。

Posted in FreeBSD. Tags: , , . No Comments »

關掉 samba 印表機分享

[客家話, hak-Hant-TW]

samba 裝好就會有分享印表機的功能 – 毋管機器頂真經有印表機也是沒。 是講沒差就是,不過 windows 的 client 端看到空的印表機當毋爽快,就看了一下有變不見的方法沒。

有找到,這篇有講是沒想要看到,加這幾行到 smb.conf 就可以了。

 load printers = no
 printing = bsd
 printcap name = /dev/null
 disable spoolss = yes

喔,改完要重開才有效啦。

Posted in FreeBSD. Tags: . No Comments »

Time Machine 備份掛點

[華語, cmn-Hant-TW]

Time Machine 跑一跑突然跳出來說無法備份,查了一下 /var/log/system.log 發現長這樣 (重點部位打馬賽克)

May 24 14:04:52 Panther com.apple.backupd[25334]: Starting standard backup
May 24 14:04:52 Panther com.apple.backupd[25334]: Attempting to mount network destination using URL: smb://whsyu@10.9.1.120/backup_panther
May 24 14:04:56 Panther com.apple.backupd[25334]: Mounted network destination using URL: smb://whsyu@10.9.1.120/backup_panther
May 24 14:04:56 Panther com.apple.backupd[25334]: Backup verification failed for image /Volumes/backup_panther-1/Panther_${MAC_ADDR}.sparsebundle!
May 24 14:04:56 Panther com.apple.backupd[25334]: Error 513 changing immutability for /Volumes/backup_panther-1/Panther_${MAC_ADDR}_2010-05-24-140456.sparsebundle
May 24 14:04:56 Panther com.apple.backupd[25334]: Unable to make /Volumes/backup_panther-1/Panther_${MAC_ADDR}_2010-05-24-140456.sparsebundle immutable!
May 24 14:04:56 Panther com.apple.backupd[25334]: Creating disk image /Volumes/backup_panther-1/Panther.sparsebundle
May 24 14:04:58 Panther com.apple.backupd[25334]: Error -5000 creating backup disk image
May 24 14:04:58 Panther com.apple.backupd[25334]: Failed to create disk image /Volumes/backup_panther-1/Panther.sparsebundle, status: -5000
May 24 14:05:03 Panther com.apple.backupd[25334]: Backup failed with error: 20
May 24 14:05:03 Panther com.apple.backupd[25334]: Ejected Time Machine network volume.

這個映像檔是放在遠端透過 smb 連線,所以 backupd 會自動嘗試掛載,然後似乎是因為映像檔檢查失敗所他嘗試要做一些處理來修復,結果修不好就噴錯誤訊息了。而且不只是噴錯誤訊息,連映像檔的檔名都被改了,看起來像是附加時間標記,應該是做到一半爛掉吧。

備份是放在一台 FreeBSD 的某個 zfs 磁碟上,因為有做每日的 snapshot,所以試著從之前幾天的備份撈看看,錯誤依然存在;先人工 fsck 再讓 Time Machine 讀,結果還是一樣,最後就決定直接去碰映像檔裡面看看有沒有什麼地方可以動的。

雖然說 .sparsebundle 在 Finder 下看到是一個映像檔,不過其實底層就跟 .app 一樣只是一個目錄,也因此要看內容很方便,只要切到目錄內即可。 經過了一些嘗試發現裡面有一個檔案叫 com.apple.TimeMachine.MachineID.plist 裡面有記錄一些前次備份的資訊,包括驗證結果等等 (從檔案內的 xml 標記來猜測)。 對照錯誤訊息的紀錄可看出 backupd 幾乎是瞬間判定驗證失敗,那就很有可能是直接參考這個檔案後立刻做出反應。 把這個檔砍掉之後開 Time Machine 再叫他備份一次,果然這次 backupd 就乖乖的重新跑 fcsk_ufs 來驗證,驗證完之後又可以正常備份了。

在測試的過程中 zfs 的 snapshot 幫了不少忙,因為在試這個檔案之前有先惡搞映像檔內的其他檔案過,結果當然是失敗了,不過一失敗後就立刻用 zfs rollback 把實驗前剛打的 snapshot 還原回來重測別的檔案,這個回溯幾乎是瞬間完成,省了不少時間跟指令。

Posted in Mac. Tags: , . 2 Comments »

Time Machine over Samba share

[華語, cmn-Hant-TW]

嘗試用遠端 samba 分享的目錄跑 Time Machine 的時候吃到沒辦法建立備份映像檔的錯誤,用 Console.app 看了一下錯誤訊息長這樣:

/System/Library/CoreServices/backupd[40100]: Error 45 creating backup disk image

直接連到那個目錄下發現了映像檔做到一半的痕跡,所以似乎是跑一半不知道什麼原因失敗,而不是完全連不到,那問題就比較好解決 – 用 hdiutil 手動來建立即可。檔案名稱的格式是”電腦名稱_macaddress.sparsebundle“。其實就直接參考 Time Machine 做爛掉的那個檔案名稱就好了,這樣比較省事。接著就開 Terminal 切換到那個目錄下執行這個指令:

hdiutil create -size 100G -fs HFS+J -type SPARSEBUNDLE Pighead_00112233445566.sparsebundle

這樣就替 MAC Address 00:11:22:33:44:55:66、名字叫 Pighead 的機器建好一個 100G 的備份映像檔了。要注意的是 sparsebundle 實際上是一個目錄,所以用 Terminal 看的話其實會看到 hdiutil 產生了一個目錄,這是正常現象,用 Finder 看他就會像是一個映像檔了。

設好之後再把 Time Machine 打開他就會直接用這個建好的映像檔備份。附帶一提,用這種方式建立的映像檔掛載後在 Finder 顯示的名稱會是 untitled,看不爽的話用一般的方式改名稱即可不會影響他備份的功能。

Posted in Mac. Tags: , , . 1 Comment »

Time Machine, SMB mount

[華語, cmn-Hant-TW]

看到了 Apple 新發表了 時空小藥丸 Time Capsule ,就想說也來備份一下吧。結果發現原來 Apple 有設限制, 不給人用網路芳鄰(SMB)當備份磁碟,大概是怕用 windows 分享出來的磁碟會有些不相容的問題,所以就擋掉了吧。

 啊還是得想辦法走網路用 samba 啊,不然備份筆記型電腦還要一直拿外接硬碟實在太累人了。在網路上找了找發現這個討論串有講到解鎖的方法,其實也蠻簡單的,下個指令就可以了。

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

然後重開系統偏好設定,果然就看到 SMB 磁碟,這樣就可以把備份丟到伺服器上去了。

Posted in Mac. Tags: , , . 3 Comments »