Linux Live CD 的使用
Linux 的 Live CD 發(fā)行版本已經(jīng)有若干年的歷史,但是近一兩年這種發(fā)行版本的數(shù)量已經(jīng)增加了好幾倍?,F(xiàn)在的大部分專用 LiveCD 都起源于 LinuxTag 的 Knoppix 發(fā)行版本,那是個(gè)非常成功的發(fā)行版本。新奇的 LiveCD 發(fā)行版本 —— 一般來講很像新的 Linux 發(fā)行版本 —— 為不同的用戶群包裝了不同的軟件集,而且,為了體現(xiàn)它們的創(chuàng)建者的思想,它們也包裝了微調(diào)配置和設(shè)置細(xì)節(jié)。
當(dāng)前,就算是沒有幾百種,也有幾十種可用的 LiveCD 發(fā)行版本;顯然,我不能在本文中涉及所有這些發(fā)行版本。最受關(guān)注的 LiveCD 可能是特意用來向新用戶展示 Linux 的通用辦公軟件包。不過,此外還有其他的更為專用的發(fā)行版本,比如用作系統(tǒng)群集、急救 CD、防火墻或安全工具。在很多情況下,更為專用的發(fā)行版本也會(huì)更小,因?yàn)樗鼈兩釛壛舜蟛糠滞ㄓ玫墓ぞ摺?/P>
從 CD 引導(dǎo) Linux
在本文中,我介紹了四個(gè)常見的通用發(fā)行版本:Knoppix、Slax、Mepis 和 GoboLinux。不過,盡管大部分情況下最后一個(gè)發(fā)行版本是用于 辦公/網(wǎng)絡(luò)/游戲 的通用的發(fā)行版本,但是,它的創(chuàng)建在很大程度上是為了論證關(guān)于文件系統(tǒng)設(shè)計(jì)的一些新穎想法。我還介紹了三個(gè)更為專用的 LiveCD:Feather Linux 是通用的,但是非常小;EVMix 基于 StrongBox,引入了 EVM2003/Open Voting Consortium 項(xiàng)目的大部分專用軟件,我正在參與那個(gè)項(xiàng)目;IPCop 是另一個(gè)小型的 LiveCD,致力于創(chuàng)建基于 Linux 的防火墻。
對(duì)于這些發(fā)行版本中,其中大部分我將在它們各自的章節(jié)中對(duì)其進(jìn)行描述。不過,在這里我將對(duì) IPCop 進(jìn)行簡(jiǎn)短的評(píng)論。我興奮地使用這個(gè)只有 22 MB 的小巧 ISO 來體驗(yàn)一個(gè)小型的、專用的 Linux LiveCD。不幸的是,在嘗試引導(dǎo) IPCop 時(shí),我有些失望了;不是發(fā)行版本本身的問題,而是我的期望問題。IPCop 僅僅名義上是一個(gè) LiveCD 發(fā)行版本 —— 雖然它 確實(shí) 引導(dǎo)進(jìn)入一個(gè) Linux 系統(tǒng),但是在那里您可以真正做的唯一的事情就是將系統(tǒng)安裝到硬盤上。就此而言,IPCop 類似于任何其他可安裝的 Linux 發(fā)行版本 —— 那些發(fā)行版本大部分也可以讓您選擇一個(gè)最小化的 shell 來完成管理功能。IPCop 中的屏幕截圖功能令人關(guān)注,但是,當(dāng)發(fā)現(xiàn)需要使用我的硬盤驅(qū)動(dòng)器以后,我覺得更深入的測(cè)試超出了本次評(píng)論的范圍。我的預(yù)感是,有很多其他大肆宣傳的“LiveCD”也是像這樣徒有其名。
順便說一句,在本次評(píng)論中,我所尋找的是明顯的或者容易去做的內(nèi)容 —— 的確,除了我努力去完成的內(nèi)容以外,其他的事情也是可能的。我特別評(píng)論的話題包括,一個(gè)發(fā)行版本是否可以將兩次引導(dǎo)間的配置方便地保存下來,或者是否可以將其自身安裝到硬盤驅(qū)動(dòng)器上。我相信,只要付出足夠多的體力勞動(dòng),我就可以在所有發(fā)行版本中完成那些事情,不過,我尋找的是執(zhí)行那些動(dòng)作的重要菜單項(xiàng)(menu item)或指令。
Knoppix 3.4
Knoppix 是最有名的 LiveCD 發(fā)行版本,所以,作為一個(gè)基礎(chǔ),首先對(duì)它進(jìn)行研究。Knoppix 3.4 (2004-05-17)將盡可能多的內(nèi)容壓縮到一張 CD 上,最終得到一個(gè) 690 MB 大小的 ISO 映像(一定要買 700 MB 的 CD-R,而不要買 650 MB 的)。從它的大小就可以看出來,Knoppix 捆綁了大量的工具,既有面向開發(fā)人員的,也有面向辦公用途的。我所研究的工具都是當(dāng)前流行的,但并不是尖端的(bleeding edge):Linux 內(nèi)核 2.4.26;KDE 3.2.2;OpenOffice.org 1.1.1;Gimp 2.0;Python 2.3.4c1。 Knoppix 傾向于附加功能重復(fù)的程序,這些可能會(huì)給新用戶帶來迷惑:有十個(gè)文本編輯器,我應(yīng)該使用哪個(gè)?我應(yīng)該使用 Mozilla 還是 Konqueror 進(jìn)行瀏覽?另一方面,那些都是經(jīng)驗(yàn)豐富的用戶所非常樂于使用的; Knoppix 堅(jiān)持使用 OpenOffice.org 作為它的辦公套件,而舍棄了一些發(fā)行版本中所采用的 KOffice。
可以直接引導(dǎo) Knoppix,不需要用戶做任何事件就可以得到一個(gè)可以使用的 KDE 桌面。我的所有硬件(幾年前的舊機(jī)器上的)都恰當(dāng)?shù)刈R(shí)別了出來,包括我的 1280x1024 的平板顯示器以及與我的 nVidia TNT2 顯卡相匹配的模式。默認(rèn)的用戶是 knoppix,但是我發(fā)現(xiàn)不需要密碼就可以執(zhí)行 su —— 可能是安全與用戶友好性的折衷吧。只需要執(zhí)行 passwd 就可以解決這一問題,因?yàn)橄到y(tǒng)中永遠(yuǎn)不應(yīng)該存在沒有密碼的帳號(hào)。
我試驗(yàn)的所有通用發(fā)行版本所使用的窗口管理器都是 KDE(實(shí)際上,版本都是 3.2.2)。配置細(xì)節(jié)上有一些不同,比如哪些圖標(biāo)安放在面板上,選擇是哪種主題,使用的是哪種點(diǎn)擊模式(單擊/雙擊)。我并不喜歡 Knoppix 的選擇:?jiǎn)螕?、Keramik 主題;但是這純粹是一個(gè)個(gè)人問題,很容易改變。Knoppix 也附加了一些其他的窗口管理器,不過它們之間的切換好像會(huì)破壞 X11 配置。
至于更多功能上的問題,Knoppix 引入了一個(gè)優(yōu)秀的而且令人矚目的“Save Knoppix Configuration”工具。您可以按意愿將設(shè)置部分保存到軟盤或者硬盤分區(qū)上:如主目錄文件、網(wǎng)絡(luò)設(shè)置、X11 配置、打印機(jī)等等。Knoppix 還將我的所有硬盤分區(qū)自動(dòng)掛載到桌面上,包括測(cè)試用的 OS/2 桌面上的 HPFS 分區(qū)。有一些可以在運(yùn)行的系統(tǒng)上 “Install Software”的選項(xiàng),但是除了這個(gè)有限的列表以外,如果我嘗試添加其他應(yīng)用程序,apt-get 就會(huì)指出安裝目錄只讀的錯(cuò)誤(對(duì)我來說沒有顯而易見的可以解決這一問題的其他方法)。與一些發(fā)行版本相反,Knoppix 沒有 提供將其自身安裝到硬盤驅(qū)動(dòng)器上的重要選項(xiàng)。
Mepis 2004
Mepis 是一個(gè)類似于 Knoppix 的發(fā)行版本,但是它具備雙重用途,既可以作為一個(gè)可安裝的發(fā)行版本,也可以作為一個(gè) LiveCD。與 Knoppix 類似,Mepis 也是一張幾乎全滿了的 CD,而且,實(shí)際上它還附帶了額外第二張的 CD(不是直接可用的)。Mpeis 上的工具集與 Knoppix 上的那些大部分是相同的。 LiveCD 為開發(fā)人員考慮的較少,而為辦公用戶考慮得更多。例如,LiveCD 上同時(shí)包括了 OpenOffice.org 和 KOffice;但是包括的程序員所用的編輯器和開發(fā)用的 IDE 很少。
與 Knoppix 相反,Mepis 引入了一個(gè)將其自身安裝到硬盤驅(qū)動(dòng)器的非常好的應(yīng)用程序,但是卻缺少保存 LiveCD 配置的工具以及 LiveCD 環(huán)境運(yùn)行時(shí)動(dòng)態(tài)安裝額外軟件的工具。誠(chéng)然,Mepis 的目標(biāo)是讓您在安裝之前可以進(jìn)行試驗(yàn),而不是創(chuàng)建一個(gè)根本不需要任何持久安裝的輕便的運(yùn)行期環(huán)境。不過,不經(jīng)修改的 Mepis LiveCD 環(huán)境就已經(jīng)是很好用的了,您可以方便地將修改過的文檔或文件保存到其他媒介。Mepis 不會(huì)自動(dòng)掛載它發(fā)現(xiàn)的所有硬盤驅(qū)動(dòng)器分區(qū),但是在它的桌面上有用來掛載分區(qū)的圖標(biāo)(不需要用戶了解 mount 命令的參數(shù))。和 Knoppix 一樣,Mepis 可以恰當(dāng)?shù)貟燧d我的 HPFS 分區(qū)(只讀)和 ext2/3 分區(qū)(讀/寫)。
Mepis 的引導(dǎo)順序與 Knoppix 稍有不同。更好的方面體現(xiàn)在,Mepis 為您提供了一個(gè)可導(dǎo)航的本文菜單來選擇內(nèi)核的版本(我試驗(yàn)的是 2.6,但是 2.4 也是可以使用的)。選擇屏幕分辯率和一些其他配置選項(xiàng)的能力(也是要求)難言其利弊。全部以友好的可滾動(dòng)菜單的形式給出,但是 Knoppix 根本不需要詢問這些。另一方面,其余發(fā)行版本大部分都假定我希望以 1024x768 的分辯率來運(yùn)行 X11,而不是 1280x768 —— 我寧愿自己來選擇,而不愿讓 CD 弄錯(cuò)它。Mepis 中的一個(gè)小問題是,它設(shè)置的 root 和 demo 帳號(hào)的密碼在引導(dǎo)過程中并沒有顯示出來,也沒有記錄在頂層的 README 文件中。我只嘗試了幾次就猜出了 root 密碼是“root”,但這畢竟是猜測(cè)出來的。
SLAX 4.1.2
SLAX 是一個(gè)基于 Slackware 的 LiveCD,它的大小相對(duì)較小,可能是與 Slackware 的原則一致。 SLAX 4.1.2 是一個(gè) 188 MB 的 ISO,這個(gè) ISO 顯然是足夠小的,可以寫入到一張 8 厘米直徑的小型光盤中(有意如此)。SLAX 很好地選擇了一組面向公辦和家庭用戶的軟件,這很大程度上是通過消除更大的發(fā)行版本中的冗余而實(shí)現(xiàn)的。例如,SLAX 為您提供了 KOffice,而不提供 OpenOffice.org,為您提供了 Konqueror,而沒有提供 Mozilla。它也沒有提供 Python、Perl 或者 Ruby —— 它的目標(biāo)用戶顯然不是開發(fā)人員。
引導(dǎo) SLAX 是非常簡(jiǎn)單的。和 Knoppix 一樣,它沒有使用引導(dǎo)選項(xiàng)而是使用了開關(guān),在它開始默認(rèn)的引導(dǎo)之前幾秒鐘,您可以在 boot: 提示符中輸入這些開關(guān)。它使用的是 2.4 內(nèi)核。完成基本的 Slackware 引導(dǎo)序列后,SLAX 顯示出 root 密碼(“toor”)并說明您可以在命令行中啟動(dòng)的程序:(使用 gui 啟動(dòng) KDE;使用 guifast 啟動(dòng) Fluxbox;midnight commander;使用回退幀緩存的 X11;將配置的設(shè)置保存到軟盤或從軟盤恢復(fù))。
輸入 gui 后,我發(fā)現(xiàn)了第一個(gè)小問題。我只有一個(gè) 1024x768 的屏幕。怎么辦?我知道去修改 /etc/X11/XF86Config 來設(shè)置新的分辯率,但是新用戶可能不會(huì)想到這一點(diǎn)。我還發(fā)現(xiàn) gui 將可以接受一個(gè) --help 開關(guān)來指引我使用 X11 分辨率開關(guān)。這些對(duì)于不熟悉 Linux 的人來說都不是顯而易見的。不過算了,這 是 Slackware。
#p#
進(jìn)入了 X11 和 KDE 之后,我著實(shí)為其配置選項(xiàng)所吸引。我也喜歡 SLAX 選擇的 Plastik 主題(盡管與 WinXP 有些類似)和桌面上雙擊方式的行為,而且在 Konqueror 中我感覺更為自然。我還發(fā)現(xiàn)了面板上的自定義圖標(biāo),值得我們以稍微輕松的態(tài)度去看待 —— 尊重一個(gè)事實(shí),它們大部分用于多媒體、IM、游戲和 Web 瀏覽(那個(gè)設(shè)置可能是來自其他某個(gè)地方,但是我仍然喜歡這個(gè)選擇)。我的硬盤驅(qū)動(dòng)器分區(qū)都自己掛載上來(包括 HPFS 分區(qū)),但是并沒有被胡亂地堆放在桌面上。我還發(fā)現(xiàn),Control Center 使用了一種我有些不太習(xí)慣的導(dǎo)航方式;這可能不是 SLAX 獨(dú)有的改變,只是我以前沒有見過的一種方式。每一個(gè)類別都有一個(gè)移動(dòng)到上一級(jí)的“Back”圖標(biāo),而不是使用配置類別的一個(gè)可折疊樹。這看起來對(duì)新用戶來說更為友好。
SLAX 的目標(biāo)顯然是定位于新用戶,并向不了解 Linux 的人們來“推銷”Linux。它的外觀對(duì)此可以起到推動(dòng)作用;但是,不能安裝到硬盤,也不能向運(yùn)行期的映像安裝更多應(yīng)用程序,同樣會(huì)造成障礙。它正是一個(gè)大小適度的 ISO,您可以到處發(fā)放或者快速地刻錄到 CD 上,給用戶一個(gè)關(guān)于 Linux 的良好的初步印象(有試驗(yàn)中有足夠的工具可以進(jìn)行一些真正的工作和娛樂)。
GoboLinux 011
對(duì)新用戶來說,它與 Mepis 或 Knoppix 非常相像。包含了一整張 CD 的軟件,也是基于 2.4.26 內(nèi)核和 KDE 3.2.2。應(yīng)用程序大部分都是您所期待的那些,或許沒有太注意種類的覆蓋和重復(fù)。甚至比 SLAX 還要糟糕,我所能找到的獲得正確的 X11 分辯率的唯一方法是手工編輯 /etc/X11/XF86Config。
GoboLinux 在一些小的方面比較差:不會(huì)自動(dòng)掛載分區(qū),顯然不支持 HPFS(從命令行可以掛載 ext3);不能“保存設(shè)置”;不能動(dòng)態(tài)安裝;而且,最要命的是,GoboLinux 不能識(shí)別出我的網(wǎng)絡(luò)。
GoboLinux 的“賣點(diǎn)”實(shí)際上并不在于它是一個(gè)特別好的 LiveCD(雖然它可能會(huì)不斷得到完善),而是 GoboLinux 的關(guān)于 Linux 文件層次的新穎思想。GoboLinux 遵循了與 Mac OSX 在 FreeBSD 根上使用分層模式類似的模式,創(chuàng)建了根目錄 /Depot、/Files、/Mount、/Programs、/System 和 /Users。有必要時(shí),GoboLinux 使用符號(hào)鏈接將文件放置于其他工具希望它們存在的層次中位置。不過,在其固有的文件結(jié)構(gòu)中 —— 同樣,非常類似 Mac OSX —— 每個(gè)應(yīng)用程序占用它們自己的目錄,而不是集中在 /usr/bin 或 /usr/local/bin 目錄中。
例如,F(xiàn)ireFox 瀏覽器可執(zhí)行文件位于 /Programs/FireFox/Current/bin/firefox 目錄中。刪除或安裝應(yīng)用程序(不是必須與可執(zhí)行文件一一對(duì)應(yīng))只需要解包或刪除文件系統(tǒng)樹中的分支。自然,將 LiveCD 引導(dǎo)安裝到硬盤驅(qū)動(dòng)器是非常簡(jiǎn)單的,而且 GoboLinux 為您提供了這樣一個(gè)選項(xiàng)。
GoboLinux 提出的概念是不錯(cuò)的,但是發(fā)行版本本身需要進(jìn)一步完善。
Feather Linux 0.51
Feather Linux 比 SLAX 更有過之。Feather 的大小不到 64 MB,包裝了一個(gè)基本的 Linux 系統(tǒng),以及一個(gè)最小化的 Web 瀏覽器(Dillo)、字處理器(Ted)、窗口管理器(Fluxbox)和一些其他應(yīng)用程序。 Feather Linux 小得可以放置在一個(gè)閃存卡(compact flash card)中,這是攜帶 Linux 的發(fā)行版本的一種更簡(jiǎn)潔方式。當(dāng)然,一些年紀(jì)比較大的人會(huì)記得,WordPerfect 5.1 只需要軟盤和 2 MB 內(nèi)存就可以運(yùn)行,因而將遠(yuǎn)不如它成熟的字處理程序加入到 64 MB 大小的系統(tǒng)中就不值得大驚小怪了(無可否認(rèn),還有適當(dāng)數(shù)量的其他應(yīng)用程序)—— 但就 2004 年的標(biāo)準(zhǔn)而言它是令人滿意的。
相對(duì)于大部分直接可用的發(fā)行版本,F(xiàn)eather Linux 在自動(dòng)檢測(cè)硬件方面做得稍顯不足;這是因?yàn)榇a已經(jīng)被精減了,還是為了讓經(jīng)驗(yàn)豐富的 Linux 用戶獲得對(duì)配置的更多的控制,我無法確定。幸運(yùn)的是,通過可導(dǎo)航的本文菜單就可以完成配置,所以做出一些選擇并不困難 —— 但是這確實(shí)需要更多關(guān)于您的硬件的知識(shí),新用戶可能不會(huì)具備這些知識(shí)。好的方面體現(xiàn)在,您可以將 Feather 配置保存到閃存、硬盤驅(qū)動(dòng)器或者軟盤;而且您還可以將運(yùn)行著的 Feather 系統(tǒng)安裝到硬盤上。除了 64 MB 大小的基本系統(tǒng)以外,還可以通過網(wǎng)絡(luò)安裝相當(dāng)多的額外的應(yīng)用程序 —— 盡管 Feather 系統(tǒng)仍然在運(yùn)行。
總之,F(xiàn)eather Linux 是一個(gè)很好的結(jié)合成一個(gè)整體的發(fā)行版本,但是它顯然是為經(jīng)驗(yàn)豐富的 Linux 用戶所準(zhǔn)備的。沒有新用戶會(huì)去喜歡 Fluxbox —— 盡管我認(rèn)識(shí)很多經(jīng)驗(yàn)豐富的人,那些人是 Blackbox(Fluxbox 起源于它)的忠實(shí)信徒。
EVMix 0.1.5
在我所研究的發(fā)行版本中,EVMix 在很多方面都是獨(dú)一無二的。即使是它的名稱也還沒有必要固定下來。讓我來簡(jiǎn)單介紹一些背景。EVM2003 項(xiàng)目是一個(gè)由 SourceForge 托管開發(fā)完全使用自由軟件的投票記錄機(jī)軟件項(xiàng)目,這些機(jī)器能夠生成選民可驗(yàn)證的選票。這個(gè)項(xiàng)目解決了當(dāng)前私有的“觸摸屏投票” 機(jī)器中存在的很多問題。我是這個(gè)項(xiàng)目的一名開發(fā)人員和體系結(jié)構(gòu)顧問。
投票記錄機(jī)的一個(gè)特殊要求是,您 真正地希望它們運(yùn)行 完全 相同的軟件,那些軟件通過了鑒定,要在選舉中使用。沒有任何 slipstream 補(bǔ)丁;沒有任何“maintenance releases”;沒有任何“trust Microsoft's latest security update”;所以,出于特殊的而且必要的理由,機(jī)器上沒有任何軟件。要完成可信任級(jí)別的發(fā)布控制,我們想到的最好辦法恰好是將軟件發(fā)布于 LiveCD 之上(只能是 CD-R,不能是 CD-RW)。選舉工作人員可以在整個(gè)磁盤映象上運(yùn)行 MD5 哈希加密,并確保它 確實(shí) 擁有正確的軟件集 —— 從操作系統(tǒng)和驅(qū)動(dòng)程序到正確的 Python 解釋程序和正確的投票應(yīng)用程序。
一張 EVMix CD 包含若干個(gè)應(yīng)用程序,每個(gè)都需要稍有不同的工具鏈。StrongBox 的創(chuàng)建者 Liam Helmer 提出了一個(gè)基于 StrongBox 的系統(tǒng)。我們的每個(gè)組件 —— 觸摸屏、“ballot reconciliation”、為閱讀有障礙的人準(zhǔn)備的(reading-impaired)音頻接口、投票匯集 —— 都可以運(yùn)行它們自己的虛擬系統(tǒng)。
StrongBox 與 Linux 的常規(guī)思路不同。StrongBox 是一個(gè)完全模塊化的 Linux 發(fā)行版本,不再有運(yùn)行所有程序的統(tǒng)一的系統(tǒng)。它加入了一個(gè)小的基于 RAM 的 OS 和用于管理和安全功能的工具集,這樣就可以讓使用任何 Linux 發(fā)行版本編譯的應(yīng)用程序包在其上運(yùn)行。這些程序包每一個(gè)都運(yùn)行在一個(gè)安全的虛擬上下文中(經(jīng)過 x.509 密鑰簽名的),高度獨(dú)立于底層 OS。這一安全的劃分使 StrongBox 擁有了一些強(qiáng)大的特性。其中主要的特性包括 OS 版本控制、回退、自動(dòng)硬件檢測(cè)、引導(dǎo)過程中的容錯(cuò)、服務(wù)器之間方便的遷移,以及與其他 Linux 發(fā)行版本和已存在的裝置(installations)之間的互操作性。
通過使用虛擬服務(wù)器、所有 OS 組件上的數(shù)字簽名以及 OS 中大量的只讀部分,StrongBox 可以非常有力地防御安全攻擊。另外,它支持與媒介無關(guān)的虛擬引導(dǎo),也就意味著,稍加修改或者不加改動(dòng),它就可以從 CDRom、閃存、 USB、SCSI 等等媒介上運(yùn)行。這一獨(dú)立特性使得 StrongBox 成為安全地部署嵌入式系統(tǒng)、計(jì)算機(jī)集群、企業(yè) Linux 部署、安全的 Web 服務(wù)器、PBX 系統(tǒng)以及 kiosk 系統(tǒng)的理想選擇。
結(jié)束語(yǔ)
LiveCD 發(fā)行版本有若干個(gè)用途。經(jīng)常提及的一個(gè)用途是,它能“進(jìn)行執(zhí)行前的嘗試”。對(duì)我來說,可能更重要的意義在于我可以在多臺(tái)機(jī)器上運(yùn)行一組已知的軟件,而不需要擔(dān)心機(jī)器上安裝的程序庫(kù)或工具的版本的不同。
我所研究的 LiveCD 中,大部分都可以很好地讓您將設(shè)置和用戶數(shù)據(jù)存儲(chǔ)到不同的媒介中 —— 不管是本地的還是網(wǎng)絡(luò)的。此外,在大部分 LiveCD 的運(yùn)行期中能相對(duì)輕松地安裝另外的軟件,我感覺很驚喜。