你若使用 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 的開發者。

回答讀者詢問,「可否拿 Debian GNU/kFreeBSD 桌面系統?」

答案是可以的,雖然目前只有約 80% 的套件被移植到 Debian GNU/kFreeBSD 上,但是該有的桌面系統工具應該都可以使用。以下是我執行 ging 跑 KDE 3.4.2 的桌面截圖

GingDebian GNU/kFreeBSDLive CD, 可以讓感興趣的人先行試用系統。光碟可於此網址下載,光碟中使用的軟體都符合 DFSG,由於最近沒有更新,因此核心尚為 Freebsd 5.4, KDE 也是舊版。

若想安裝新版 Debian GNU/kFreeBSD,根據 Aurelien Jarno公告,新版使用 Freebsd 6.3 的安裝光碟,可於 debian-ports.org 下載。

Wouter VerhelstDebconf8 發表的 Debian Secrets 中,分享了許多關於 Debian 套件維護、管理、使用的有趣小程式與技巧。

像是 Miriam Ruiz 利用 debtags 為資料庫基礎的 goplay,讓你輕易的選擇安裝各種不同類型的遊戲。

goplay 中除了提供遊戲相關的查詢介面,其實還有 goweb, gosafe, gooffice, gonet, goadmin 與 golearn。可都執行一番,或許總會找到有趣的軟體喔。

若你曾維護套件,或想開發一些套件安裝相關的軟體、或純粹只想更深入了解 Debian 的相關指令細節,不妨參考一下 Wouter 的簡報吧,或可挖到一些還不知道的技巧。簡報可於 Wouter 的網站下載