說真的 reportbug-ng 實在遠比 reportbug 的純 CLI 介面好用太多了啊。

特別是這些特色

  • BTS 查詢功能
  • 關鍵字過濾介面
  • 網頁瀏覽介面
  • 整合郵件軟體!

最後一個功能最方便,終於可以使用 Icedove/Thunderbird 方便的撰寫問題回報了,可超方便的使用 Enigmail 與拼字檢查功能了!

備註: reportbug 與 reportbug-ng 都是 Debian GNU/Linux 的軟體瑕疵回報工具。與 Ubuntu Launchpad 的簡易回報方式有相當大的差異,詳情請參閱 Debian bug tracking system

稍早曾經介紹過 Debian 無人值守安裝程式,也就是 pre-seeding

最近看到熱血的 Daniel Bo 做了數個針對不同的桌面環境所設定的幾個預先安裝檔,如果你注意到他的網站名稱叫做 I’Been to Ubuntu,大概就不會意外他為了 Debian 做了這些桌面安裝環境的用意了。這個計畫可以協助你先排除一些需要先調整、設定才能開始使用系統的難題,於是你可以先透過 preseeds 光碟安裝一個馬上可用的系統作入門,但也保有 Debian 原有的特色。

目前支援的桌面環境有 Gnome, KDE, XFCEFVWM 等,你可以從網站上直接下載安裝光碟。對了,Daniel BoGames That Work 網站也相當精彩。

你若使用 ifupdown 於不同的網路環境間切來換去,特別是固定 IP 、PPP/PPPoE 撥接、DHCP 等不同的設定。你可能會被不同服務間使用的 Domain Name Server 設定困擾,尤其是連接某些無線網路的被配到 NAT 內的 DNS,再改回 Static IP 時,/etc/resolv.conf / resolv.conf(5) 沒有被更新,於是還必須手動更改成 NAT 外可用的 DNS 位址。

此時可以利用 resolvconf (8) 來代勞,基本概念是 resolvconf 做了一些基本的設定架構與指令,你可以透過指令或設定檔預先設定想使用的 DNS 位址。若搭配 ifupdwon 使用,只需更改 /etc/network/interfaces 如

# The primary network interface
allow-hotplug eth1
iface eth1 inet dhcp
dns-nameservers 168.95.1.1 168.192.1.1
dns-search google.com debian.org

這是一篇 Tip.

某些原因你可能會想更改你的 MAC Address,像是你的 ISP/宿網只允許你使用註冊的 MAC Address 上網時。

若你使用 Debian GNU/Linux ,可以修改 /etc/network/interfaces 中的設定,在你的網路卡設定中加入如下參數

# The primary network interface
allow-hotplug eth1
iface eth1 inet dhcp
    hwaddress ether 00:05:9b:c5:5b:68

如此 ifupdown 便會在帶起網路時,一併更改地址為上述指定之 00:05:9b:c5:5b:68. 若你純粹想幹壞事,可以安裝 macchanger 來臨時亂數更改 MAC Address,改法如下

# The primary network interface
allow-hotplug eth1
auto eth1
iface eth1 inet dhcp
    pre-up macchanger -A eth1

文件請參考 interface(5). 對了,若你想更改是 madwifi 驅動之無線網路卡介面,請記得在開啟 VAP 前對 master device 進行 MAC Address 更改

這是一篇 Tip.

在一兩年前,Linux 核心尚缺乏一個好的的硬碟預讀機制時,桌面系統的使用者若要加速開機的速度,通常得先解決磁碟存取速度的瓶頸問題。於是得依賴如 readahead 這樣的工具來預先載入想讀入的檔案,以便提高系統載入的速度。

readahead 的基本原理是先預先載入開機過程可能使用的檔案到記憶體中 (page cache)。如此開機程式執行時,便可節省讀入檔案的時間,進而加快開機速度。

當然,前提是你要有足夠的記憶體作快取。若你的系統只有小記憶體,不建議使用 readahead. 目前在 Ubuntu, Debian GNU/Linux 下使用的版本基於 Erich SchubertRobin H. JohnsonScott James Remnant,改自於 Gentoo 的版本。Fedora Project 則有另外一個概念相同,但由 RedHat 所開發的的不同實做

以下所說明的是 Ubuntu, Debian GNU/Linux 版本。

為了使 readahead 可以正確的對開機所需的檔案快取,你必須教會 readahead 目前有多少檔案需要被預先載入,原則上只需要作一次。Ubuntu 在釋出官方版本時,便會內建一組預先較調的檔案列表。但若每次更新核心或套件系統,特別是開機所需的程式,其實都應該做過一次 “profile” 的動作,以便 readahead 保持正確的載入檔案列表。

相較於 Debian 說明 readahead 的說明文件,在 Ubuntu 由於仍使用舊版,使用上則頗為謎樣,Ubuntu 的README.Debian 只提醒你 readahead 不能用在 NFS 上,忘了說明使用方法。在 Ubuntu 上,readahead 會檢查 /proc/cmdline 中是否有 profile 參數,若有則進行 profiling 的程序。若使用 Grub,則操作方式如下

  1. 開機見到 “GRUB loading” 提示時,按下 “Esc” 鍵
  2. 按下 “e” 鍵進行編輯 (若有多核心,先選擇預設開機之核心行)
  3. 按下 “向下” (↓) 鍵到 “kernel” 行
  4. 再選 “e” 鍵進行編輯
  5. 你會進入參數編輯模式,移動到參數最後加入 “profile”,”profile” 字樣前記得填入空白。
  6. 按下 “Enter” 完成編輯
  7. 按下 “b” 鍵開機

第一次開機稍慢,但作過一次 profile 後,之後的開機速度應該會提高些。

在 Debian 下,只需用 root 下達以下指令後,重新開機即可

# touch /etc/readahead/profile-once

但在新版的 Linux 核心,有 On-demand read-ahead 等技術的加持,當下已經不特別需要這樣的工具,有時甚至反而會拖慢開機的時間。

試著在安裝了 Ubuntu EeeASUS EEEPC 701 上測試 (核心為 2.6.24-16-generic),以預設安裝軟體測試開機到桌面環境出現的 uptime,每次都大約 60s。進行 profile 則約使用 80 秒,profiled 過 readahead 開機速度相同。

另外也在我的 Thinkpad X60 1706-B69 上測試,軟體是 Debian sid, 核心為 2.6.26-1-686。系統裝了相當多雜七雜八的軟體,硬體裝了 2G 記憶體,硬碟則是 8M Buffer, 5400RPM 的 FUJITSU MHV2100B。profile 大約使用 152s,profiled readahead 開機則約 55s,關掉 readahead 則約 53s。

其實在 Linux 上做檔案快取 (readahead/prefetch) 的技術頗多,除了稍早講的 readahead, 還有 preload, bootcache/filecacheprefetch. (prelink 是加快 ELF shared libraries/executables 的載入速度,不算是檔案快取)

不過 readahead 只在開機的產生效用,若開機後得依賴 preload 等工具來做檔案快取。但以 user space 的 daemon 每幾秒掃一次系統的效果實在不怎麼好。

比較吸引我注意的是 SoC 2007 中的一個計畫 prefetch

prefetch 算是融合了前幾個計畫的優點與特色的專案,計畫整合了 kernel patch 與 userspace 工具,主要特色是透過核心作監視各軟體啟動所需要取用的檔案,配合 userspace 工具做到自動更新(dynamic profiling)。

對使用者而言,操作起來容易許多,不需要像 readahead 或 bootcache/filecache 作手動「教育」,且使用效率上也會比 preload 來的好。當然,與 readahead 相較起來,實做方式也比較輕盈、聰明。

技術細節可以參考 Krzysztof Lichota 的提案 (Ubuntu Wiki) 與簡報。Prefetch 原始碼可於 Launchpad 下載,相關文件與文獻位於 Google Code. 另外,Behdad Esfahbod 的論文 “Preload — An Adaptive Prefetching Daemon” 也很值得參考。

BTW, Krzysztof Lichota 也是 one-click installer 的開發者。