打印

Slax 6.2.0 全中文化全过程(utf8)(一)

Slax 6.2.0 全中文化全过程(utf8)(一)

一点版本简介:

Slax 6.2.0 是一个开启了PAE功能的升级版,内核还是 2.6.27.8 和 Slax 6.0.9一样,比Slax 6.1.2要低。
最大的好处就是,支持4G以上的内存了。官方网页上不提供下载,但是FTP上提供了:
ftp://ftp.slax.org

中文化的开始:

一个经我测试没问题的小提示,本文汉化一样适用于  Slax 6.0.9

第一步:
先从光盘启动配置文件开始:/boot/slax.cfg
在这个文件中,找到与以下类似的行:
复制内容到剪贴板
代码:
APPEND initrd=/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw vga=791 autoexec=xconf;telinit~4 changes=/slax/
在其最后添加 locale=CHS.UTF-8
看起来象下面这样:
复制内容到剪贴板
代码:
APPEND initrd=/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw vga=791 autoexec=xconf;telinit~4 changes=/slax/  locale=CHS.UTF-8
好了,想加几个选项自己加。建议,最好用 Utraledit来编辑这个文件,因为文件默认编码是 utf8 的。

第二步:
用这张盘(建议你可以做成U盘版的,这样改文件方便,不浪费光盘)启动系统:
把启动盘 /boot/initd.gz 拷贝到 /tmp 目录下,
开启一个终端,输入如下命令:
复制内容到剪贴板
代码:
cd /tmp
gzip -d initd.gz
mkdir ini
ls -l /dev/loop* # 在这里记住最大的一个数字!
mknod /dev/loop9 b 7 9 # 把这里的两个9替换成你看到的最大的数字+1
mount -o loop initd /tmp/ini
cd /tmp/ini
vi liblinuxlive
在这个liblinuxlive文件中找关銉字 vfat,(怎么找?! 按:号,输入/,然后输入你要找的内容),
在你找到的地方可以看到这行内容:
复制内容到剪贴板
代码:
echo -n ",quiet,umask=0,check=s,shortname=mixed"
把它改成下面这样(按一下insert键,就可以写东西了)
复制内容到剪贴板
代码:
echo -n ",iocharset=utf8,quiet,umask=0,check=s,shortname=mixed"
改这行是为了解决vfat编码的问题。同样,下面有个iso9660,你也可以同样改一下,解决光盘乱码问题。
改好以后,按ESC 然后输入:wq
存盘并退出编辑状态
然后进入usr目录,新建一个share目录,再进入share目录,新建一个 locale目录,创建locale.alias文件,命令如下:
复制内容到剪贴板
代码:
mkdir -p usr/share/locale
cd usr/share/locale
vi locale.alias
按一下insert键,把如下内容粘贴进去:(这一步有比较特殊的意义,就是修正了启动时显示无法 cat locale.alias文件的错误,同时又加入了中文编码支持配置)
复制内容到剪贴板
代码:
##--------------------------------------------------------------
bokmal                nb_NO.ISO-8859-1
bokm�l                nb_NO.ISO-8859-1
catalan                ca_ES.ISO-8859-1
croatian        hr_HR.ISO-8859-2
czech                cs_CZ.ISO-8859-2
danish          da_DK.ISO-8859-1
dansk                da_DK.ISO-8859-1
deutsch                de_DE.ISO-8859-1
dutch                nl_NL.ISO-8859-1
eesti                et_EE.ISO-8859-1
estonian        et_EE.ISO-8859-1
finnish         fi_FI.ISO-8859-1
fran�ais        fr_FR.ISO-8859-1
french                fr_FR.ISO-8859-1
galego                gl_ES.ISO-8859-1
galician        gl_ES.ISO-8859-1
german                de_DE.ISO-8859-1
greek           el_GR.ISO-8859-7
hebrew          he_IL.ISO-8859-8
hrvatski        hr_HR.ISO-8859-2
hungarian       hu_HU.ISO-8859-2
icelandic       is_IS.ISO-8859-1
italian         it_IT.ISO-8859-1
japanese        ja_JP.eucJP
japanese.euc        ja_JP.eucJP
ja_JP                ja_JP.eucJP
ja_JP.ujis        ja_JP.eucJP
japanese.sjis        ja_JP.SJIS
korean                ko_KR.eucKR
korean.euc         ko_KR.eucKR
ko_KR                ko_KR.eucKR
lithuanian      lt_LT.ISO-8859-13
no_NO                nb_NO.ISO-8859-1
no_NO.ISO-8859-1 nb_NO.ISO-8859-1
norwegian       nb_NO.ISO-8859-1
nynorsk                nn_NO.ISO-8859-1
polish          pl_PL.ISO-8859-2
portuguese      pt_PT.ISO-8859-1
romanian        ro_RO.ISO-8859-2
russian         ru_RU.ISO-8859-5
slovak          sk_SK.ISO-8859-2
slovene         sl_SI.ISO-8859-2
slovenian       sl_SI.ISO-8859-2
spanish         es_ES.ISO-8859-1
swedish         sv_SE.ISO-8859-1
thai                th_TH.TIS-620
turkish         tr_TR.ISO-8859-9
CHS.UTF-8        zh_CN.UTF-8
CHT.UTF-8        zh_TW.UTF-8
##--------------------------------------------------------------
然后按ESC,输入 :wq 存盘退出。
然后再退回TMP目录,umount这个启动文件
复制内容到剪贴板
代码:
cd /tmp
umount /tmp/ini
gzip 9 initd
重建这个启动文件 initd.gz, 把启动盘上的  initd.gz 给替换掉,再用这个启动盘启动计算机!
"怎么还是英文啊?!“
别急,万里长征,刚刚起步!这才刚刚改好启动文件呢,还要改系统。。。。。。

呵呵,这文章是我 AppleWolf 原创的,即兴写的。。。。。。。

[ 本帖最后由 applewolf 于 2009-8-13 21:59 编辑 ]

TOP

今天看到了lz的系列好帖子,真的很值得!

TOP

支持楼主,俺从官网上追来的。

TOP

这一步汉化不需要了

只需要修改启动参数即可,用grub4dos从硬盘启动:

title start Slax

find --set-root /slax/boot/vmlinuz

kernel /slax/boot/vmlinuz root=/dev/ram0 rw max_loop=255 init=linuxrc load_ramdisk=1 ramdisk_size=262144 iocharset=utf8 slax from=/slax/ vga=0x791 autoexec=xconf;telinit~4 changes=/slax/

#kernel /slax/boot/vmlinuz root=/dev/ram0 rw max_loop=255 init=linuxrc load_ramdisk=1 ramdisk_size=6666 slax from=/slax/ vga=normal autoexec=startx

initrd /slax/boot/initrd.gz

boot


其中增加了启动参数:
iocharset=utf8

TOP

学习学习在学习

TOP

解释和另外的方式:
看了看inirtd.gz中的liblinuxlive(core.lzm中还有一个,但是二者内容可能略有差别,位于/usr/lib/liblinuxlive)脚本,其中有获取locale的函数locale_id,该函数会试图从/proc/cmdline中,也就是你使用的启动器(grub啦,syslinux啦)传给内核的启动参数中,读取locale的值,然后在locale.alias中过滤一下,如果这个locale确实有,就返回这个locale。这一点处理很有问题,slax的论坛上也有人提,locale.alias文件很老,东西也太少,里面完全没有任何utf8相关的locale的信息,也就是你想使用utf8的locale(如zh_CN.utf8或者en_CN.utf),除了修改initrd.gz和core.lzm别无他法,相信接下来的版本会修改的。applewolf的解决方案是弄一个CHS.UTF-8当启动参数,然后修改locale.alias;我觉得这样不好,locale.alias这个文件最好是别改了,就扔那儿等着出新版本或者废止吧,而且CHS.UTF-8这个名字不是任何标准,用这个让人混乱。这儿建议修改liblinuxlive中的locale_id函数,删除最后几行用locale.alias过滤的代码,然后强制返回从启动参数中读取的locale值,即最后加上echo $LOCALE。
applewolf建议修改的vfat和光盘的挂载参数其实没有什么必要,看liblinuxlive中这两个函数就能看出来,他们其实尝试使用启动参数中的iocharset来作为挂载参数,也就是如果你像4楼说的那样(不局限于grub哟)指定了iocharset=utf8,就没必要改这里了。
但是看看mount的文档,iocharset=utf8的时候建议用utf8而不是iocharset=utf8作为挂载参数,所以vfat那里建议还是改成utf8,嘿嘿,又说回来了(但不是applewolf说的那样的iocharset=utf8哟,那样就没必要改了)。
然后initrd.gz就没什么好改的了。

TOP

疯了。第一步就报错。主要是看着那些提示不知道那里错了。。。。。

TOP

Slax这么麻烦?
路漫漫其修远..

TOP

引用:
原帖由 会游泳的鱼 于 2011-4-9 00:37 发表
Slax这么麻烦?
Slax 本身没有考虑中文化,事实上 Slax 在国际化方面一直不是太好,所以有点麻烦。

如果你觉得麻烦,可以尝试一下我们自己的版本 iThink Slax ,最版已经到了 iThinkX ,但是这一版由于启用了最新的内核压缩格式xz ,所以,与之前的 iThink Slax 不再兼容了。

有兴趣,你可以来 http://ithink.8866.org。这是我们的论坛

[ 本帖最后由 applewolf 于 2011-4-9 17:05 编辑 ]

TOP