用了近5年的PC机上的RouteOS路由挂了,系统无法启动,需要把配置文件和一些备份导出来,部分文件需要修改,赶紧把U盘找到再次量产,这次使用的是我心如水PE的最新v6.62.224版,内建03PE/Xp PE/Win7 PE/Win8 PE,03PE可以通过ext2sys直接读写routeos的ext2分区。考虑到在Windows下修改Linux分区文件可能会因为换行符和文件格式的问题出错,还是把文件在PE下拷贝出来,然后远程连接到一个Linux系统,修改后再取回来上传恢复,很是费了一番周折,于是考虑增加一个Linux引导。

Linux的选择主要有CDLinux,Slitaz,Puppy和TinyCore,最开始选择的是神雕定制的Slitaz(Link),但这个版本,作者加入或关联了太多属于其个人的标记,而且默认的模板不是很大方,略作比较后选择的是CDLinux 0.9.7.1附加MinidWEP无线破解。

此前对如何定制PE基本没什么了解,一直是拿来主义,直接量产使用的,这次要修改启动菜单,很是花了点时间。记录备忘:

用到的素材与软件:
我心如水PE合盘V6.62.224 Link
CDLinux 0.9.7.1 原版 无线破解版
UltraISO 9.3.5.2716 Link
Easyboot 6.5.2.695 Link
简易启动测试器(QEMU)0.4 Beta 6 Link
SYSLinux中文菜单编辑工具 Link
WinHex备用

先建立G:\tmp目录

1.UltraISO打开CDLinux.ISO提取CDLinux目录,放到g:\tmp

2.UltraISO打开PE.ISO,将上一步提取到的CDLinux放进pe的根目录,提取BOOT目录到g:\tmp

3.打开CDLinux.iso,选择“启动”-“保存引导文件”,将cdlinux引导文件保存为CDLINUX.BIF,放到g:\tmp\boot

注意:如果要加入的linux合盘与原PE目录有冲突的话,需要修改启动信息文件与Linux ISO内的配置文件,以SliTaz Linux为例,这个ISO内的目录名也是boot,那么在通过UltraISO提取启动信息slitaz.bif后,需要用winhex或者ultraedit一类的16进制编辑工具,修改这个文件内文件夹的名称,同时,需要修改boot/isolinux下的所有cfg文件内的相应位置,将boot目录更名为其他目录,然后再进行合盘操作。

4.先打开Easyboot,再选择g:\tmp\boot\menu.ezb(双击menu.ezb打开的话,可能会在保存时出错,这是easyboot的bug),选择合适的位置添加一个菜单。
参照原菜单布局,定义好菜单的位置、名称、颜色与快捷键,运行命令部分为:

bootinfotable;run /boot/cdlinux.bif

然后保存退出

5.打开SYSLinux中文菜单编辑工具,修改syslinux_zh.cfg和isolinux_zh.cfg,在适当的位置添加CDLinux的菜单

LABEL CDlinux
MENU LABEL [ ^4 ] CDlinux 0.9.7.1 PE
kernel /CDlinux/bzImage 
append initrd=/CDlinux/initrd quiet CDL_LANG=zh_CN.UTF-8 CDL_AMOUNT=yes

两个文件都要修改,并保持一致,然后运行isolinux.bat和syslinux.bat,生成菜单文件。拷贝isolinux.cfg和myfont.psf到g:\tmp\boot\isolinux\,拷贝syslinux.cfg和myfont.psf到g:\tmp\boot\syslinux\。

注意:如果中文字符太多或者菜单项文字太长,菜单的尾部文件会出现乱码。

6.UltraISO打开PE.ISO,拷贝g:\tmp\boot\下的menu.ezb,cdlinux.bif、isolinux.cfg,syslinux.cfg,myfont.psf到pe.iso的相应位置

7.保存ISO,QEMU测试启动

EZB菜单

ISOLINUX菜单

确保菜单中各项均可正常启动
(无耻的修改了TITLE内的“我心如水”标记,自用不传播,想必66369等大仙们根本不在乎这个 :-))

8.USB量产,我的金士顿U盘参照以前的量产配置,顺利量产成功,至此我的WIN2K03/WINXP/WIN7/WIN8/CDLINUX五合一启动U盘就顺利搞定啦。 🙂

CDLinux启动后的截图:

附录:
这个SSE的CDLinux桌面上有不少无线破解的快捷方式,开始菜单里也有不少不需要的东西,但是我对CDLinux的定制实在是不了解,在CDLinux的官方网站上看到介绍说用户可以通过自己修改extra目录内的文件添加自己的软件包,也可以修改local目录内的文件来定制一些命令,于是简单修改了一下CDROM(CDLinux)\local\example-cdl.tgz内的rc.local,删除桌面不需要的快捷方式,同时修改了一下开始菜单

#!/bin/sh
#
# put your own init script here				-- zxh(imzxh@yahoo.com)

rm -f  /home/cdl/Desktop/qq.desktop
rm -f  /home/cdl/Desktop/mini-bri.desktop
rm -f  /home/cdl/Desktop/xset-screen-off.desktop
rm -f /home/cdl/Desktop/feedingbottle.desktop
rm -f /home/cdl/Desktop/inflator.desktop
sudo rm -f /usr/share/applications/about.desktop
sudo rm -f /usr/share/applications/qq.desktop
sudo rm -f /usr/share/applications/xfce4-about.desktop
sudo rm -f /usr/share/applications/xfhelp4.desktop
sudo sed -i 's/Viewer;Office;/Viewer;Utility;/g' /usr/share/applications/epdfview.desktop
sudo sed -i 's/Graphics;Utility;Core;/Utility;Core;/g' /usr/share/applications/gpicview.desktop
sudo sed -i 's/Network;X-XFCE;X-Xfce-Toplevel;/Network;Utility;X-XFCE;/g' /usr/share/applications/exo-mail-reader.desktop

再附:
我心如水的这个合盘,如果嫌添加CDLinux后iso太大的话,可以把MINIPE内op.wim文件移除来,放到U盘可见区域的MINIPE目录,整个ISO会减少240M左右,并且完全不影响使用,如果想添加自己的一些外部程序则有两个办法,一是解开OP.WIM的文件,把自己的程序加进去并修改那几个指定快捷方式的INI文件,二是在U盘或硬盘的任一可见区建立PETOOLS目录,把自己的应用程序拷贝进去,启动PE后直接加载就可以了

最后,严重感谢无忧启动的66369、lxl1638、blithewind等大仙,你们功德无量