LiveCD

LiveCD

很多 Linux發行版本已經被設計為所謂的“LiveCD”,即可以直接引導為可用 Linux 系統的 CD。與大多數廣為應用的 發行版本中可以使用的“拯救模式(rescue mode)”引導選項相反,這些 LiveCD 的設計是,當從 CD 引導起來后,提供一整套 可以使用的工具,其中有一些是通用的,有一些是高度專用的。David Mertz 介紹了 Linux 市場中這一迅速成長的分支。

歷史


Linux 的 LiveCD 發行版本已經有若干年的歷史,但是近一兩年這種發行版本的數量已經增加了好幾倍。如今的大部分專用 LiveCD 都起源於 LinuxTag 的 Knoppix 發行版本,那是個非常成功的發行版本。新奇的 LiveCD 發行版本 —— 一般來講很像新的 Linux 發行版本 —— 為不同的用戶群包裝了不同的軟體集,而且,為了體現它們的創建者的 思想,它們也包裝了微調配置和設置細節。
當前,就算是沒有幾百種,也有幾十種可用的 LiveCD 發行版本;顯然,我不能在本文中涉及所有這些發行版本。最受關注的 LiveCD 可能是特意用來向新用戶展示 Linux 的通用辦公軟體包。不過,此外還有其他的更為 專用的發行版本,比如用作系統群集、急救 CD、防火牆或安全工具。在很多情況下,更為專用的發行版本也會更小,因為它們捨棄了大部分通用的工具。

發行版本


從 CD 引導 Linux
在本文中,我介紹了四個常見的通用發行版本:Knoppix、Slax、Mepis 和 GoboLinux。不過,儘管大部分情況下最後一個發行版本是用於 辦公/網路/遊戲 的通用的發行版本,但 是,它的創建在很大程度上是為了論證關於文件系統設計的一些新穎想法。我還介紹了三個更為 專用的 LiveCD:Feather Linux 是通用的,但是非常小;EVMix 基於 StrongBox,引入了 EVM2003/Open Voting Consortium 項目的大部分專用軟體,我正在參與那個項目;IPCop 是另一個小 型的 LiveCD,致力於創建基於 Linux 的防火牆。
對於這些發行版本中,其中大部分我將在它們各自的章節中對其進行描述。不過,在這裡我將對 IPCop 進行 簡短的評論。我興奮地使用這個只有 22 MB 的小巧 ISO 來體驗一個小型的、專用的 Linux LiveCD。不幸的是,在嘗試引導 IPCop 時,我有些失望了;不是發行版本本身的問題,而是我的期望問題。IPCop 僅僅 名義上是一個 LiveCD 發行版本 —— 雖然它 確實 引導進入一個 Linux 系統,但是在那裡您可以真正做的唯一的 事情就是將系統安裝到硬碟上。就此而言,IPCop 類似於任何其他可安裝的 Linux 發行版本 —— 那些發行版本 大部分也可以讓您選擇一個最小化的 shell 來完成管理功能。IPCop 中的屏幕截圖功能令人關注,但是,當發現需要使用 我的硬碟驅動器以後,我覺得更深入的測試超出了本次評論的範圍。我的預感是,有很多其他大肆宣傳的“LiveCD”也是像 這樣徒有其名。
順便說一句,在本次評論中,我所尋找的是明顯的或者容易去做的內容 —— 的確,除了我努力去完成的內容以外,其他的事情也是可能的。我特別評論的話題包括,一個發行版本是否可以將兩次引導間的配置方便地保存下來,或者 是否可以將其自身安裝到硬碟驅動器上。我相信,只要付出足夠多的體力勞動,我就可以在所有發行版本中完成那些 事情,不過,我尋找的是執行那些動作的重要菜單項(menu item)或指令。
Knoppix 3.4
Knoppix 是最有名的 LiveCD 發行版本,所以,作為一個基礎,首先對它進行研究。Knoppix 3.4 (2004-05-17)將儘可能多的內容壓縮到一張 CD 上,最終得到一個 690 MB 大小的 ISO 映像(一定要買 700 MB 的 CD-R,而不要買 650 MB 的)。從它的大小就可以看出來,Knoppix 捆綁了大量 的工具,既有面向開發人員的,也有面向辦公用途的。我所研究的工具都是當前流行的,但並不是尖端的(bleeding edge):Linux內核2.4.26;KDE 3.2.2;OpenOffice org1.1.1;Gimp 2.0;Python 2.3.4c1。 Knoppix 傾向於附加功能重複的程序,這些可能會給新用戶帶來迷惑:有十個文本編輯器,我應該使用哪個?我應該使用 Mozilla 還是 Konqueror 進行瀏覽?另一方面,那些都是經驗豐富的用戶所非常樂於使用的; Knoppix 堅持使用 OpenOffice org 作為它的辦公套件,而捨棄了一些發行版本中所採用的 KOffice。
可以直接引導 Knoppix,不需要用戶做任何事件就可以得到一個可以使用的 KDE桌面。我的所有硬體(幾年前的 舊機器上的)都恰當地識別了出來,包括我的 1280x1024 的平板顯示器以及與我的 nVidia TNT2 顯卡相匹配的 模式。默認的用戶是 knoppix,但是我發現不需要密碼就可以執行 su —— 可能是 安全與用戶友好性的折衷吧。只需要執行 passwd 就可以解決這一問題,因為系統 中永遠不應該存在沒有密碼的帳號。
我試驗的所有通用發行版本所使用的窗口管理器都是 KDE(實際上,版本都是 3.2.2)。配置細節上有一些 不同,比如哪些圖標安放在面板上,選擇是哪種主題,使用的是哪種點擊模式(單擊/雙擊)。我並不喜歡 Knoppix 的選擇:單擊、Keramik 主題;但是這純粹是一個個人問題,很容易改變。Knoppix 也附加了一些其他 的窗口管理器,不過它們之間的切換好像會破壞 X11 配置。
至於更多功能上的問題,Knoppix 引入了一個優秀的而且令人矚目的“Save Knoppix Configuration”工具。您可以 按意願將設置部分保存到軟盤或者硬碟分區上:如主目錄文件、網路設置、X11 配置、印表機等等。Knoppix 還 將我的所有硬碟分區自動掛載到桌面上,包括測試用的 OS/2 桌面上的 HPFS 分區。有一些可以在運行的系統上“Install Software”的選項,但是除了這個有限的列表以外,如果我嘗試添加其他應用程序,apt-get 就會指出安裝目錄只讀的錯誤(對我來說沒有顯而易見的可以解決這一問題的其他方法)。與一些發行版本相反,Knoppix 沒有 提供將其自身安裝到硬碟驅動器上的重要選項。
Mepis 2004
Mepis 是一個類似於 Knoppix 的發行版本,但是它具備雙重用途,既可以作為一個可安裝的發行版本,也可以作為一個 LiveCD。與 Knoppix 類似,Mepis 也是一張幾乎全滿了的 CD,而且,實際上它還附帶 了額外第二張的 CD(不是直接可用的)。Mpeis 上的工具集與 Knoppix 上的那些大部分是相同的。 LiveCD 為開發人員考慮的較少,而為辦公用戶考慮得更多。例如,LiveCD 上同時包括了 OpenOffice org 和 KOffice;但是包括的程序員所用的編輯器和開發用的 IDE 很少。
與 Knoppix 相反,Mepis 引入了一個將其自身安裝到硬碟驅動器的非常好的應用程序,但是卻缺少保存 LiveCD 配置的工具以及 LiveCD 環境運行時動態安裝額外軟體的工具。誠然,Mepis 的目標是讓您在安裝 之前可以進行試驗,而不是創建一個根本不需要任何持久安裝的輕便的運行期環境。不過,不經修改的 Mepis LiveCD 環境就已經是很好用的了,您可以方便地將修改過的文檔或文件保存到其他媒介。Mepis 不會 自動掛載它發現的所有硬碟驅動器分區,但是在它的桌面上有用來掛載分區的圖標(不需要用戶了解 mount 命令的參數)。和 Knoppix 一樣,Mepis 可以恰當地掛載我的 HPFS 分區(只讀)和 ext2/3 分區(讀/寫)。
Mepis 的引導順序與 Knoppix 稍有不同。更好的方面體現在,Mepis 為您提供了一個可導航的本文菜單來選擇 內核的版本(我試驗的是 2.6,但是 2.4 也是可以使用的)。選擇屏幕分辯率和一些其他配置選項的能力(也是 要求)難言其利弊。全部以友好的可滾動菜單的形式給出,但是 Knoppix 根本不需要詢問這些。另一方面,其餘發 行版本大部分都假定我希望以 1024x768 的分辯率來運行 X11,而不是 1280x768 —— 我寧願自己來選擇,而不願 讓 CD 弄錯它。Mepis 中的一個小問題是,它設置的 root 和 demo 帳號的密碼在引導過程中並沒有顯示 出來,也沒有記錄在頂層的 README 文件中。我只嘗試了幾次就猜出了 root 密碼是“root”,但這畢竟是 猜測出來的。
SLAX 4.1.2
SLAX 是一個基於 Slackware 的 LiveCD,它的大小相對較小,可能是與 Slackware 的原則一致。 SLAX 4.1.2 是一個 188 MB 的 ISO,這個 ISO 顯然是足夠小的,可以寫入到一張 8 厘米直徑的 小型光碟中(有意如此)。SLAX 很好地選擇了一組面向公辦和家庭用戶的軟體,這很大程度上是通過 消除更大的發行版本中的冗餘而實現的。例如,SLAX 為您提供了 KOffice,而不提供 OpenOffice org,為您提供了 Konqueror,而沒有提供 Mozilla。它也沒有提供 Python、Perl 或者 Ruby —— 它的目標用戶 顯然不是開發人員。
引導 SLAX 是非常簡單的。和 Knoppix 一樣,它沒有使用引導選項而是使用了開關,在它開始默認的 引導之前幾秒鐘,您可以在 boot: 提示符中輸入這些開關。它使用的是 2.4 內核。完成基本的 Slackware 引導序列后,SLAX 顯示出 root 密碼(“toor”)並說明您可以在 命令行中啟動的程序:(使用 gui 啟動 KDE;使用 guifast 啟動 Fluxbox;midnight commander;使用回退幀緩存的 X11;將配置的 設置保存到軟盤或從軟盤恢復)。
輸入 gui 后,我發現了第一個小問題。我只有一個 1024x768 的屏幕。怎麼辦?我知道去修改 /etc/X11/XF86Config 來設置新的分辯率,但是新用戶可能不會想到這一點。我還 發現 gui 將可以接受一個 --help 開關來指引我 使用 X11 解析度開關。這些對於不熟悉 Linux 的人來說都不是顯而易見的。不過算了,這 是 Slackware。
進入了 X11 和 KDE 之後,我著實為其配置選項所吸引。我也喜歡 SLAX 選擇的 Plastik 主題(儘管與 WinXP 有些 類似)和桌面上雙擊方式的行為,而且在 Konqueror 中我感覺更為自然。我還發現了面板上的自定義圖標,值得 我們以稍微輕鬆的態度去看待 —— 尊重一個事實,它們大部分用於多媒體、IM、遊戲和 Web 瀏覽(那個設置可能 是來自其他某個地方,但是我仍然喜歡這個選擇)。我的硬碟驅動器分區都自己掛載上來(包括 HPFS 分區),但是 並沒有被胡亂地堆放在桌面上。我還發現,Control Center 使用了一種我有些不太習慣的導航方式;這可能不是 SLAX 獨有的改變,只是我以前沒有見過的一種方式。每一個類別都有一個移動到上一級的“Back”圖標,而不是使用配置類別 的一個可摺疊樹。這看起來對新用戶來說更為友好。
SLAX 的目標顯然是定位於新用戶,並向不了解 Linux 的人們來“推銷”Linux。它的外觀對此可以起到推動作用;但是,不能安裝到硬碟,也不能向運行期的映像安裝更多應用程序,同樣會造成障礙。它正是一個大小適度的 ISO,您可 以到處發放或者快速地刻錄到 CD 上,給用戶一個關於 Linux 的良好的初步印象(有試驗中有足夠的工具可以進行 一些真正的工作和娛樂)。
GoboLinux 011
對新用戶來說,它與 Mepis 或 Knoppix 非常相像。包含了一整張 CD 的軟體,也是基於 2.4.26內核和 KDE 3.2.2。應用程序大部分都是您所期待的那些,或許沒有太注意種類的覆蓋和重複。甚至比 SLAX 還 要糟糕,我所能找到的獲得正確的 X11 分辯率的唯一方法是手工編輯 /etc/X11/XF86Config。
GoboLinux 在一些小的方面比較差:不會自動掛載分區,顯然不支持 HPFS(從命令行可以掛載 ext3);不能“保存設置”;不能動態安裝;而且,最要命的是,GoboLinux 不能識別出我的網路。
GoboLinux 的“賣點”實際上並不在於它是一個特別好的 LiveCD(雖然它可能會不斷得到完善),而是 GoboLinux 的關於 Linux 文件層次的新穎思想。GoboLinux 遵循了與 Mac OSXFreeBSD 根上使用 分層模式類似的模式,創建了根目錄 /Depot、/Files、/Mount、/Programs、/System 和 /Users。有 必要時,GoboLinux 使用符號鏈接將文件放置於其他工具希望它們存在的層次中位置。不過,在其固有 的文件結構中 —— 同樣,非常類似 Mac OSX —— 每個應用程序佔用它們自己的目錄,而不是集中在 /usr/bin 或 /usr/local/bin 目錄中。
例如,FireFox瀏覽器可執行文件位於 /Programs/FireFox/Current/bin/firefox 目錄中。刪除或安裝應用程序(不是必須與可執行文件一一對應)只需要解包或刪除文件系統樹中的分支。自然,將 LiveCD 引導安裝到硬碟 驅動器是非常簡單的,而且 GoboLinux 為您提供了這樣一個選項。
GoboLinux 提出的概念是不錯的,但是發行版本本身需要進一步完善。

應用程序


Feather Linux 0.51
Feather Linux 比 SLAX 更有過之。Feather 的大小不到 64 MB,包裝了一個基本的 Linux 系統,以及 一個最小化的 Web瀏覽器(Dillo)、字處理器(Ted)、窗口管理器(Fluxbox)和一些其他應用程序。 Feather Linux 小得可以放置在一個快閃記憶體卡(compact flash card)中,這是攜帶 Linux 的發行版本 的一種更簡潔方式。當然,一些年紀比較大的人會記得,WordPerfect 5.1 只需要軟盤和 2 MB 內存就可以運行,因而將遠不如它成熟的字處理程序加入到 64 MB 大小的系統中就不值得大驚小怪了(無可否認,還有 適當數量的其他應用程序)—— 但就 2004 年的標準而言它是令人滿意的。
相對於大部分直接可用的發行版本,Feather Linux 在自動檢測硬體方面做得稍顯不足;這 是因為代碼已經被精簡了,還是為了讓經驗豐富的 Linux 用戶獲得對配置的更多的控制,我無法確定。幸運的是,通過可導航的本文菜單就可以完成配置,所以做出一些選擇並不困難 —— 但是這確實 需要更多關於您的硬體的知識,新用戶可能不會具備這些知識。好的方面體現在,您可以將 Feather 配置保存到快閃記憶體、硬碟驅動器或者軟盤;而且您還可以將運行著的 Feather 系統安裝 到硬碟上。除了 64 MB 大小的基本系統以外,還可以通過網路安裝相當多的額外的應用程序—— 儘管 Feather 系統仍然在運行。
總之,Feather Linux 是一個很好的結合成一個整體的發行版本,但是它顯然是為經驗豐富的 Linux 用戶所準備的。沒有新用戶會去喜歡 Fluxbox —— 儘管我認識很多經驗豐富的人,那些人 是 Blackbox(Fluxbox 起源於它)的忠實信徒。
EVMix 0.1.5
在我所研究的發行版本中,EVMix 在很多方面都是獨一無二的。即使是它的名稱也還沒有必要固定下來。讓我來簡單介紹一些背景。EVM2003 項目是一個由 SourceForge 託管開發完全使用自由軟體的 投票記錄機軟體項目,這些機器能夠生成選民可驗證的選票。這個項目解決了當前私有的“觸摸屏投票”機器中存在的很多問題。我是這個項目的一名開發人員和體系結構顧問。
投票記錄機的一個特殊要求是,您 真正地 希望它們運行 完全 相同的軟體,那些軟體通過了鑒定,要在選舉中使用。沒有任何 slipstream補丁;沒有任何“maintenance releases”;沒有任何“trust Microsoft's latest security update”;所以,出於特殊的而且必要的理由,機器上沒有任何軟體。要完成可信任級別的發布控制,我們想到的最好辦法恰好是將軟體發佈於 LiveCD 之上(只能是 CD-R,不能是 CD-RW)。選舉工作人員可以在整個磁碟映象上運行 MD5 哈希加密,並確保它 確實 擁有正確的軟體集 —— 從操作系統和驅動程序到正確的 Python解釋程序和正確的投票應用程序。
一張 EVMix CD 包含若干個應用程序,每個都需要稍有不同的工具鏈。StrongBox 的創建者 Liam Helmer 提出 了一個基於 StrongBox 的系統。我們的每個組件 —— 觸摸屏、“ballot reconciliation”、為閱讀有障礙的人 準備的(reading-impaired)音頻介面、投票彙集 —— 都可以運行它們自己的虛擬系統。
StrongBox 與 Linux 的常規思路不同。StrongBox 是一個完全模塊化的 Linux 發行版本,不再 有運行所有程序的統一的系統。它加入了一個小的基於 RAM 的 OS 和用於管理和安全功能的工具集,這樣就可以讓使用任何 Linux 發行版本編譯的應用程序包在其上運行。這些程序包每一個都運行在一個安全 的虛擬上下文中(經過 x.509密鑰簽名的),高度獨立於底層 OS。這一安全的劃分使 StrongBox 擁有 了一些強大的特性。其中主要的特性包括 OS版本控制、回退、自動硬體檢測、引導過程中的容錯、伺服器之 間方便的遷移,以及與其他 Linux 發行版本和已存在的裝置(installations)之間的互操作性。
通過使用虛擬伺服器、所有 OS 組件上的數字簽名以及 OS 中大量的只讀部分,StrongBox 可以非常有力地防禦 安全攻擊。另外,它支持與媒介無關的虛擬引導,也就意味著,稍加修改或者不加改動,它就可以從 CDRom、快閃記憶體、 USB、SCSI 等等媒介上運行。這一獨立特性使得 StrongBox 成為安全地部署嵌入式系統、計算機集群、企業 Linux 部署、安全的 Web 伺服器PBX 系統以及 kiosk 系統的理想選擇。

結束語


LiveCD 發行版本有若干個用途。經常提及的一個用途是,它能“進行執行前的嘗試”。對我來說,可能更重要的意義 在於我可以在多台機器上運行一組已知的軟體,而不需要擔心機器上安裝的程序庫或工具的版本的不同。
我所研究的 LiveCD 中,大部分都可以很好地讓您將設置和用戶數據存儲到不同的媒介中 —— 不管是本地的還是網路的。此外,在大部分 LiveCD 的運行期中能相對輕鬆地安裝另外的軟體,我感覺很驚喜。

參考資料


- 隨著話題的日益增加,Wikipedia 上出現了一篇非常好的 關於 LiveCD 的 介紹性文章。文章中有實用而簡明的定義和相關 URL 的大量鏈接。
- Nicholas Brand 的 Linux LiveCD 發行版本列表 是一個很好的總結。
- 參閱 IPCop Firewall Linux 主頁。
- 很多 LiveCD 發行版本都起源於 Knoppix(另外參閱它們的 多語言主頁)。在 Building a self-contained auto-configuring Linux system on an iso9660 filesystem 可以找到關於 Knoppix 的第一個版本及其由何而來的介紹。
- SLAX Linux 基於 Slackware.
- GoboLinux 稱自己為一個“重新定義了整個文件系統層次 的另一種 Linux 發行版本”。
- StrongBox Linux 的設計目標是模塊化、靈活、容錯和易管理 —— 都具備最高度的安全可能性。
- 閱讀更多關於 Electronic Voting Machine Project(也稱為 EVM2003)的資料,這個項目的內容是基於自由軟體的投票記錄機 以及選民可驗證的選票。您將可以從 VerifiedVotingorg 和 EFF's E-voting archive 等站點找到關於為什麼需要這些 的信息和鏈接。
- 使用 Knoppix 進行系統恢復(developerWorks,2003 年 10 月)展示了如何訪問一個非引導的 Linux 系統,而 Knoppix 提供了一個可引導的、容量為一張光碟的 Linux(developerWorks,2003 年 2 月)描述了 Knoppix 移動性的應用。
- 在 從 FireWire 設備引導 Linux(developerWorks,2004 年 7 月)中,Martyn Honeyford 指出,您自己的可移動驅動器上的 Linux 發行版本可以提供與 LiveCD 相同 的輕便性 —— 而且更為靈活。
- 在 developerWorks Linux 專區 可以找到 更多為 Linux 開發人員準備的參考資料。
- 在 Developer Bookstore Linux 區中定購 打折出售的 Linux 書籍。
- 通過 developerWorks Subscription 使用最新的 IBM 工具和中間件來開發和測試您的 Linux應用程序:您可以從 WebSphere、DB2、 Lotus、Rational、和 Tivoli 得到 IBM軟體,以及一個可以在 12 個月內使用這些軟體的許可,所有的花費都比您想像的要低。
- 從 developerWorks 的 Speed-start your Linux app 專區下載可以運行於 Linux 之上的經過挑選的 developerWorks Subscription 產品免費測試版本,包括 WebSphere Studio Site Developer、WebSphere SDK for Web services、WebSphere Application Server、DB2 Universal Database Personal Developers Edition、Tivoli Access Manager 和 Lotus Domino Server。要更快速地開始上手,請參閱針對各個產品的 how-to 文章和技術支持。

作者


David Mertz 很懷念使用 Yggdrasil Linux 的日子,很久以前就有人想到了在 CD 媒介上發布 Linux。您可以通過 mertz@gnosis cx 與 David 聯繫;您可以通過他的 個人主頁 來全面了解他的生活。閱讀他的 Text Processing in Python 一書。歡迎對過去的或將來的專欄文章提出意見和建議。
全文出自 : IBM developerWorks中國網站