当前位置:操作系统 > Unix/Linux >>

Slax本土化:移动硬盘上的Linux中文套件

Slax是一个基于Slackware而形成的套件,它的主要用途是Linux桌面应用,而且支持LiveCD和LiveUSB.它预装的是 Kde3.4.1和KWord(KOffice中的字处理器).它的桌面简洁大方,速度很快.又十分方便.所以我将用它来实现一个中文化的U盘Linux 套件.

  1.U盘启动的方式选择

  U盘的启动方式有许多种,其中主要有[USB-HDD], [USB-FD], [USB-CDROM].对于我的IBM 40GB移动硬盘来说, [ USB-HDD]是正确的.大家知道,硬盘有分区表,而软盘没有分区表.而[USB-HDD]方式就是从U盘分区表中读出引导记录从而完成启动.所以,大多数的U盘应选择[USB-HDD]方式启动.

  2. 如何从U盘启动

  我选择syslinux而不是lilo或grub.经过我的个人的兼容性测试,lilo不能在相当一部分计算机上成功引导,而grub似乎完全不能从 USB上工作.于是我选择了syslinux,一个工作在FAT16上的引导器.

  注意:syslinux 不能工作在FAT32的分区上,而且分区大小不能超过128M.原因是多数计算机BIOS使用的INT13调用不能处理超过一定大小的分区.于是我的移动硬盘就如此分区:第一个分区(SDA1)只有128M,而且是 FAT16.第二个分区(SDA5)和第三分区(SDA6)就有20G.

  这是分区的详细信息:

  代码:

  Device Boot Start End Blocks Id System

  /dev/sda1 * 1 13 104391 6 FAT16

  /dev/sda2 14 4863 38957625 f W95 Ext'd (LBA)

  /dev/sda5 14 2435 19454683+ b W95 FAT32

  /dev/sda6 2436 4863 19502878+ b W95 FAT3

  *安装方法

  在建立文件系统之后, syslinux /dev/sda1(Linux下要求解除挂载)或syslinux iWin98下i盘是第一个分区).

  在第一个分区/dev/sda1下建立一个SYSlinux.cfg内容如下:

  代码:

  prompt 1

  timeout 300 d

  isplay SYSlinux.msg

  default slax

  label slax

  kernel vmlinuz

  append root=/dev/ram0 rw initrd=initrd.gz init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 max_loop=255 nocd

  内容的意义就是使用vmlinuz和initrd.gz引导.另外你可自定义同目录下SYSlinux.msg的内容,这个信息将在启动时被显示:

  Welcome to Slax Chinese Version!

  3. 安装Slax

  从http://slax.lin ux-live.org/download.php下载Slax Standard Edition.这个版本里有KDE3.4,kmplayer,一个KDE的音频播放器和KWord,还有K征服者用来上网.

  典型界面

  1. 使用指令:"mount -o loop slax-5.0.6.iso /mnt/cdrom",把ISO文件挂载到/mnt/cdrom目录,进入/mnt/cdrom/boot目录,复制vmlinuz和 initrd.gz文件到/mnt/sda1(移动硬盘的第一个分区,以后省略说明).

  2. 在/mnt/sda5中建立目录slax,把/mnt/cdrom下所有文件和目录复制到/mnt/sda5/slax:cp -rf /mnt/cdrom/* /mnt/sda5/slax/

  这就完成安装.

  4.本地化

  先介绍下如何在Slax上安装自定义软件:

  Slax的SQUASHFS

  SQUASHFS是一个实行压缩的文件系统.Slax使用它来安装根目录.在base目录中,slax有一些基本的mo(SQUASHFS映象文件扩展名)文件.如KDE,X,基础库等等.如果你要查询哪个文件或哪个目录属于哪个mo文件,请到/mnt/live/memory查找(Slax自带).

  Slax提供了创建,修改和使用SQUASHFS module的方法.

  *创建模块

  *把Slackware的tgz安装包转换成mo:tgz2mo application.tgz application.mo

  *如果要在修改安装包之后建立模块:

  installpkg -root /tmp/package application.tgz

  进入/tmp/package进行修改,完成后制作模块:

  dir2mo /tmp/package module.mo

  *修改模块

  o 将模块释放到/tmp/directory

  mo2dir module.mo /tmp/directory

  o 修改完之后,创建模块

  dir2mo /tmp/directory module.mo

  *使用模块

  oSlax运行时挂载mo:

  uselivemod /path/module.mo

  o slax/modules目录中的mo文件将被自动挂载

  注意:SQUASHFS有时不太稳定,要特别注意避免如下几种情况:

  1. 太多层次的重叠.A文件被A.mo所拥有,新来的B.mo也有一个A文件把A.mo所覆盖.

  2. 太少的内存空间,mo挂载时需要内存,模块太多内存太少时 会导致一系统的问题.

  开始工作

  请参见Slackware的汉化工作,来做汉化工作,这里是一些不同点:

  Slax-5.0.6的一个BUG:/etc/profile.d/slax.sh自作聪明的加入export LC_ALL=c,删除它.

  下载firefly字体(http://cle.linux.org.tw/Slackware/s...11-noarch-1.tgz) 后,安装它,生成fc.cache和fonts.dir等等,等到万事具备时:

  代码:

  mkdir -p /tmp/package/usr/local/font

  cp -rf /usr/local/font/* /tmp/package/usr/local/font

  mo2dir /tmp/package /mnt/sda5/slax/modules/fonts.mo

  安装Xorg.6.8.2-firefly版本(下载地址:http://cle.linux.org.tw/Slackware/s...1.Firefly.tgz):

  代码:

  installpkg --root /tmp/package x11-6.8.2-i486-1.Firefly.tgz

  cd /tmp/package/etc/X11/

  cp /etc/X11/xorg.conf . # 把符合你显卡配置的xorg.conf复制到这里来

  cd /tmp/package

  mo2dir /tmp/package /mnt/sda5/slax/modules/xorg682.mo

  安装fcitx:

  tgz2mo fcitx.tgz /mnt/sda5/slax/modules/fcitx.mo

  安装kde-i18n-zh_CN-3.4.1-noarch-1.tgz(KDE中文化)

  http://ftp.cgu.edu.tw/Linux/Slackwa....1-noarch-1.tgz

  tgz2mo kde-i18n-zh_CN-3.4.1-noarch-1.tgz /mnt/sda5/slax/modules/kde.mo

  同样的方法,可以下载并安装XMMS,firefox,thunderbird等等.

  一些细节

  为了使KMplayer能播放RMVB,下载

  代码:

  http://www1.mplayerhq.hu/MPlayer/re...0050412.tar.bz2

  tar -jxvf essential-20050412.tar.bz2

  mv essential-20050412 /usr/lib/win32

  rm -rf /tmp/package

  mkdir -p /tmp/package/usr/lib/win32

  cp -rf /usr/lib/win32/* /tmp/package/usr/lib/win32

  dir2mo /tmp/package/usr/lib/win32 /mnt/sda5/slax/modules/codecs.mo

  这样KMPlayer就能完美播放各种各样的视频文件

  我的/etc/gtk/gtkrc.zh_CN文件:

  代码:

  style "gtk-default-zh-cn" {

  fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,

  -*-*-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-*"

  }

  class "GtkWidget" style "gtk-default-zh-cn"

  我的profile.d/lang.sh

  代码:

  export LC_ALL=zh_CN.gbk

  export G_BROKEN_FILENAMES=1

  export XMODIFIERS="@im=fcitx"

  自动启动fcitx

  在/root/.kde/Autostart/中加入文件fcitx.desktop,文件内容如下:

  代码:

  [Desktop Entry]

  Encoding=UTF-8

  Name=fcitx

  Name[zh_CN]=fcitx

  GenericName=输入法

  Exec=fcitx

  Icon=fcitx

  Type=Application

  Terminal=0

  X-KDE-StartupNotify=false

  X-KDE-AuthorizeAction=shell_access

  

上一个:Linux原始魅力之让古老的机器重获新生
下一个:新书推荐:Linux逻辑卷管理(LVM)

更多Unix/Linux疑问解答:
路由原理介绍
子网掩码快速算法
改变网络接口的速度和协商方式的工具miitool和ethtool
Loopback口的作用汇总
OSPF的童话
增强的ACL修改功能
三层交换机和路由器的比较
用三层交换机组建校园网
4到7层交换识别内容
SPARC中如何安装Linux系统(2)
SPARC中如何安装Linux系统(1)
用Swatch做Linux日志分析
实战多种Linux操作系统共存
浅析Linux系统帐户的管理和审计
Linux2.6对新型CPU的支持(2)
电脑通通透
玩转网络
IE/注册表
DOS/Win9x
Windows Xp
Windows 2000
Windows 2003
Windows Vista
Windows 2008
Windows7
Unix/Linux
苹果机Mac OS
windows8
安卓/Android
Windows10
如果你遇到操作系统难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,