文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>自己动手制作Knoppix中文版

自己动手制作Knoppix中文版

时间:2007-02-17  来源:PHP爱好者

一、简介
下文将介绍如何定制一张中文版的Knoppix。主要步骤:


  • 准备足够的硬盘空间和交换分区
  • 将Knoppix光盘上的那个大大的压缩文件KNOPPIX拷贝出来,并解压缩
  • 根据自己的需要,添加/删除软件
  • 添加中文显示和输入支持
  • 重新压缩KNOPPIX
  • 制作光盘镜像iso文件

二、准备工作

1) 准备软件

   从www.knopper.net/knoppix 获得最新光盘影像文件,本文使用的是KNOPPIX_V3.3-2003-09-24-EN.iso。

2) 准备硬件(建立硬盘分区)

   由于要建立压缩的文件系统(compressed file system),需要空间较大的交换分区(swap space),最少1GB空闲RAM+Swap (比如256M内存和750M的swap) ,推荐建立2G的swap分区。(创建压缩文件系统时要用到。如果交换分区太小,会报错);3 GB 空闲的Linux分区(ext2/3, xfs等都可以)。

三、操作步骤:
1) 打开一个shell,使用 su 命令获得root用户的权限。下面所有命令都是在这个root shell 里面运行的;

2) 配置您的Internet连接(稍后要用到) ;

3) 确定用来工作的分区。在本例中,是hdb2。该分区至少要有3G空间;

4) 加载该分区:

mount -o rw /dev/hdb2 /mnt/hdb2 (如果不照做,你可能会在chroot环境工作时遇到麻烦) ;

5) 创建一个用来工作的目录: mkdir /mnt/hdb2/working (把所有文件放在这里,用完可以方便地删除) ;

6) 如果你没有1 GB 内存, ( cat /proc/meminfo (物理内存+swap)) 那么您需要一个swapfile:
cd /mnt/hdb2/working ; dd if=/dev/zero of=swapfile bs=1M count=750 ; mkswap swapfile ; swapon swapfile ;

7) 创建 2 个目录,一个用于存放我们的新CD(NewCD),一个用于存放现有CD的内容(OLD):
mkdir /mnt/hdb2/working/NewCD; mkdir /mnt/hdb2/working/OLD ;

8) mkdir /mnt/hdb2/working/OLD/KNOPPIX ;

9) 您可以不用光盘启动,而直接mount下载得到的iso文件,然后把光盘上/KNOPPIX/KNOPPIX文件复制出来:


  • mkdir /mnt/iso
  • mount -o loop -t iso9660 KNOPPIX_V3.3-2003-09-24-EN.iso /mnt/iso
  • cp /mnt/iso/KNOPPIX/KNOPPIX /mnt/hdb2/working
  • 再Mount压缩的KNOPPIX文件:

    • insmod cloop file=/mnt/hdb2/working/KNOPPIX 如果这一步出错,请看本文结尾处对cloop的描述。
    • mkdir /mnt/KNOPPIX
    • mount -o ro /dev/cloop /mnt/KNOPPIX

  • 复制knoppix源文件到您的工作目录(这可能得花点时间)

    • mkdir /mnt/hdb2/working/OLD/KNOPPIX
    • cp -Rupv /mnt/KNOPPIX/* /mnt/hdb2/working/OLD/KNOPPIX/

  • 卸载 /mnt/KNOPPIX

    umount /dev/cloop
  • 卸载iso文件,删除/mnt/hdb2/working/KNOPPIX

    umount /mnt/iso

    rm -f /mnt/hdb2/working/KNOPPIX

10) mkdir /mnt/hdb2/working/NewCD/KNOPPIX ;

11) cp /cdrom/index.html /mnt/hdb2/working/NewCD/ ;

12) 现在,复制 /cdrom/KNOPPIX/ 下面的所有内容到 /mnt/hdb2/working/NewCD/KNOPPIX/ ,除了那个接近700 Mb 的名字叫做KNOPPIX的文件。( cd /cdrom/KNOPPIX; find . -size -10000k -type f -exec cp -p --parents {} /mnt/hdb2/working/NewCD/KNOPPIX/ ; )

13) 现在您可以 "chroot" 到刚才复制的 KNOPPIX 中去: chroot /mnt/hdb2/working/OLD/KNOPPIX ;

14) 现在您已经处于chrooted环境中。 "/" 实际上是 "/mnt/hdb2/working/OLD/KNOPPIX" ;

15) 要使用Internet,您需要加载proc文件系统: mount -t proc /proc proc ,然后编辑 /etc/resolv.conf 添加您的nameserver;

16) 如果您需服务微软的工作组(通过samba),那么smb.conf也要修改 (通常,MSHOME是XP家庭版,WORKGROUP是Win9x);

17) 检查您的chrooted环境的Internet连接: ping google.com ;

18) 更新您的软件包列表: apt-get update ;

19) 现在您可以开始修改软件包,自己决定删除哪些,安装哪些;


  • 在安装或删除软件之前,您可以看一下目前已经安装了哪些软件:

    dpkg-query -l

  • 也可以让这个列表以软件包的大小排序:

    dpkg-query -W --showformat='${Installed-Size} ${Package}n' | sort -n

  • 要删除一个软件包 (以及所有依赖于它的软件包),可以这样:

    apt-get remove <要删除的包的名字>

    我删除了这些:

    apt-get remove selflinux kde-i18n-{tr,pl,cs,ja,nl,ru,it,da,es,de,fr}

    其中,selflinux 是一套德文的Linux文档,kde-i18n-* 是其他国家的kde本地化文件。这些文件占用大约200M硬盘空间。

    检查“孤儿”软件包,这样:

    deborphan

    要想通过删除那些孤儿(多残忍!)腾出更多空间,可以这样:(警告,系统不会提示 yes/no ,当您在这条命令后面敲完回车,那些软件就没了):

    deborphan | xargs apt-get -y remove

    如果您觉得上面这条命令不太保险,想在不改变系统的情况下看看会发生什么,只要加一个 -s 参数 (您可以在所有的 apt-get命令中使用这个参数,这是个好习惯):

    deborphan | xargs apt-get -s -y remove

  • 现在,如果您要安装软件,用命令:

    apt-get install <要安装的软件名称>

    当然您最好事先设置离自己最近的apt源(把原来的/etc/apt/sources.list备份一下,完成后再恢复),我用的是:

    deb http://www.zentek-international.com/mirrors/debian/debian main non-free contrib

    另外,apt-get可以使用代理服务器,修改 /etc/apt/apt.conf,添加一行:

    Acquire::http::proxy "http://yourproxy:yourport/"; (注意最后面必须用“;”结束)

    我就安装了两个软件包:

    apt-get update

    apt-get install kde-i18n-zhcn fcitx

  • 什么,不知道要安装哪些软件?用下面的命令。 当列表出现,您可以仔细看看(超过13000行!):

    apt-cache search .* | sort | less

  • 如果删除和添加软件的工作完成了,清理现场的好方法是:

    COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P

    当然,因为Debian的APT系统将下载的包做了cache,您可能想用下面的命令清除这些文件:

    apt-get clean

  • 用户设置在 /etc/skel


20) 中文化定制(这一节内容较集中,单独拿出来在后面写);

21) 卸载 /proc -- 非常重要!


  • 更新文件列表库:

    updatedb

  • 更新菜单:

    update-menus

  • 删除无用文件:

    rm /etc/*-

    rm /var/mail/*

  • 删除根目录下的 .bash_history, .viminfo, .rr_moved等文件和目录:

    rm -Rf /.bash_history /.rr_moved /.viminfo

  • 卸载(unmount)proc(不能忽略):

    umount /proc


22) 按 CTRL+D 退出chrooted环境。

注意:
1) 如果您想自动运行一些程序,可以在 /etc/rc5.d/ 目录下创建脚本(这写脚本在 X 启动前被运行)。

2) /etc/init.d/knoppix-autoconfig 里面的有趣东东:


  • X的背景图片是 /cdrom/KNOPPIX/background.gif

  • 和floppyconfig类似,有一个cdromconfig会运行cdrom/KNOPPIX/knoppix.sh


3) /etc/init.d/xsession 里面的有趣东东:

   它也设置背景为 /usr/local/lib/knoppix.gif

4) 现在,开始创建 ISO 文件:


  • 我们已经完成定制,要准备刻盘了!

  • 现在我们将制作KNOPPIX这个大文件,这是个cloop的压缩ISO9660文件系统:


    • cd /mnt/hdb2/working
    • mkisofs -R -U -V "Hiweed.com iso9660 filesystem" -P "Hiwix www.hiweed.com" -hide-rr-moved -cache-inodes -no-bak -pad OLD/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > NewCD/KNOPPIX/KNOPPIX

      其中,"www.hiweed.com" 和 "Hiweed.com filesystem" 您可以自己改。 可能会有错误报告说和ISO标准不一致,您可以忽略它。



5) 如果一切顺利,现在就开始制作光盘镜像了:


  • cd /mnt/hdb2/working/NewCD

  • rm -f KNOPPIX/md5sums; find -type f -not -name md5sums -not -name boot.cat -exec md5sum {} ; >> KNOPPIX/md5sums (这将更新新ISO的md5值,便于以后检查)

  • mkisofs -pad -l -r -J -v -V "KNOPPIX" -b KNOPPIX/boot.img -c KNOPPIX/boot.cat -hide-rr-moved -o /mnt/hdb2/working/knoppix.iso /mnt/hdb2/working/NewCD (把生成的ISO放在 /mnt/hdb2/working/knoppix.iso)

  • 完成!


技巧:
1) 如果您要查找已安装的大软件包,请使用该命令:

dpkg-awk "Status: .* installed$" -- Package Installed-Size| awk '{print $2}' | egrep -v '^$' | xargs -n2 echo | perl -pe 's/(S+)s(S+)/$2 $1/' | sort -rg

   这将以降序显示。

   下面的命令至少比上面的快10倍,而且你不用dpkg-awk 或者 awk 或者 perl:

dpkg-query -W --showformat='${Installed-Size} ${Package}n' | sort -n

四、中文化定制
   注意:以下所有步骤均在在chrooted environment下进行。

1) 安装中文字体

安装simsun.ttf 字体:


  • mkdir /usr/X11R6/lib/X11/fonts/ttf
  • cp /selfpkg/simsun.ttf /usr/X11R6/lib/X11/fonts/ttf
  • cd /usr/X11R6/lib/X11/fonts/ttf
  • ttmkfdir > fonts.dir
  • cp fonts.dir fonts.scale

2) 修改XF86Config文件


    vi /etc/X11/XF86Config-4.in

    在Section "Files"段加入:

    FontPath "/usr/X11R6/lib/X11/fonts/ttf"

    在Section "Module"段加入:

    Load "xtt"

    加#号注释掉freetype:

    #Load "freetype"


3) 安装OpenOffice中文支持


    cd /opt/openoffice/share/fonts/truetype

    建立字体文件软链接

    ln -s /usr/X11R6/lib/X11/fonts/ttf/simsun.ttf simsun.ttf

    把usr/lib/openoffice/share/fonts/truetype里的fonts.dir文件改名,并把/usr/X11R6/lib/X11/fonts/ttf/fonts.dir拷贝到此目录:

    mv fonts.dir oofonts.dir

    cp /usr/X11R6/lib/X11/fonts/ttf/fonts.dir fonts.dir

    合并字体文件:

    cat oofonts.dir >> fonts.dir

    修改字体文件,打开fonts.dir,会发现fonts.dir文件变成了两部分,第一部分即原fonts.dir文件的内容,第二部分为原openoffice字体的内容,现删除openoffice字体的内容的数字部分(就是那个数字1),并把第一行改成本文件的行数(如总共8行,则将第一行的数字改成8)。最后制作一个fonts_dir.global文件,并删除原openoffice的字体文件。

    cp -f fonts.dir fonts_dir.global

    rm -f oofonts.dir


4) 设置中文环境变量


    修改/etc/bashrc和/etc/profile加入如下几行:

    LC_ALL=zh_CN.GB2312

    LANG=zh_CN.GB2312

    LC_CTYPE=zh_CN.GB2312

    XMODIFIERS="@im=fcitx"

    XIM=fcitx

    XIM_PROGRAM=fcitx

    export LC_ALL LANG LC_CTYPE XMODIFIERS XIM XIM_PROGRAM


5) 配置启动参数


    修改/etc/init.d/knoppix-autoconfig文件,找到简体中文所在的段(155行):

    #cn) 注释掉此行,改为 *) 即设为默认中文启动

    *)

    # Simplified Chinese version

    COUNTRY="cn"

    LANG="zh_CN.GB2312"

    #LANGUAGE="gb2312.1980-0"

    LANGUAGE="zh_CN.GB2312"

    KEYTABLE="us"

    XKEYBOARD="us"

    KDEKEYBOARD="us"

    CHARSET="gb2312.1980-0"

    # Additional KDE Keyboards

    KDEKEYBOARDS="us,de,fr"

    XIM=fcitx

    XIM_PROGRAM=fcitx

    XMODIFIERS="@im=fcitx"

    找到美国英语所在的段(354行),将*) 改为 us),即去掉英语的默认启动。


6) 修改字体显示参数


    6.1) 修改/etc/skel/.kderc文件


      将下面的行设定为simsun.ttf字体,建议字体大小为10像素:

      [General]

      activeFont=simsun,10,-1,5,75,0,0,0,0,0

      fixed=simsun,10,-1,5,50,0,0,0,1,0

      font=simsun,10,-1,5,50,0,0,0,0,0

      menuFont=simsun,10,-1,5,50,0,0,0,0,0

      taskbarFont=simsun,10,-1,5,50,0,0,0,0,0

      toolBarFont=simsun,10,-1,5,50,0,0,0,0,0


    6.2) 修改/etc/skel/.kde/share/config/kdeglobals文件


      [General] (第29行)

      fixed= simsun,10,-1,5,50,0,0,0,1,0

      font=simsun,10,-1,5,50,0,0,0,0,0

      menuFont=simsun,10,-1,5,50,0,0,0,0,0

      taskbarFont=simsun,13,-1,5,50,0,0,0,0,0

      toolBarFont=simsun,10,-1,5,50,0,0,0,0,0

      [Locale] (第174行)

      Charset=iso8859-15

      Country=cn

      Language=zh_CN.GB2312

      [WM] (第281行)

      activeFont= simsun,10,-1,5,75,0,0,0,0,0


    6.3) 修改/etc/skel/.kde/share/config/kdesktoprc


      [FMSettings] (第34行)

      StandardFont= simsun,10,-1,5,50,0,0,0,0,0


    6.4) 修改/etc/skel/.kde/share/config/konsolerc


      为保证konsole正确显示英文字体,把Lucidatypewriter字体改成Console字体:

      [Desktop Entry]

      defaultfont=Console,10,-1,5,50,0,0,0,1,0

      font=8



五、高级定制
   请参考本文结尾提供的链接。

六、特别说明
1) 关于fcitx输入法的特别说明

   要启动fctix,请在X的Console里面输入: fcitx& 。

   fcitx基本上不需要手工配置,不过系统字体对它很重要。

   如果你在启动fcitx时系统报告字体错误,类似于:“无法加载字体 -*-fixed-medium-r-normal--16-*-*-*-*-*-*-*,-*-simsun-medium-r-normal--16-*-*-*-*-*-zh_CN.GB2312-*” 等等,请把 ~/.gWuBi/profile中的“显示字体=*”修改一下。怎么修改呢?用命令 xlsfonts | grep gb 来查看你的系统中注册了哪些gb码的字体,然后把字体名写上就可以了,比如“显示字体=song ti”。

   关于输入法的问题,推荐一个好去处: http://www.linuxsir.com/bbs/showthread.php?s=&threadid=37665

2) 关于cloop的特别说明

   Cloop是COMPRESSED LOOPBACK DEVICE (cloop.o)的简称, 是一个第三方内核模块(官方内核中没有包含它),它提供文件系统无关的、透明压缩的、只读的块设备。Cloop是Knoppix的重要组成部分。

   如果您在运行insmod cloop命令时出错,有可能您的交换分区太小,也有可能您根本没有安装cloop模块。

   Cloop的源代码可以在 http://developer.linuxtag.net/knoppix/sources/ 下载到。下载后,用您的内核来编译出一个cloop.o模块:


  • cd /tmp
  • wget http://developer.linuxtag.net/knoppix/sources/cloop_1.02-1.tar.gz
  • tar xzf cloop_1.02-1.tar.gz
  • cd cloop_1.02-1
  • make KERNEL_DIR=/usr/src/linux
  • mkdir -p /lib/modules/misc && cp cloop.o /lib/modules/misc/
  • depmod -a
  • mknod /dev/cloop b 240 0

   如果还是不行,那么您恐怕只能刻一张光盘了……

七、参考文献
制作一张支持中文的Knoppix CD

KNOPPIX 使用和定制指南
php爱好者站 http://www.phpfans.net 为phper提供一切资讯.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载