自己动手制作Knoppix中文版
时间:2007-02-17 来源:PHP爱好者
一、简介
下文将介绍如何定制一张中文版的Knoppix。主要步骤:
二、准备工作
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文件复制出来:
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) 现在您可以开始修改软件包,自己决定删除哪些,安装哪些;
20) 中文化定制(这一节内容较集中,单独拿出来在后面写);
21) 卸载 /proc -- 非常重要!
22) 按 CTRL+D 退出chrooted环境。
注意:
1) 如果您想自动运行一些程序,可以在 /etc/rc5.d/ 目录下创建脚本(这写脚本在 X 启动前被运行)。
2) /etc/init.d/knoppix-autoconfig 里面的有趣东东:
3) /etc/init.d/xsession 里面的有趣东东:
它也设置背景为 /usr/local/lib/knoppix.gif
4) 现在,开始创建 ISO 文件:
5) 如果一切顺利,现在就开始制作光盘镜像了:
技巧:
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 字体:
2) 修改XF86Config文件
3) 安装OpenOffice中文支持
4) 设置中文环境变量
5) 配置启动参数
6) 修改字体显示参数
五、高级定制
请参考本文结尾提供的链接。
六、特别说明
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模块:
如果还是不行,那么您恐怕只能刻一张光盘了……
七、参考文献
制作一张支持中文的Knoppix CD
KNOPPIX 使用和定制指南
php爱好者站 http://www.phpfans.net 为phper提供一切资讯.
下文将介绍如何定制一张中文版的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
- insmod cloop file=/mnt/hdb2/working/KNOPPIX 如果这一步出错,请看本文结尾处对cloop的描述。
- 复制knoppix源文件到您的工作目录(这可能得花点时间)
- mkdir /mnt/hdb2/working/OLD/KNOPPIX
- cp -Rupv /mnt/KNOPPIX/* /mnt/hdb2/working/OLD/KNOPPIX/
- mkdir /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标准不一致,您可以忽略它。
- cd /mnt/hdb2/working
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提供一切资讯.
相关阅读 更多 +