虽然 Slackware Linux 12.1 已经出来了 ,但对于我这个懒人也懒得去折腾。前几天有台 Windows 服务器被换下,在我的忽悠下管理员答应安装 Slackware 试试看,于是揣着我心爱的移动硬盘去了冬暖夏凉的 IDC 机房。

服务器没有光驱(有我也不会用),加上硬盘安装是最快的,所以没有理由不用硬盘安装。在硬盘安装 Slackware 之前,先说说本人对于 Slackware 包机制的理解。

众所周知,Slackware 的包机制其实就是 tgz 压缩包。其实按照我个人的理解,如 installpkg 这样的程序也就是个 Shell 脚本,软件的安装除了在 /var/packages 下生成已安装的软件版本以外,就不会生成别的东西;删除某个包也是类似的操作,脚本根据文件列表删除文件,作其他任何的修改。

如此的包机制,是不会校验某个软件的库依赖机制的。但就是因为这点,Slackware 在保持 了系统足够 KISS 的同时,把更多的工作交给了用户。这也意味着为什么 Slackware 不适合新手的原因,因为他们不知道将要安装的包需要哪些运行库。

言归正传,从 Slackware 的包管理机制就可以理解 Slackware 的安装过程。首先它会从安 装光盘引导各基本的内核,通常是 /isolinux/kernel 然后此内核载入 initrd 文件,引导 系统并提供给用户 Shell 接口。顺便提一下, Busybox 是个好东西,目前 Slackware 安装环境中的大部分程序都是它的映射。

然后,在引导完基本的安装环境以后,用户执行一系列的操作(分区、格式化、配置),最后安装脚本(注意,不是程序),开始最漫长的一步,就是解压缩软件包至指定的安装路径,这就是我们通常所说的安装软件包。最后是配置相应的服务等等,这并没有不同的地方。

似乎废话有点多,根据上述所言硬盘安装最重要的两个步骤就是:如何去引导安装环境,以及去何让脚本知道软件包的位置。解决这两步,硬盘安装基本上就没有什么大的问题了。

首先,我们解决如何引导安装环境。默认的 Slackware 系统还是交给 lilo 引导(「迂腐」的 Volkerding ),个人更喜欢使用 grub 。根据上述的环境,我已经有了现成的 Windows 系统,所以先下载了份 grub for DOS ,然后让 Windows 引导 grub ,再让 grub 引导内核。

这里需要两个文件从 iso 镜像中解压出来,一个就是内核,这个当然不用说;还有一个就是 initrd,它包含了安装环境需要的脚本等等。grub 引导完毕以后,指定内核和 initrd 文件,然后引导(详细步骤在参考文档中指出)。

grub> kernel (hd0,0)/bare.i
    注,Slackware 还提供了其他几个内核镜像
grub> initrd (hd0,0)/initrd
grub> boot

这样,基本的安装环境就引导完毕了。下面可以执行在安装软件包前的一系列操作。

安装软件包前需要制定软包的位置,在 选择安装源(Source Media Selection)这个步骤中,我选择 Install from a pre-mounted directory ,手工指定安装路径。当然,再次之前得把这个 iso 文件给 mount 进来。

# mkdir /target /iso 
    注,不要重名就可以
# mount /dev/sda1 /target 
    注,/dev/sda1 是移动硬盘的相应分区位置
        可以通过查看内核输出获得

然后在可以读取 iso 文件的前提下,再 mount 这个镜像文件到另外一个目录

# mount -o loop /target/slackware-12.1-dvd.iso /iso

切换回到 setup 安装程序(ALT + F1),指定安装源为 /iso/slackware 即可继续完成安装操作。

至于引导器方面,如果没有用多系统,个人认为 lilo 已经能够满足日常的应用了。grub 有更多的选择,但是有时会有不必要的安全问题,请根据实际情况选择。

最后,有关详细的安装步骤,可以 参考 LinuxSir 上面的篇文章

PS:我的移动硬盘容量太少了,尤其是放了 Slackware 安装镜像(舍不得删)和几部「电影」(更舍不得删)以后更是捉襟见肘。哪位兄弟有实惠的移动硬盘推荐?