使用小型 Linux,第 3 部分
如果您认为本周“专栏”的标题听起来像是自然节目的介绍,那是因为我试图说明一个观点。当我们开始构建几乎任何东西的微型版本时,我们开始问这个问题:“我真正希望这个东西做什么?” 这对于 Linux 来说也是如此,尽管我希望我的前两篇文章已经向您展示了少即是多的道理。
这一次,我想谈谈其中一些专门的应用程序。Linux 的真正强大之处在于它是一个网络操作系统。在处理 Linux 和令人印象深刻的(有时是过度活跃的)开发人员群体时,一切皆有可能。当然,您可以在 Linux 上玩《文明:权利的召唤》和《雷神之锤》,但 Linux 如此酷的真正原因不是因为它玩得好,而是因为它工作得好。更好的是,它的网络性能良好。请允许我介绍今天的微型竞争者作为例子。但首先,一个问题。
您想通过使用您闲置的旧 486 SX/25 机器,在新防火墙/路由器上节省几千美元吗?什么?您取出了硬盘驱动器?没问题;我们不需要它。是的,那些旧的以太网卡就足够了。
在蓝色角落,重达一张软盘的是Linux 路由器项目。这个单软盘发行版旨在用于构建廉价路由器、终端服务器以及几乎任何其他东西。并非所有东西都能在预构建的软盘上运行,但很多东西都可以。在深入细节之前,请允许我将您指向他们的网站:http://www.linuxrouter.org。在那里,您会发现对于 Linux 路由器项目的开发者来说,他们所做的事情一部分是技术,一部分是事业。作为证据,网站主页上的副标题:“为了全人类的利益而嵌入这只鸟。”
如果您想自己制作软盘并预先自定义组件,准备 LRP 的副本将需要一些背景工作。最容易的事情(特别是如果您想试用 LRP)是下载完整的启动映像,并将其安装到您的 PC 上。在网站上,您还会找到诸如 ppp 或 ssh(安全 shell)之类的软件包。
最新的映像可以在下载部分找到,方法是选择您最喜欢的镜像,然后点击目录向下进入 dists/2.9.4,这是我下载的版本号。现在,忽略周围所有闪闪发光的灯光,它们承诺您更大(更小?)和更好的东西,并抓取名为 idiot-image_1440KB_2.9.4 的映像(哎呦!!)并下载它。
从此创建启动软盘很简单。
dd if=idiot-image_1440KB_2.9.4 of=/dev/fd0
当该过程完成时,只需取出您的软盘,将其放入旧的 486 机器中并重新启动。问题是此磁盘可能没有您需要的驱动程序。要获得这些驱动程序,您必须创建自己的 LRP 软件包,其中包含您需要的东西。例如,我想设置一个使用 PPP 连接的路由器,并且我的以太网卡具有 3c59x 驱动程序。如果我在 /lib/modules 上执行 ls,我什么也没找到。创建此捆绑包有一些奇怪的黑魔法,但该项目提供了帮助。以下是详情。
转到 http://www.linuxrouter.org/modmaker/2.0.36.phtml(我是否提到 LRP 运行 2.0.36 内核?)并在提供的列表中单击您需要的模块来选择它们。然后,单击“创建 modules.lrp 文件”按钮。这非常酷,并且可以避免您过早脱发。下一步是右键单击浏览器中的“modules.lrp”链接,并保存该文件。这是另一个好的建议:确保您同时获取随附的 Linux 内核。我选择了给我一个带有协处理器支持的内核的链接,并将其保存到磁盘为 2.0.36-LRP.FPU-EMU.zImage。
下一个技巧是将这些文件放到软盘上,以便我们可以使用它们。为此,请按以下方式将软盘作为文件系统挂载到您当前的 Linux 系统上。请注意,您可能还必须创建挂载点。例如
mkdir /mnt/floppy mount -t msdos /dev/fd0 /mnt/floppy
现在只需将文件复制到它们正确的位置,覆盖任何同名现有文件。内核需要以“linux”的名称存在于软盘上。
cp 2.0.36-LRP.FPU-EMU.zImage /mnt/floppy/linux cp modules.lrp /mnt/floppy/modules.lrp
取出软盘(包含您需要的所有内核)并启动您的路由器。您将获得一个漂亮的登录提示,您可以在其中键入 root(最初没有密码)。您首先看到的是一个配置菜单,该菜单除其他外,允许您备份 RAM 映像,以便将您所做的任何更改保存到软盘。按下 q 将使您进入命令提示符。顺便说一句,可以使用命令 lrcfg 随时调出该菜单。
您将需要设置 IP 地址,您可以在“网络设置”菜单下执行此操作。我从下一个菜单中选择了“直接配置”。您会注意到,您还可以使用相同的菜单创建简单的防火墙规则,使用 hosts.allow 和 hosts.deny。(有关这些文件及其配置选项的说明,请查看我的“阻止系统破解者”系列。)当您设置了需要配置的内容后,请返回到 shell。
等等——还有一件事要做。为了在启动时加载模块,您需要使用软盘上提供的 edit 命令对 /etc/modules 进行一些配置。格式非常简单。对于您希望在启动时自动加载的项目,只需删除相应行开头的井号/八位字节符号即可取消注释这些行。模块使用 insmod 而不是 modprobe 加载,以防您尝试手动执行这些操作。
您可以使用 LRP 做什么完全取决于您和您的想象力。我将 LRP 设置为通过调制解调器的 PPP 连接,并配置了一张与我的网络通信的以太网卡。您可以使用两张以太网卡创建一个独立的防火墙。LRP 的一个非常酷的用途(在网站的文档中提到)可以在 http://water.gbasin.net 找到。它是犹他州中部塞维尔河流域的官方网站。使该网站真正有趣的是,它运行着一个“太阳能供电、扩频、无线电连接的 LRP 盒子”。我认为这应该获得某种“酷炫”奖,以表彰对微型 Linux 的创新使用。该网站使用网络摄像头每 10 分钟可视化更新感兴趣的各方(大概在塞维尔流域)。去看看吧。
我们的下一个竞争者是 Coyote Linux,可在 http://www.coyotelinux.com 获得。这个迷你发行版也源自 Linux 路由器项目的工作,但为整个 LRP 理念添加了自己的特色。首先,内核更新到 2.2.14 版本,而 LRP 仍在运行 2.0.36(尽管 2.2.14 正在为 LRP 开发中)。更新的内核意味着 Coyote 使用 ipchains 来创建防火墙规则,而不是像 LRP 那样使用 ipfwadm。Coyote 也使整个模块的事情变得更容易一些。我稍后会解释。
Coyote Linux 提供免费软件版本和商业产品。商业产品和免费软件版本在实际启动的路由器方面或多或少是相同的。真正的区别在于商业版本是为 Windows 用户设计的。它以 CD-ROM 形式提供,并带有一个漂亮的Windows 风格向导,其中包含问答环节,最终创建实际的 Coyote 磁盘。使用其他操作系统的某人现在可以创建 Linux 防火墙和路由器,而无需 Linux 服务器或工作站。
对于已经在 PC 或服务器上运行 Linux 的用户,免费软件版本不会给您带来任何问题。只需从网站下载最新版本即可。我获取了文件 coyote-1.13.tar.gz 并将其解压缩到我的系统上。
tar -xzvf coyote-1.13.tar.gz
要创建您的 coyote 磁盘,请切换到新创建的目录并执行 makefloppy.sh 文件。
cd coyote ./makefloppy.sh
在一个相对友好的(非图形化的,如“其他操作系统”版本)界面中,系统将询问您的网络设置、以太网接口的 IP 地址、网关地址、DNS 信息、您是否需要 DHCP 等。现在到了简单的模块部分:您需要包含哪些模块才能加载您的网络驱动程序。我告诉脚本“3c509”,该模块会自动构建到我的软盘映像中。(像 LRP 一样,还有其他您可以指定的软件包。)在您回答完所有问题后,Coyote 的安装脚本会格式化您的软盘并为您创建映像。瞧!就是这样。将其加载到您的旧 486 硬件中并启动。
一旦您的新 Linux 路由器构建完成,您会在 lrcfg 菜单中找到更多选项,并且做事方式略有不同,但总而言之,如果您使用过 LRP,则领域是相似的。
LRP 和 Coyote 都有支持讨论组,您可以在其中获得问题的解答,并且有相当大的社区的人会回答您的问题(毕竟这是 Linux)。当谈到价格时,用旧 PC 硬件和以太网卡构建的路由器是无与伦比的。嘿,您甚至不需要硬盘驱动器。系统启动并运行后,您可以取出软盘这一事实意味着您可以非常确定您的系统不会被破解,以后也不会被用于邪恶目的。LRP 和 Coyote 绝对值得一看。
哇! 已经到这个时候了吗?下次,我们将走出单软盘世界,看看如何在提供全功能 Linux 发行版的同时保持尽可能小的体积。在那之前,请记住,即使是最小的 Linux 也能胜任。
作者注: 在本文发表后不久,LRP 的一位成员告知我,Linux 路由器项目正在运行一个更新的网站,网址为 http://lrp.c0wz.com/。 除了更新之外,您还会找到更多关于 LRP 的链接和信息文档。还建议您考虑加入邮件列表以获得进一步的帮助。 -- Marcel |
电子邮件:ljeditors@ssc.com