高中时──那时我家附近购买一片2G的SD卡还需要50元──我就想在U盘上构建一个能启动计算机的系统。这是一个很酷的主意:想开机?先插入一张卡片吧。

进而想到,如果这个系统在启动之后,可以把U盘拔掉,就更酷了。如果我把系统玩坏了,直接重启一个就好。而且一般情况下,我甚至不一定需要硬盘。这样我的系统就完全把它的数据放在内存中。任何时候,只要关闭计算机,所有的隐私就都没了。

这个目标我正在用Slax实现。这是一个安装起来非常简单的操作系统:

安装

首先,下载Slax-6.1.2 for USB,这个百度一下就能找到。文件大约有200MB。

在Windows下,解压后应该能看到两个目录:boot和slax。

准备一张U盘,大于512MB的比较好。我用8G的,这样可以存很多模块。格式化成FAT32。

将解压后的两个文件夹放进U盘。

然后,在“开始”>“运行”中,输入cmd回车,启动命令行。进入U盘的boot下,运行bootinst.bat,就自动设定U盘的MBR。注意阅读提示!确定是设定U盘的MBR!

当提示“… should be bootable now.”的时候,就可以了。

关于使用你的系统

现在如果重启,你的U盘应该就可以引导了。当然别忘了设置BIOS的选项。

但是先等下!

重启后引导,你应该会看到Slax的LILO给出的选项。如图。

Options at LILO

解释一下各个选项的意义:

  • Slax Graphic Mode(KDE) 以图形界面方式进入。这是默认方式。修改视情况可能保存在U盘上。这种引导不能拔掉U盘。
  • Slax Always Fresh 不能拔U盘。这次的修改不会被保存。
  • Slax Copy To RAM 将Slax拷贝到内存运行。引导后可以拔掉U盘。但是对于一些计算机可能出现问题。
  • Slax Text Mode 引导到文本界面。默认root密码是toor,进入后也许可以用startx命令进入图形界面。
  • Slax as PXE Server 将Slax以图形界面启动,作为PXE服务器,可以带起局域网的其他计算机启动,如果那些计算机的BIOS支持并且使用了网络引导的话。 其他选项我没用过,不能解释。

如果你想在启动之后拔掉U盘,请使用Slax Copy To RAM模式。但是这种模式可能遇到一些问题。我遇到的一个是卡在EDD Probing什么的步骤上了。为了解决这个问题,请在其他操作系统上预先修改U盘/boot/slax.cfg这个文件:

  1. 找到LABEL copy2ram这一行,向下看,寻找最近一行开头是KERNEL
  2. 在KERNEL这一行末尾,加空格,然后加上参数: edd=off
  3. 保存文件

这似乎可以解决。

个性化你的系统

开机界面

用自己的图片替换slax/slax.png这个图片吧。配色什么的,修改boot/slax.cfg

模块化

没有汉化的slax甚至连汉字目录都不一定认识。另外也没有中文输入法。幸好,Slax有一种简单的模块设计,让我们可以快速地修改。

模块是一些小的文件,后缀为.lzm,其实包含的就是一些按照一定结构存储的文件数据。在引导时,这些文件被拷贝到系统中,就直接实现了修改。

模块在slax/baseslax/modules中。第一个目录中的模块似乎应当按照顺序数字命名,因为在加载模块时它们是按照顺序依次加载的。第二个目录中则不必如此,它里面的模块是在第一个目录中的模块都加载之后进行的。

为了汉化,到slax.org这个官网中下载一些模块即可。后文将介绍具体哪些模块。

一些可能必要的程序

我在自定义过程中,自己寻找了一些模块,也打包了一些。记录一下。

  • 关于Python 我需要在Slax上运行自己的用Python+Tkinter开发的程序。但是Slax默认是连Python都没有的。安装Tkinter也很麻烦。幸好我找到了一个把这两个放在一起的Python模块,Python版本是2.6.4 。
  • 关于python-m2crypto 为了那些有需要的朋友:这个模块我是自己在slax上编译后打包的。Python自带OpenSSL 0.9.8i。
  • 关于火狐 默认是3.5,现在火狐都出到16.0.2了。自己打包。

自己的配置文件如何处理?

  1. 打包成lzm,开机时载入 为了修改一个包:

    1. `lzm2dir somepackage.lzm`
    2. `cd somepackage/`,进入修改
    3. 重新打包:`cd ..; dir2lzm somepackage/ anotherpackage.lzm`
    

    打包很简单: 1. mkdir package/ 2. cd package 3. 自己建立各种内容。现在package/就相当于以后启动时的/ 4. cd .. 5. dir2lzm package package.lzm

  2. 少数文件,我建议放在slax/rootcopy下。这个目录就相当于启动后的/。放在里面的文件会对应地拷贝。SSH密钥等我都放在这里。

我的base和modules目录

下面的列表,(如果可以)点击可以找到相应的下载位置。下载到的文件可能需要重命名为列表中的名字。注意扩展名:.lzm。注意我后面可能加注释。

slax/base/

001-core  #下载包可能自带
002-101-glibc-i18n-2.7-noarch-17
002-102-kde-i18n-zh-cn-3.5.10-noarch-1
002-xorg  #下载包可能自带
003-desktop  #下载包可能自带
004-kdeapps  #下载包可能自带
005-koffice  #下载包可能自带
006-devel  #下载包可能自带
008-zh-cn-utf8
009-zh-cn-utf8-dispinput
050-001-swig
050-002-M2Crypto0.21.1-py2.6
050-003-python2.6-libs
100-001-001-firefox-16.0.2-core
100-001-002-firefox-16.0.2-plugins
100-001-003-firefox-16.0.2-customize
100-002-putty-0.60
100-003-python-2.6.4-tcltk8.5.8
100-004-gparted-0.5.2
100-005-truecrypt-7.0

slax/modules/

curl-7.19.2-1
git-1.6.0.3-i486-1
gpg-2.0.9-i486-1
kgpg-3.5.9-2
libksba-1.0.3-1
sim-0.9.5
sim-data-0.9.5
xi-system  # 尚未彻底完成

3 条评论

HMX 2012 年 11 月 21 日 21:04

手动斜个眼 ————————————————————————– HMX 2012 年 11 月 21 日 21:14

尼玛的在SB度上搜索Slax-6.1.2 for USB第一个出来的竟然就是NEO大叔的实验室= =…… ————————————————————————– wangyonghe1995 2012 年 11 月 23 日 16:49

蹭机专用^-^