Tiny Core Linux

作者:Joey Bernard

有几个项目声称是小型的、内存中运行的发行版。最流行的可能是 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)。

Tiny Core Linux

图 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 Linux

图 2. 点击“连接”后,将列出可供您使用的软件包。

Tiny Core Linux

图 3. 启动时,您会看到一个提示符,您可以在其中输入选项来控制系统设置。

还有许多其他选项可用。您可以在 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 Linux

图 4. 使用 GUI 应用程序可以更轻松地维护您安装的软件包。

如果您想制作定制的发行版,这些并不是唯一可用的方法。由于 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 位内核。

  • 启动和关机脚本。

  • 扩展安装。

Tiny Core Linux

图 5. 使用 ezremaster 的第一步是设置源文件和工作目录的路径。

Tiny Core Linux

图 6. 您可以设置默认启动代码,以节省您每次启动时额外的输入。

完成所有这些步骤后,继续执行“Remaster step #1”,在此步骤中创建新 ISO 的文件系统。完成该步骤后,继续执行最后一步“Remaster step #2”,在此步骤中创建实际的 ISO 镜像文件。它最终会出现在您在第一个屏幕中定义的临时目录中。现在,您已准备好向世界部署您出色的自定义 Linux 了。

请务必查看 Tiny Core 网站和 Wiki 以获取更多信息 (www.tinycorelinux.com)。在主站点上还有一个非常活跃的论坛,人们总是乐于回答问题。希望这个项目可以为您快速启动,为您的较小项目生成您自己的自定义发行版。

当 Joey Bernard 不在调试科学代码或解决大学集群上的问题时,他就在 refinishing 家具或和他的孩子们在后院玩耍。他可能会称自己为文艺复兴时期的人,但这听起来有点太自以为是了。就叫他一个全面的极客吧。

加载 Disqus 评论