临时网络休息区回顾

作者:Colin McGregor

早在 2003 年,我就为世界科幻大会搭建了一个临时网络休息区,使用了定制的 Knoppix 3.4,效果很好。然后我写了一篇文章介绍我的做法,这篇文章发表在2005 年 2 月号Linux 杂志上。当然,时间和软件不等人,所以现在的问题变成了如何使用旧的/廉价的硬件和 Knoppix 3.7 构建一个临时网络休息区。

回顾一下,Knoppix 是一个基于 Debian 的 Linux 发行版,它可以从 CD-ROM 驱动器启动和运行。默认情况下,Knoppix 永远不会接触硬盘驱动器——您不必安装它,您只需告诉 PC 从 CD-ROM 驱动器启动即可。由于 Knoppix 出色的硬件检测系统,理论上至少可以将十几台不同品牌和型号的 PC 与十几张相同的 Knoppix 光盘放在一起,并在五分钟内让所有这些电脑启动、运行并浏览互联网。使用 Knoppix,磁盘上有两个本质上的文件系统——一个传统的 ISO 9660 系统,在 Knoppix 启动时使用,以及一个压缩文件系统,在系统启动后使用。这使得事情变得复杂,但它也允许 Knoppix 在传统的 700MB CD-ROM 上存储远超 700MB 的软件。

Knoppix 使我们摆脱了与商业操作系统相关的许可费用。Knoppix 还使我们摆脱了传统免费和商业操作系统(例如 Microsoft、Debian、SuSE、Fedora、FreeBSD 等)的硬盘安装时间要求。使用 Knoppix,我们可以自由地定制用户看到的内容,无论是显示活动名称的屏幕壁纸,还是显示活动赞助商名称的浏览器书签。

那么,您可能希望为活动中的临时网络休息区更改或控制哪些内容呢?首先,Knoppix 的默认屏幕分辨率为 1024 x 768。但是,许多 15 英寸显示器不支持大于 800 x 600 的分辨率。因此,如果您知道您要使用 15 英寸显示器,则应将分辨率调整为 800 x 600。其次,默认的窗口管理器是 KDE。如果您不知道您将为您的活动获得哪种 PC,或者如果您知道它们将具有少于 128MB 的内存和/或低于 Pentium II 350 CPU 的配置,您应该使用更轻量级的窗口管理器,例如 IceWM。第三,浏览器中的默认主页必须设置为反映您的活动的内容。同样,浏览器书签可能应该设置为与活动相关的信息和/或当地旅游信息。第四,启动屏幕和壁纸可能需要注明活动和/或活动赞助商。第五,您可能需要添加 Macromedia Flash 支持。第六,为了专注于活动,可以删除额外的功能。最后,您可能需要启用自动时间服务器更新。

从下载并刻录 Knoppix 副本开始您的项目。此处描述的内容适用于 Knoppix 3.7;其他版本的 Knoppix 可能不适用于下面描述的内容。

您需要组装一台开发机器;一台配置普通的机器,如 Pentium II 350MHz,配备 256MB RAM、52x CD-ROM 和一块空白的 6GB 硬盘就足够了。您可以使用更少的 RAM 和更慢的 CD-ROM,但这已经是您希望用于此类定制的最普通的机器了。为了补充这台开发机器,在您的网络上的其他地方,您需要一台或多台支持机器来充当 FTP 服务器、CD 刻录机和 DHCP 服务器。

接下来,在 Knoppix 下启动开发机器并启动 shell。第一步是设置一个新的文件系统,创建必要的目录并创建一个交换文件。其中一些内容需要略多于 1GB 的内存,RAM 加上交换空间,因此对于具有 256MB RAM 的机器,需要 750MB 的交换文件。以下是首次设置驱动器的命令

su
mkfs.ext2 /dev/hda1
mount -o rw /dev/hda1 /mnt/hda1
mkdir /mnt/hda1/master
mkdir /mnt/hda1/source
mkdir /mnt/hda1/knx
cd /mnt/hda1/knx
dd if=/dev/zero of=swap bs=1M count=750
cd ~
umount /dev/hda1
exit

在上述命令中,master 目录用于存储传统文件系统,source 用于存储将成为压缩文件系统的内容,knx 用于存储交换文件加上完成的 CD 镜像。上述步骤应该只需要执行一次。

您可能会多次执行接下来的步骤,因此您可能希望将其转换为一个小脚本,以自动化磁盘创建任务的这一部分。这样,您可以刻录一个草稿 CD-R,将其展示给与活动相关的其他人,获得反馈并根据反馈进行调整。在这里,我们擦除过去的工作,设置交换空间,然后从当前的 CD 镜像复制到硬盘驱动器。

su
mount -o rw /dev/hda1 /mnt/hda1
cd /mnt/hda1/source
rm -rf *
cd /mnt/hda1/master
rm -rf *
cd /mnt/hda1/knx
rm knoppix.iso
mkswap swap
swapon swap
cp -Rp /KNOPPIX/* /mnt/hda1/source
cp /cdrom/index.html /mnt/hda1/master
cd /cdrom
mkdir /mnt/hda1/master/KNOPPIX
find . -size -1000000 -type f -exec cp -p --parents {} /mnt/hda1/master/ \;

您现在可以开始自定义您的安装了。以下步骤按主题分隔,因此您可能希望跳过某些部分。

从艺术作品开始,即启动画面和壁纸。对于壁纸,几乎任何尺寸与您的屏幕大小相同的 PNG 图像(1024 x 768 或 800 x 600)都可以。许多图形程序使您可以轻松地将 .jpg 文件转换为 .png 文件,包括流行的免费程序 The GIMP。将此图像保存在支持机器上,命名为 knoppix.png。

启动画面需要采用特殊的 640 x 400 16 色格式。如果您决定使用 Macromedia 的 Flash 程序,您需要在启动画面中注明他们的版权。因此,创建一个简单的 640 x 400 图像,颜色少于 17 种,并将其以 .bmp 格式保存在支持机器上,命名为 startup.bmp。

接下来,从支持机器下载图像文件,并将启动图像转换为您稍后需要的格式

cd ~knoppix
lftp -u <<support box userid>>,<<support box password>> <<support box ip
number>>
get startup.bmp
get knoppix.png
exit
bmptoppm startup.bmp | ppmtolss16 >logo.16

接下来,进入启动文件系统并发出以下命令

cd /mnt/hda1/master/boot/isolinux
mv ~knoppix/logo.16 .
chmod 744 logo.16

下一步是编辑在徽标下方显示的文件 boot-en.msg 中的文本。忽略前两行——它们包含加载徽标图像的代码——并确保第三行和第四行少于 80 个字符。覆盖只读警告,保存文件并退出。

要替换壁纸,请输入

mv ~knoppix/knoppix.png /mnt/hda1/master/KNOPPIX/background.png

您现在可以编辑 /mnt/hda1/master/boot/isolinux/isolinux.cfg。在 isolinux.cfg 中,您需要编辑第一个和第二个APPEND行。如果您想要 800 x 600 的默认屏幕,请将 VGA 值更改为vga=788。之后,插入命令screen=800x600。如果您想使用 IceWM,则插入desktop=icewm在 vga= 命令之后。最后,在文件末尾,删除一些 # 字符,使最终文件的大小不大于您开始时的大小。覆盖只读警告,保存文件并退出。

由于压缩的特殊性,您可能会遇到这样一种情况:在不添加或删除软件的情况下,您可能会发现自己拥有一个过大的文件系统。因此,使用以下命令删除不需要的软件

chroot /mnt/hda1/source
dpkg -P <<name of an unneeded package>>

容易删除的目标包括游戏、KDE、服务器和高端办公软件,例如 openoffice-de-en。同样容易删除的是选定的语言文件,例如 kde-i18n-xx,其中 xx 代表不需要的国家代码。完成后,按 Ctrl+D 退出 chroot。

如果您需要添加软件包,请输入

chroot /mnt/hda1/source
wget <<url and name of required package>>
mv <<package name>> /mnt/hda1/source
dpkg -i <<name of previously downloaded required package>>
rm <<name of now installed package>>

完成后,按 Ctrl+D 退出 chroot。请记住,对于添加的任何内容,您必须删除更大的内容。

如果您在 chroot 下执行了任何操作,则会留下历史记录文件。要删除该历史记录文件,请输入

rm /mnt/hda1/source/root/.bash_history
touch /mnt/hda1/source/root/.bash_history
chmod 600 /mnt/hda1/source/root/.bash_history

现在,启动 Mozilla,编辑书签,将默认主页设置为活动主页,并调整默认设置。这些更改存储在 RAM 磁盘上。要将它们移动到硬盘驱动器,您需要输入

cp -r ~knoppix/.mozilla/knoppix/ujixazk6.slt/*
/mnt/hda1/source/etc/skel/.mozilla/knoppix/ujixazk6.slt
chmod -R 644 /mnt/hda1/source/etc/skel/.mozilla/knoppix/ujixazk6.slt/*

现在是添加 Flash 插件的时候了。在满足某些条件的情况下,如此处所述,您可以随您的自定义 Knoppix 光盘分发 Flash 副本。您需要注明 Macromedia 的版权,并向该公司发送两份您所做工作的副本。假设您可以接受 Macromedia 的条件,以下是安装 Flash 的步骤。在您同意 Macromedia 的条件后,将 Linux 安装包下载到 /home/knoppix。从那里,输入

cd /mnt/hda1/knx
mv /home/knoppix/install_flash_player_7_linux.tar.gz .
tar -xvzf install_flash_player_7_linux.tar.gz
cd install_flash_player_7_linux
./flashplayer-installer

在安装程序期间,系统会询问您要将 Flash 安装在哪里。答案是

/mnt/hda1/source/usr/lib/mozilla

您现在可以删除安装包

rm *
cd ..
rmdir install_flash_player_7_linux
rm install_flash_player_7_linux.tar.gz

参加您活动的访客很可能会查看 PC 上的时间,并期望 PC 时钟是正确的。在 /usr/share/zoneinfo 中查找您计划举办活动的时区的名称。例如,如果活动计划在加拿大曼尼托巴省的温尼伯举行,目标时区应为 Canada/Central。如果活动在华盛顿州西雅图举行,目标时区应为 US/Pacific。访问 ntp.isc.org 以获取靠近活动地点且欢迎访客的辅助时间服务器的 IP 地址。

如果您的路由器具有内置 NTP 服务器,请将该路由器设置为使用时间服务器,并将您的计划的时间服务器设置为路由器的地址。无论您的时间服务器在哪里——路由器还是活动场所之外的站点——创建文件 /mnt/hda1/source/etc/rc5.d/S99timesetup 并插入以下内容

#!/bin/bash
ln -sf /usr/share/zoneinfo/<<target time zone>> /etc/localtime
ntpdate -s -u <<name of the planned timeserver>>

要完成时间服务器程序,请输入

chmod 755 /mnt/hda1/source/etc/rc5.d/S99timesetup

如果您创建的 CD-ROM 可能被放入运行 Windows 的机器中,您可能需要编辑文件 /mnt/hda1/master/index.html 并将 Knoppix 信息替换为有关您的活动的信息。否则,请输入

rm /mnt/hda1/master/autorun.*
rm /mnt/hda1/master/index.html

现在软件已组装完毕,您可以创建压缩文件系统

cd /mnt/hda1/source
mkisofs -R -U -V "KNOPPIX.net filesystem" -publisher "KNOPPIX
www.knoppix.net" -hide-rr-moved -cache-inodes -no-bak --pad
/mnt/hda1/source | nice -5 /usr/bin/create_compressed_fs - 65536 >
/mnt/hda1/master/KNOPPIX/KNOPPIX

在上述过程中,您可能会收到并可以忽略一条警告消息,指出该文件系统不是 ISO-9660。这是一个缓慢的步骤;在 Pentium III 450 上大约需要一个小时。通过在-b之后插入create_compressed_fs,可以实现稍微更好的压缩率,但压缩时间会更长。

接下来,创建一个完整的 CD

mkisofs -pad -l -r -J -v -V "KNOPPIX" -no-emul-boot -boot-load-size 4
-boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat
-hide-rr-moved -o /mnt/hda1/knx/knoppix.iso /mnt/hda1/master

从这里使用 lftp 将生成的文件移动到支持机器上,以便刻录到 CD-R 上。

除了制作 Knoppix CD-ROM 之外,在创建网络休息区时还必须考虑其他问题:残疾人士、合法性、房间布局、电源、路由器设置、人员配备和无线连接。与高级活动组织者讨论任何针对残疾人士的特殊要求。

拜访律师是一个明智的主意,询问有关残疾人士和休息区规则的问题。您在法律上被要求为帮助残疾人士做出哪些规定应该是您的首要问题。律师所说的和活动组织者所说的,以最高标准为准。其次,询问有关房间规则。您希望明确说明人们使用休息区风险自负。如果休息区中的某人做了非法和/或不道德的事情,您和活动人员不希望承担法律责任。为了限制机器损坏的风险,请让食物和饮料远离机器。在您的规则表中,您可能还需要保留移除任何您认为造成干扰的生物(人类、动物或其他)的权利。正确措辞规则很容易就值得您花时间拜访律师的成本。

如果您可以选择位置,请选择满足残疾用户需求的位置,尽可能位于活动的中心位置,易于访问电源插座,并且已经到位某种高速互联网连接。如果您的活动在地理位置上分散,请考虑一个或多个卫星网络休息区。

对于房间布局,请记住使电缆尽可能短且安全。一个大的矩形或其他封闭形状可以很好地工作,电缆在桌子内部运行,休息区访客在外部。这可以防止大多数电缆成为潜在的危险。这种设计还可以使交换机远离恶作剧,并为工作人员存放背包/包留下一个相当安全的地方。任何必须穿过地板的电缆都应覆盖厚布胶带,或者必须做出其他安排以确保它们不会成为危险。

您还需要检查机器的电源。在北美,您可能需要为台式 PC 加上显示器提供 7.5A 的功率——信息将印在电源上——或者您可能需要为某些笔记本电脑提供不到 1 安培的功率。在北美,一个标准的电路,可能支持多个墙壁插座,可以在 115 伏电压下提供高达 15A 的电流。因此,当您考虑每台 PC 和显示器 7.5A 的电流时,您每两台 PC 需要一个电路。或者您可能每 15 台笔记本电脑需要一个插座。为集线器、路由器和您计划在房间中放置的其他设备留出空间,并据此进行规划。如果电源不足,请致电电工,要么引入额外的电源,要么计划通过使用更节能的机器或减少机器总数来减少房间的功耗。在规划时,请记住电工可能需要相当长的提前期才能引入您需要的额外电源,因此请尽早在此过程中与他/她交谈。您最不希望发生的事情是人们因为断路器跳闸而无法发送电子邮件。

即使是构建一个简单的路由器(例如 Coyote Linux 盒),通常也不具有成本效益。自制路由器的问题在于它占用了其他准备工作的时间,并且处理故障需要做的不仅仅是拿着保修单跑到商店进行更换。因此,从一家具有慷慨的更换政策和营业时间长且位于活动地点附近的商店购买一台基本的商业路由器/DHCP 服务器。如果您要位于远离商店的地方,请购买第二台路由器并将其称为保险。

整理并遵循一份您将在活动中需要的物品的装箱单。包括鼠标垫、电源板、电源线、标牌以及休息区所需的所有其他小物件。

活动开始后,您需要为网络休息区配备人员,这可能意味着需要一个人回答有关如何启动 Mozilla 浏览器的问题。考虑一下当您需要外出用餐或使用洗手间等时,如何保持房间有人值守。世界科幻大会通常采用志愿者的 6-2-1 规则——每个人都必须获得至少 6 小时的不间断睡眠,至少两顿正餐以及每 24 小时至少一次淋浴/洗澡。对于在休息区工作的人员来说,这应该是一个好的起点。

使用 Knoppix,您可以为房间管理员进行五分钟的培训课程,在此期间,您可以向他们展示基本知识。告诉他们,如果出现问题或异常情况,只需重置机器即可,因为未使用硬盘驱动器。此外,考虑一下休息区的访客如何识别房间工作人员:名牌?特殊的帽子?特殊的外套?

对于大多数活动来说,802.11B 或 802.11G 无线访问值得考虑,因为您可能会有一些携带笔记本电脑的人想要使用此选项。我建议您设置一个基本的无线集线器,在其中设置 WEP 安全,然后在休息区和/或仅提供给活动参与者的出版物中发布适当的设置。这样,您的参与者可以在休息区内/附近使用无线网络,但并非所有公众都可以访问您的网络连接。

除此之外,Knoppix 是临时网络休息区的绝佳解决方案,尽情享受吧。

Colin McGregor (colin@mcgregor.org) 在多伦多地区的一家慈善机构工作,业余时间做咨询,并曾担任多伦多自由网络的主席。他还曾在多伦多 Linux 用户组会议上发表演讲。他喜欢参加科幻大会,即使不总是参与工作。

加载 Disqus 评论