FreeBSD

VMWare 和 386BSD 的奇怪現象

[華語, cmn-Hant-TW] 之前有提到過用VMWare 開 FreeBSD 實體磁碟區會遇到的小問題,現在這個組合又遇到另一個超怪的現象了。 這次的情況是有其他的 Guest OS 要用 FreeBSD 磁碟區前面的實體磁碟區 (有兩個,分別是 fat32 和 ntfs),把 VMWare 的虛擬磁碟對應設好之後,一跑就會吃到這個錯誤訊息: Cannot open disk "S:\Virtual Machines\test\physical.vmdk" or one of the snapshot disks it depends on.Cannot open disk "S:\Virtual Machines\test\physical.vmdk" or one of the…

直接昇級 PC-BSD 1.5

[] PC-BSD 1.5 推出也有一段時間了。這個版本繼續用 FreeBSD 6 系列而沒有更新到 FreeBSD 7,KDE 也還停留在 3.5 系列 (這倒是好事,反正 KDE 4 也還沒進 ports,而且 KDE 4 還不算真正的穩定好用),不過既然有新的版本推出,那當然一定要給他試看看的啦。 和 PC-BSD 1.4 比起來,最大的好處是 1.5 有提供直接讓系統升級的 PBI ,而且可以從 1.3.x 或 1.4 升級。這個 PBI 很大一包,約 869MB 甚至比 CD 片還大,抓下來之後以 root 的權限用 PBI Launcher…

zfs, hostid

[] zfs 的設定的確是很輕鬆愉快,不過想要把硬碟拿到別的機器用的話就會出現一些問題,簡單的說就是會認機器就是了。 在別台機器想要掛上去的話,就會出現警告訊息說這顆硬碟 (其實應該說這個 pool) 之前有被別的系統存取過所以不讓你掛載這個 pool,錯誤訊息類似這個樣子: ZFS: WARNING: pool ‘tank’ could not be loaded as it was last accessed by another system (host: hostid: 0x0). See: http://www.sun.com/msg/ZFS-8000-EY 當然,要強制掛上也不是不行,加參數即可。 zpool import -f tank  以這個例子的話,就是把 tank 這個 pool 強制掛載上去。 當然,新的系統裡面不能存在另一個也叫…

FreeBSD 7-RELEASE

[] 終於推出了。 由於本來就有一台機器在用-CURRENT,基本上該有的功能大概都玩過了,這個版本最大的特色就是 ZFS 和的效能提升吧。在 Release Note 裡面有一段話: Dramatic improvements in performance and SMP scalability shown by various database and other benchmarks, in some cases showing peak performance improvements as high as 350% over FreeBSD 6.X under normal loads and 1500% at…

pf in FreeBSD 7

[華語, cmn-Hant-TW] FreeBSD 的 pf 相當的好用,尤其是在有兩個 gateway 的時候,可以精確的控制進出的 gateway,大致上需要這樣子的設定 (在 /etc/pf.conf) 即可: pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to anypass out on $ext_if1 route-to ($ext_if2 $ext_gw2)…

gvinum, system halt

[] 有一台主機在某次跳電之後,突然每隔兩三天就會一堆程式掛在那邊不會動,也沒辦法登入,只能重開機 (不過很有趣的是對外連線沒問題,NAT的功能不受影響)。一開始懷疑是 ldap 或是 dovecot 的問題,因為沒辦法登入,然後這兩個程式卡了一堆程序而且砍不掉。但是後來發現 samba,apache 也都有類似的現象,而這些應用程式都已經重新編譯到最新的版本,那就應該不是這一堆應用程式的問題了。 試著試著有一次發現某一顆硬碟複製貼上非常之慢,而這顆硬碟是用 gvinum 跑 raid5,就開始想說會不會是 gvinum 出問題,結果一看發現有 raid5 其中一顆硬碟是 stall 的狀態,難怪會慢。然後試著在 degraded 的模式下把東西複製出來,結果發現複製沒多久就卡住了,跟之前那堆程式卡住的情況一樣,看來兇手就是他了。 在花了幾個小時重建完 raid5 之後,速度又回到正常的情況,程式卡住的問題應該也解決了。只是比較好奇的是, degraded 不是應該只會變很慢,為什麼會讓程式卡住啊?

FreeBSD boot0, mbr

[華語, cmn-Hant-TW] 平常很少會需要動到這個部份,反正安裝完就沒事了。但是因為 vmware 6.0 (不確定確切的版本)之後要把實體磁碟機內的作業系統當 guset os 的話,他不會像之前一樣直接用實體磁碟機上的 MBR ,而是會準備一個假的,空的 MBR 來用。這樣做的好處是 guest os 不會誤觸真的 MBR 造成磁碟損毀,壞處就是要另外手動重設在假的 MBR 上設定,不然不能開機,而且如果 host os 的硬碟有變更過的話,為了安全理由 vmware 會要求有用到實體磁碟的部份都要重新設定,當然也包括 MBR 了。 其實我的 vmware 會開實體磁碟的也就那個 FreeBSD Current 而已,所以只要處理好這個即可。首先因為完全不能進作業系統,所以需要一片開機光碟,當然了因為是給 vmware 用,有映像檔就可以了,而且不限版本(至少 5-8 i386/amd64 版本之 FreeBSD 光碟皆可),能開機應該就可以了。…

libgcc_pic

[華語, cmn-Hant-TW] 把一台機器從 FreeBSD 6.2 昇級到 FreeBSD 7.0-BETA,系統是可以跑沒錯,不過在要編譯 kdelibs 的時候跳出了一個錯誤訊息: cannot find -lgcc_piccannot find -lgcc_pic 在網路上找了一下 libgcc_pic 在已經沒在用了,看了一下系統的 /usr/lib 也確實沒錯。在錯誤訊息裡瞄了一下發現是卡在 libtools,直接 portupgrade libtools 後問題就解決了,還好不是什麼太大的問題。

libiconv, big5, big5-2003

[華語, cmn-Hant-TW] FreeBSD ports 裡面的 converter/libiconv 在1.9.2的時代,如果要用 big5 2003 的話,那需要用一些 patch 來把 big5 改成 big5-2003。 現在 ports 裡面的 1.11 已經有 big5-2003,不過是放在extra-encoding 裡就是了,所以可以直接用 big5-2003 來轉換。那如果要讓預設的 big5 就直接是 big5-2003呢? 因為已經有內建,現在要改就不用從外部來,直接動一下裡面的東西就可以了。主要的地方是改 lib/ces_big5.h 這個檔案,把本來用的 big5_mbtowc() 和 big5_wctomb() 改成 big5_2003_mbtowc() 以及 big5_2003_wctomb() 即可。 不過要注意的是因為 big5-2003…

Compiz Fusion in PC-BSD

[華語, cmn-Hant-TW] PC-BSD 有內建 Compiz Fusion,啊就加減玩看看。視窗特效用爛爛的內建顯示卡就可以跑的很順,不過那些特效就真的是玩爽的,實用性比較沒那麼高就是了。有些人會批評 Compiz Fusion 太花俏,不過花俏有什麼問題呢?一堆人拼命把自己的桌面及視窗弄得漂漂亮亮的,也一樣是沒實用性的啊,讓人多一種選擇又沒什麼不好。 那來看一下比較可能有實用性的東西好了。試了一下 Expo 和 Scale,分對應在 Mac OS X 上的 Space 和 Exposé。畫面轉換是很順,不過大概因為是兩個分開的 plugin 吧,操作哲學有點不太一致: Expo 用熱鍵展開後再按一次熱鍵才會縮回來,直接用滑鼠點是沒用的;而Scale 則是一定要用滑鼠點到一個東西之後才會縮回來,再按一次熱鍵是沒有用的… 兩者的使用哲學完全衝突 -_-+ 然後又找不到選項可以設定這些,所以只好先晾在那裡了。(註:Mac OS X 上兩者皆可用熱鍵或滑鼠做選擇,滑鼠當然就點什麼就切到哪個程式,而用熱鍵切回桌面時會看你的滑鼠游標停在哪裡決定切到哪邊) 另外 Scale 還有一個問題:程式展開的時候會有些微旋轉移動的特效,還蠻炫的,不過看久了會眼花… 能調成像 Mac OS X 的 Exposé…