Tiny Core Linux
有几个项目声称是小型的、内存中运行的发行版。最流行的可能是 Puppy Linux。Puppy 衍生出几个变种,我自己也在旧机器上使用过几次。但是,我发现了一个完全让我震惊的发行版——Tiny Core Linux。这个发行版完全是另一种不同的东西,填补了我认为至今尚未填补的类别。
首先,Tiny Core 非常小——真的 很小。完整的桌面版本大约只有 10MB——这是一个完整的图形桌面。没有多少其他选择可以提供这样的东西。一定年龄的人可能还记得像 Tom's root/boot 或 muLinux 这样的项目。Tiny Core 介于那些较旧的基于软盘的项目和像 Puppy 这样“较重”的小型发行版之间。
除了这个完整版本,还有一个更精简的版本叫做 Micro Core,大小不到 7MB。这个版本为所有文本爱好者提供了命令行界面。Tiny Core 被设计为完全或部分从 RAM 中运行。这意味着系统可以非常快速和响应灵敏。您还可以设置系统,使其在每次启动时都重新加载,这大大降低了垃圾文件进入您系统的可能性。
要获取 Tiny Core,请将其下载为 ISO 镜像文件,可以刻录到 CD 或复制到 USB 设备。基本上,您可以将其放在任何可启动的设备上。当您启动它时,您会在几秒钟内获得完整的桌面——在我的 Mac 上的虚拟机中,它不到五秒钟(图 1)。
默认情况下,它为您提供一个窗口管理器 (flwm, Fast Light Window Manager)、一组自定义工具和一个终端 (aterm)。其他一切都以可安装软件包的形式提供,使用其自己的自定义软件包系统,称为 AppBrowser(图 2)。在撰写本文时,有 3,170 个软件包可用。软件包在不断添加,并且有非常清晰的关于如何创建和添加您自己的软件包的说明。
当您启动 Tiny Core 时,您最初会被转到启动提示符(图 3)。如果您什么都不做,它会超时并将您放在桌面上。但是,您可以使用启动代码,其形式为tinycore option1 option2 ...。其中一些启动代码包括
tce={hda1|sda1}— 指定恢复 TCE 应用目录。
waitusb=X— 等待 X 秒以连接慢速 USB 设备。
swapfile{=hda1}— 扫描或指定交换分区。
base— 跳过 TCE 并仅加载基本系统。
xsetup— 提示用户进行 Xvesa 设置。
text— 以文本模式启动。
{cron|syslog}— 在启动时启动各种守护进程。
host=XXXX— 将主机名设置为 XXXX。
noautologin— 跳过自动登录。
desktop=xyz— 使用备用窗口管理器。
还有许多其他选项可用。您可以在 Tiny Core Wiki 上找到它们,或在启动期间列出它们。默认情况下,您会自动以用户 tc 身份登录,并最终进入以 flwm 作为窗口管理器的桌面。
Tiny Core 的一个特点是,每次启动都会获得一个全新的系统。但是,如果您想在重启后保存设置怎么办?您有哪些选择?在 Tiny Core 中,您可以选择在关机时备份任何必要的文件,并在启动时自动恢复它们。这些文件会保存到文件 mydata.tgz 中。默认情况下,系统会保存 /home/tc 下的所有文件和目录。
您可以使用文件 /opt/.filetool.lst 和 /opt/.xfiletool.lst 来控制实际备份和忽略的内容。.filetool.lst 文件中,您可以添加要包含在备份中的任何文件。.xfiletool.lst 文件包含要从备份中排除的文件列表。这个备份的 home 目录驻留在 RAM 中,因此如果您的 home 目录中有很多文件,它们将占用宝贵的 RAM。此外,随着您的 home 目录变得越来越大,启动和关机时间也会随着这些文件的备份和恢复而增加。
另一个选项是创建一个持久的 home 目录。您可以使用启动代码告诉 Tiny Core 在哪里找到它home=xxx,其中 xxx 是存储您的 home 目录的设备分区(例如,sda1 表示第一个驱动器上的第一个分区)。如果您想将 home 目录放在子目录中,您可以这样输入
home=xxx/yyy
where yyy is the subdirectory name.
这为您提供了一个非常快速的基本桌面,对于日常使用来说已经足够好了。但是,如果您想针对某些特殊情况调整发行版怎么办?为了弄清楚如何个性化它,让我们退后一步,看看 Tiny Core 是如何组合在一起以及如何工作的。然后您将看到如何更改系统以适应您的应用程序。
系统的核心部分存储在一个压缩的文件系统中,该文件系统会被复制到 RAM 中。默认情况下,任何额外的应用程序都会从它们存储的位置作为环回设备挂载。如果您愿意,可以选择将它们与核心系统一起实际复制到 RAM 中。这种“从 RAM 运行”系统的优点是,一旦系统完成启动,您就可以移除存储介质。
在第一种情况下,假设您的系统从您不需要移除的 USB 设备启动。然后,您有两种设置系统的方式。第一种是挂载模式,即在 USB 设备上创建一个名为 tce 的目录。在这个目录中,您可以放入所有您希望可用的应用程序的软件包。然后,这些软件包会被挂载为环回设备。您可以使用一个名为 appsaudit 的实用程序来维护这些软件包。您可以选择在启动时挂载这些软件包,也可以选择“按需”挂载它们(图 4)。另一种选择称为复制模式。在复制模式下,Tiny Core 实际上会获取软件包文件的内容并将它们全部复制到 RAM 中。这会花费更多的启动时间,但是一旦所有内容都启动,整个系统又会从 RAM 运行,因此您会获得预期的加速。实际上,您可以通过配置文件 copy2fs.lst 单独控制哪些软件包被复制到 RAM 中。系统可以使用此文件来决定复制和挂载哪些内容。
如果您想制作定制的发行版,这些并不是唯一可用的方法。由于 Tiny Core 采用 GPL 协议,您可以获取源代码并随意修改。您实际上可以重新制作 ISO 镜像文件,以添加应用程序所需的任何额外软件包。在 ISO 镜像文件中,有一个名为 tinycore.gz 的 gzip 压缩 cpio 归档文件。该文件包含 Tiny Core 启动时挂载在 RAM 中的核心文件系统。您可以在任何 Linux 机器上完成这项工作,甚至可以在 Tiny Core 中完成。如果您想在 Tiny Core 中完成它,您需要在开始之前安装几个额外的软件包:advcomp.tcz 和 mkisofs-tools.tcz。一旦您拥有了所有需要的工具,您就可以挂载 ISO 镜像文件
sudo mount tinycore.iso /mnt -o loop,ro
其中 /mnt 是您要挂载的目录。您还需要一个目录,您可以在其中提取 Tiny Core 文件系统,对于本文,我们将其称为 /temp/extract。要获取文件,您需要执行以下操作
cp -a /mnt/boot /temp cd /temp/extract zcat /temp/boot/tinycore.gz | sudo cpio -i -H newc -d
完成此命令后,您可以继续更改文件、添加新文件或删除其他文件。这样,您可以将额外的二进制文件(例如用于销售点应用程序的二进制文件)直接添加到系统中。如果您想能够处理特殊硬件,需要新的内核模块,您可以将其添加到文件系统中。但是,您需要运行此命令
sudo depmod -b /temp/extract 2.6.29.1-tinycore
您可能还需要添加新的共享库,以支持您安装的任何新二进制文件。如果您这样做,请运行此命令
sudo ldconfig -r /temp/extract
一旦您完成了为 Tiny Core 创建个性化文件系统,您需要使其准备好使用。第一步是将文件系统重新打包成 gzip 压缩的 cpio 归档文件。运行以下命令
cd /temp/extract find | sudo cpio -o -H newc | ↪gzip -2 > /temp/tinycore.gz cd .. advdef -z4 tinycore.gz
这将为您提供一个全新的核心文件。如果您使用的启动系统不是 CD(例如某种形式的硬盘驱动器),您只需将 tinycore.gz 和内核复制到该设备即可。
如果您想创建一个可以反复使用的新 ISO 镜像文件,请执行以下命令
cd /temp mv tinycore.gz boot mkdir newiso mv boot newiso mkisofs -l -J -R -V TC-custom -no-emul-boot \ -boot-load-size 4 -boot-info-table \ -b boot/isolinux/isolinux.bin \ -c boot/isolinux/boot.cat -o TC-remastered.iso newiso rm -rf newiso
您现在有了一个很棒的新 ISO 镜像文件,可以投入使用了。
这类任务经常发生,因此 Tiny Core 团队开发了一个 GUI 应用程序,名为 ezremaster,以帮助简化这些步骤。使用 AppBrowser 安装它。这样,所有必需的依赖项也将被安装。您还需要有可用的 ISO 镜像文件或已挂载的 CD。完成所有这些步骤后,打开终端并运行ezremaster从命令行,您应该会看到图 5 中显示的内容。在这里,您可以将其指向它需要的位置,您应该最终看到图 6 中显示的内容。从那里,您可以设置各种选项来自定义您的 ISO 镜像文件。可用的部分是
启动代码。
显示设置和 mydata.tgz 备份。
安全设置和用户。
您想要启用哪些服务?
网络设置。
窗口管理器、核心元素和 Xorg 设置。
ISOLINUX 设置和 64 位内核。
启动和关机脚本。
扩展安装。
完成所有这些步骤后,继续执行“Remaster step #1”,在此步骤中创建新 ISO 的文件系统。完成该步骤后,继续执行最后一步“Remaster step #2”,在此步骤中创建实际的 ISO 镜像文件。它最终会出现在您在第一个屏幕中定义的临时目录中。现在,您已准备好向世界部署您出色的自定义 Linux 了。
请务必查看 Tiny Core 网站和 Wiki 以获取更多信息 (www.tinycorelinux.com)。在主站点上还有一个非常活跃的论坛,人们总是乐于回答问题。希望这个项目可以为您快速启动,为您的较小项目生成您自己的自定义发行版。
当 Joey Bernard 不在调试科学代码或解决大学集群上的问题时,他就在 refinishing 家具或和他的孩子们在后院玩耍。他可能会称自己为文艺复兴时期的人,但这听起来有点太自以为是了。就叫他一个全面的极客吧。