标题：LiveCD
历史
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.4Knoppix 是最有名的 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 org 1.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 2004Mepis 是一个类似于 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.2SLAX 是一个基于 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 OSX 在 FreeBSD 根上使用 分层模式类似的模式，创建了根目录 /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 中国网站