FreeBSD

換 zfsroot pool 的名仔

[客家話, hak-Hant-TW] 一般要換 zfs 的 pool 名就直接 export 過來 import 換新名就好了,毋過是講 pool 袛肚有 root 就作不得 export,按仔就要用別隻方法來改。 要用 zfs 開機的時節,系統會參考 /boot/zfs/zpool.cache 來 import 看得到的 zfs pool,是講沒找到 /boot/loader.conf 底肚的 vfs.root.mountform 指定的地方,就會跳出錯誤訊息叫你輸入對的位仔,所以常理來講是沒要挺動較好,正經想要要改可以按仔做: 用別台電腦 (沒就是換一個硬碟開機) 強制 import 這隻 zfs pool 同時改名仔。 拷這下這個系統的 zpool.cache 進去這隻…

FreeBSD zfsboot

[華語, cmn-Hant-TW] 安裝 想要把一台 FreeBSD 8.0 機器硬碟升級,想說乾脆換成 GPT 弄個純 zfs 的環境來用看看。在官網的 wiki 有提到在這裡可以下載安裝光碟,裡面有一個 zfsinstall 的 script 可以幫忙把 FreeBSD 安裝到一顆乾淨的硬碟裡面,直接下載附有包好一份 FreeBSD/amd64 dist 的 special edition 比較方便,不然就得自己包一份餵給 zfsinstall 吃。 安裝過程很快,不過重開機後怪事就發生了,開機居然會卡在開機硬碟掃瞄的畫面?!一開始推測是 GPT 的問題,把硬碟清掉之後果然就不卡了,這實在沒啥道理,後來把硬碟拿去用 Mac 的磁碟工具程式分割成 GUID 分割表 (即 GPT),一試居然也不會卡,那問題是在哪? 再深入交叉測試發現原來只要用 gpart create -s…

nvidia driver for freebsd/amd64

[華語, cmn-Hant-TW] 隨著 FreeBSD 8.0 的推出,nVidia 也如預期的釋出了給 FreeBSD/amd64 跑的驅動程式,在這篇裡面有提到最新的 195.22 有支援64bit,而支援的版本則是 FreeBSD 8.0/7.3 。當然其實是不需要等 7.3 推出,只要跟著 RELENG_7 跑現在的版本應該就能用了,不過到目前為止(2009/12/07)  ports 裡面是沒有的,所以得手動下載後編譯及安裝,最後再跑 nvidig-config 弄一個新的 xorg.conf 即可。 手上沒有啥特別需要跑 OpenGL 的程式,倒是 KDE  SC 4 的介面可以開 OpenGL 加速之後用起來比 xrender 順很多,用一張舊的 7600GT 跑起來沒遇到什麼太大問題,大致來說讓人非常滿意。 UPDATE:  沒多久之後就進 ports…

FreeBSD 7 to 8

[華語, cmn-Hant-TW] FreeBSD 8.0 發表了 用懶人的方式升級(csup -> buildkernel/world -> installkernel/world -> delete-old -> mergemaster) 會在 mergemaster 的時候遇到這樣的問題: install -o root -g wheel -m 644 atrun cron ftpd imap kde login other passwd pop3 rsh sshd su system telnetd xdm /var/tmp/temproot/etc/pam.d…

make installworld 到 zfs partition

[客家話, hak-Hant-TW] 每擺就會毋記得講要用什麼參數、安裝新編好的 world 到 zfs partition 才不會佇到 zfs 做不得 chflag 的問題、這擺就同他記下來,下擺要找較快。 make NO_FSCHG=true installworldmake NO_FSCHG=true installworld 按仔就不會吃到 error 了。 參考連結 – make installworld 出来ない症候群

portupgrade 的效能

[en] 有一台機器當久沒更新放那邊給他走、前幾日想要用 portupgrade 更新那下才發現當慢。那台機器差不多裝了七百零隻套件、當多。查了一下才發現講光是重新建立 pkgdb.db 就花當多時間、就想到會是資料庫選擇的問題。這台機器本成的 pkgdb.db 是用 dbm_hash、顯然毋是用 bdb、重新裝了有開 bdb 的 portupgrade、重新做出來的 pkgdb.db 就變成 bdb_btree 了。速度正經有差、當明顯是講套件多那下、用 bdb 還是較好的方案。

FreeBSD kernel/world cross-compile

[客家話, hak-Hant-TW] 有一台機器本成是 FreeBSD/i386、這下要把他換成 FreeBSD/amd64 同時換一隻硬碟、又毋想找光碟片重新灌一隻系統、這樣就堵到這種問題了。 找了一下資料、看起來毋會太麻煩、編譯那下加一些仔參數就可以了。要編不同平台時要用 TARGET、要指定安裝到哪邊就用 DESTDIR。以我用的例子來講、就是 TARGET=amd64、DESTDIR=/mnt (新的硬碟掛載到 /mnt 下) make TARGET=amd64 DESTDIR=/mnt world make TARGET=amd64 DESTDIR=/mnt kernelmake TARGET=amd64 DESTDIR=/mnt world make TARGET=amd64 DESTDIR=/mnt kernel 過來就是要把 /etc 拷貝到 /mnt/etc 下背、改一下 fstab、照理來講這樣就可以用新的硬碟開機。可以開機之後、再度過來就是重新編譯 ports 安裝的軟體了。

gcin 自動執行的神秘事件

[en]test[cmn-TW]在某台電腦最近的一次大更新之後,kdm 登入畫面的右上角居然自動出現三顆按鈕,登入之後還是掛在那邊而且我還不知道要怎麼關掉?!查了一下原來那個東西是 gcb,不過我根本沒裝 gcb 啊!!後來才知道這個是 gcin 1.4.3 之後整合進去的,所以把 gcin 關掉他就會消失。( gcin-setup 可以針對這個功能做設定 ) 問題來了,這台電腦上主要都是用 oxim 的輸入法,雖然說也有灌 gcin 但是平常根本就沒有執行啊,啊 gcin 怎麼會自動跑起來?當然,把整個 gcin 反安裝就不會跳出來了,不過我也不想反安裝 gcin,畢竟有時候應急或是測試還是會用到,所以就要來試看看到底是什麼東西讓他自動跑起來的。 首先檢查了一下 kdm 的所有 script,還有 .xsession、.xprofile 之類的地方有沒有誤跑 gcin,似乎都沒有看到;接下來試著不要用 kdm,直接用 root 跑 twm 看看。嗯,這樣執行似乎不會自動跑起來,不過如果用 root 直接跑 kde 的話 gcin…

自動清理目錄的設定

[] 自 Mac OS X Leopard 有「下載目錄」功能開始,下載的東西緊放落去就可以了毋使愁講要放到哪邊。毋過東西一多就是麻煩,是講有些東西看過就算了也沒想要留下來,又沒想緊用手動的方式來清這些檔案,就想寫一個簡單的程式給電腦定時去檢查,放超過時間就把他刪掉,按呢就毌使自家動手來清了。本成我就有佇 FreeBSD 做同樣的事情了:有一著分大家共用的暫存目錄,東西放超過兩禮拜就會被系統用 find –delete 自動清掉,逐日半夜會清一次。 不過按呢有一著沒顧到的地方:這著目錄的圖示 (Icon) 還有語系設定檔 (.localized) 是講沒一定時間沒去摸他一下,系統就會覺得這放太久要把他刪掉。 .localized 還好處理,就清理目錄前先摸他一下就好了; Icon 就麻煩了,他不是正經的一著檔案,摸他沒用;喊 find 毋要刪掉名仔是 Icon 是可以啦,不過裡背也還有名仔也是 Icon 的檔案就會共下留下來了,按呢不理想。 後來想到可以用 file flag 來標記沒想刪掉的檔案,本成想要用 uchg,試驗了一下發現可以用,毋過按呢其他的人就改不得有標記過的檔案,會較麻煩一些仔。後來想到 nodump 沒用到 (這下不是用 dump 備份的時代了),啊又堵堵好暫存目錄本成就毋使備份,正經有用到 dump 功能的時節也不使擔心。 用…

zfs 硬碟隨你便

[華語, cmn-Hant-TW] 3.5 吋的多層硬碟抽取盒很方便,但是要確定插下去的硬碟是 ad6 ad8 ad10 的哪顆就很難去記了。所以通常需要標示清楚,然後線也要分清楚後依序接到主機板上,這樣才不會弄亂。 不過如果是拿來給 zfs 用的話,那就不用管那麼多了,反正只要你的硬碟還在他就可以處理,亂插也無妨。當然了,如果是 IDE 的抽取盒的話那就要注意 master/slave 的問題,這是硬體的限制。 附帶一提,在 FreeBSD 7.1 下,用預設值跑原則上是不會出問題的,不過如果一直吃到 kmem too small 的 panic 的話,那就把 vm.kmem_size 拉到 1G,或是把 vfs.zfs.arc_max 弄小一點,這些都可以在 /boot/loader.conf 裡面設定。(sysctl 只能看不能設)