定制ubuntu13.10中文字符菜单

来源:互联网 发布:淘宝孕妇装店铺排行 编辑:程序博客网 时间:2024/06/02 03:03

定制步骤:

注意:我是在linux系统下完成定制的,但是后面碰到了问题,最后解决了(linux下还是可以的,只是下面有一步麻烦一点点)。但是总结一下,最好还是在windows下做吧。


下载的ubuntu-13.10的镜像文件然后从里面提取的需要的文件(但是事实证明只需要下载一个isolinux包就可以了,因为它就是一个小型的linux系统)。下面就说我是如何利用这个镜像文件做出中文的字符菜单的。

1.从镜像中提取文件

       从ubuntu13.10的镜像文件中提取isolinux包,查看isolinux包的权限(要可读可写),因为要进行修改。

有些系统不能提取镜像文件,需要mount镜像文件再把挂载的文件复制到另外一个文件夹。具体指令如下:

 mount -t iso9660 /home/zq/desktop/ubuntu-13.10-desktop-i386.iso /home/zq/custom_ubuntu/  

 mkdir custom_binux

 cd customcustom_binux_binux/
cp -R  custom_ubuntu/ *
umount /home/zq/custom_ubuntu/

        复制custom_binux/文件夹下的文件都只有只读权限,这时就需要用chmod来修改权限,最简单的方法如下:

chmod 777 custom_binux

         这样一来,我们所做工作的源码包就准备好了,只要在这里做修改就好了。

2.认识isolinux里的各文件

附上syslinux的网址,想要更深入了解isolinux的就看这里:

http://www.syslinux.org/wiki/index.php/ISOLINUX

首先,最重要的文件是isolinux.cfg文件,单是修改它就可以达到实现中文字符菜单的效果。isolinux.cfg原版的内容如下:

# D-I config version 2.0
include menu.cfg
default vesamenu.c32
prompt 0
timeout 50
ui gfxboot bootlogo

下面解释一下每一行的含义。

include menu.cfg:

    isolinux.cfg调用menu.cfg,menu.cfg又调用stdmenu.cfg,txt.cfg和gtk.cfg。

    stdmenu.cfg 里面主要是字符界面下的背景图片,标题颜色等等的设置,可根据自己的喜好修改。

    txt.cfg里面是字符界面下的label设置,label后面定义的是标签名,而menu label 后面才真正是字符界面上要显示的标签内容。我的目标是实现字符界面的中文菜单,显然修改txt.cfg是找对地方了。但是ubuntu的字符界面是不支持中文编码的,如果简单将这里的menu label写成中文,你得到的只能是一行行的乱码。在第3步中我将会介绍怎样对它进行处理从而实现中文菜单的显示。

    gtk.cfg是空的,不用管它。

default vesamenu.c32:  vesamenu.c32很重要,我们之所以进入字符菜单就是靠它。

prompt 0:  不向用户提供输入选择。

timeout 50:  进入字符界面后若5妙内不做选择,那么系统将自动进入系统。

ui gfxboot bootlogo:bootlogo是一个cpio压缩文件,它里面是一个已经编译好的init文件。这句是使界面进入图形界面,图形界面内显示的内容是编译在bootlogo里面的,所以想要修改图形界面似乎挺困难的。如果在isolinux.cfg中保留这一句,那么系统将不会进入字符界面而是直接进入图形界面。所以我们的改动中会删除这一句。

3.使得字符界面支持中文字体

 下载hzpsf.zip文件。

在windows下:
hzpsf -e 英文字体 -z 中文字体 -c 启动字体 -i 中文版的配置文件 -o 经过处理的配置文件
hzpsf -e GREEK.F16 -z chs16 -c myfont.psf -i isolinux_zh.cfg -o isolinux.cfg
上面指令另存成zh.bat文件

1、预先编写中文菜单isolinux_zh.cfg,其中要有:
ui vesamenu.c32
font myfont.psf
注意这里要把txt.cfg和stdmenu.cfg文件中的内容全部拷到这里面,txt.cfg里面的menu label要写成中文。
2、将isolinux_zh.cfg,GREEK.F16,chs16,hzpsf.exe和zh.bat放在一个文件夹下。然后,运行(双击)zh.bat文件,产生isolinux.cfg和myfont.psf文件。
3、将产生的这isolinux.cfg和myfont.psf两个文件复制进ISO里面的isolinux目录下。替换旧的.

我的isolinux.cfg内容如下:
注意:按照上面的方法做成镜像后会产生乱码,这就是我在一开始说的在linux下做定制的一点小麻烦,但是可以解决。hzpsf是在windows下运行的,windows下文件的编码方式跟linux下不同,所以,上面生成isolinux.cfg和myfont.psf的步骤要做两次才能使用这两个文件,第一次利用isolinux_zh.cfg生成isolinux.cfg和myfont.psf,第二次把isolinux_zh.cfg和myfont.psf都删了,再把isolinux.cfg重命名为isolinux_zh.cfg,然后把此文件中相应的乱码改为中文,然后再生成的isolinux.cfg和myfont.psf就是正确的了,这样确保了编码方式的一致。)
# D-I config version 2.0
ui vesamenu.c32
font myfont.psf
prompt 0
timeout 50


MENU TITLE Binux
MENU BACKGROUND splash.png

menu color title    * #FFFFFFFF *
menu color border    * #990000FF #00000000 none
menu color sel        * #ffffffff #76a1d0ff *
menu color hotsel    1;7;37;40 #ffffffff #76a1d0ff *
menu color tabmsg    * #ffffffff #00000000 *
menu color help        37;40 #ffdddd00 #00000000 none
menu vshift 12
menu rows 10
menu helpmsgrow 15
# The command line must be at least one line from the bottom.
menu cmdlinerow 16
menu timeoutrow 16
menu tabmsgrow 18
menu tabmsg Press ENTER to boot or TAB to edit a menu entry
menu margin 10

default binux
label binux
  menu label ÊÔÓÃ Binux¶øĠṠḞĠṪḞ
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz  quiet splash --
label live-install
  menu label ḞĠṪḞ Binux
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity initrd=/casper/initrd.lz quiet splash --
label check
  menu label ỳìĠâÓĠÅÌÊÇṖñÓŴṀíÎó
  kernel /casper/vmlinuz.efi
  append  boot=casper integrity-check initrd=/casper/initrd.lz quiet splash --
label memtest
  menu label ĠâÊÔÄÚṀæ
  kernel /install/mt86plus
label hd
  menu label ṀÓṁÚÒṠÓĠÅÌÒýṁỳ
  localboot 0x80
label reboot
  menu label ÖØŴÂÆô¶ŸṁçÄÔ
  kernel reboot.c32

F1 zh_CN.hlp
F2 langlist



4.将custom_binux下经修改后的所有文件刻盘,在virtualbox中运行运行看效果
生成镜像文件的指令为mkisofs,注意这个指令的选项,在windows下和linux下选项不同,当时我由于不会用这个指令,一直生成不了正确的镜像。在linux下生成镜像的指令是这样的:
sudo mkisofs -r -V test -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o linux.iso  /home...
其中test为卷标名,随便起。-o后的两个分别时要生成镜像的名字和源文件位置。

运行截图如下(后面放):

 
 


 

0 0
原创粉丝点击