星期一, 11月 30, 2009

踩到grub 地雷

前幾天在更新debian (sid) 的時候有看到grub 的更新,每次看到這個就心有餘悸,好像更新grub 都沒什麼好事會發生,但我還是把 /boot remount 為 rw 給他更新下去了。
昨天重開機才發現這果然是bad idea,grub 整個壞掉,出現的訊息是:

Error: the symbol 'grub_gettext' not found
好險我都還有留安裝用的 usb flash,啟動 rescue mode 以後到他要你選擇 root partition 時,切到tty2 (Alt+F2),把系統mount 起來並chroot 進去:
mkdir /tmp/mnt
mount /dev/sda2 /tmp/mnt
mount --bind /dev /tmp/mnt
chroot /tmp/mnt
接下來就相當於用原本的系統開機了。重新安裝 grub :
/usr/sbin/grub-install /dev/sda
 這樣grub 應該就裝好了。 但是我 reboot 後發現還是不行,他會說 "you need to load kernel first" 也就是沒有找到 kernel image 的意思。問題在於我的 /boot 是分開一個 ext3 的 partition,所以 grub 自動安裝的時候,root 會選錯。這裡只要把 /boot/grub/grub.cfg 裡面的
/boot/initrd.img-2.6.xxxx

/boot/vmlinuz-2.6.xxxx

改為
/initrd.img-2.6.xxx
/vmlinuz-2.6.xx
就可以用正確的路徑 boot 了, hooray!

星期六, 11月 28, 2009

userChrome.css of firefox

我相信喜歡用 Firefox 的人大都是因為 fx 的擴充性很高,雖然說速度來說(在我的電腦) google chrome (or chromium) 的確跑的比較快,但是fx 帶來的彈性遠高於 chrome (至少目前是,不過 chrome 也才剛開始幾年,以後難說)。

目前 firefox 是建立在 xulrunner 上的,而 xulrunner 把 fx 的介面用類似網頁的方法 render 出來,也就是說,我們可以把 fx 本身看成一個可以瀏覽網頁的網頁?! (甚至用 DOM inspector 也可以看到 UI 的 properties),也因為類似這種機制,用來做網頁排版的 css  也可以套用在 fx 的 UI 上面,這也是 fx theme 的作法(一堆css)。

fx 提供了 userChrome.css 讓每個 user 可以自己設定一些簡單的 UI 排版,比如說我我前一陣子想在 tab 上加上編號,這樣比較方便看自己要跳到哪個 tab,這個功能用 userChrome.css 就可以達到:
http://gist.github.com/244455
把這個加入到你的 userChrome.css 裡面就可以了 ( ~/.mozilla/firefox/xxxx.default/userChrome.css )
這個方法本來是在 Box of Chocolates 找到的可是現在找無了,好險當初有留下來。


這只是一個小範例,今天在找相關資料時還找到這個把 fx 外觀改成像chrome 一樣的:
https://addons.mozilla.org/en-US/firefox/addon/10091

這讓我聯想到遊戲公司 Blizzard Entertainment 當年成功的 Starcraft 跟現在還是很紅的 Warcraft3,開放一些空間讓玩家自己產生地圖、設計遊戲內容,甚至可以加入自制的3D model,讓遊戲有無限的發展空間。我想這也是為什麼我喜歡 fx, 而且也是為什麼我喜歡 Linux。