将U盘格式化成FAT文件系统的格式(FAT16或FAT32都可以,注意:不能用NTFS的文件系统,因为syslinux目前还不支持NTFS文件系统)。
grub4dos:到这里【grub4dos-0.4.4.zip】下载0.4.4版的grub4dos,如果你要以前的版本可以在这里下载:Index of grub4dos
然后,在U盘中新建如下目录:/boot/syslinux
接着,复制以下几个文件到【/boot/syslinux】目录:
vesamenu.c32
menu.c32
memdisk
chain.c32
reboot.c32
syslinux.bin
syslinux.exe
back.png【这个文件其实是用图片处理软件制作的背景图片-下载下来的ZIP压缩包中没有这个】
syslinux.cfg【这个文件其实是TXT文本文档改扩展名得来的-下载下来的ZIP压缩包中没有这个】
解压出来后有很多文件,其实我们用不上这么多的文件,搜索一个我们要的文件就可以了。
vesamenu.c32;menu.c32;memdisk;chain.c32;reboot.c32;syslinux.bin;syslinux.exe
新建一个文本文档,输入如下内容【 x 为你的U盘盘符】:
x:
cd boot/syslinux
syslinux.exe -s -f -m -d /boot/syslinux x:
接着,运行一下这个批处理文件。
当然,也可以在“命令提示符”里做这些操作,
当在“命令行”里执行这个写入操作时,如果是成功将syslinux引导代码写入到U盘的PBR(分区引导记录),是不会有提示的,如果有提示说明没有成功的写入syslinux引导代码。
完成以上操作后到U盘的 /boot/syslinux 目录确认是否有 ldlinux.sys 这个文件:
这是个隐藏文件。
而且大小一定是:14.6 KB。
如果以上都完成了,那说明我们已经正确地将syslinux引导代码写入到U盘的PBR(分区引导记录)了。
这是能否实现 grub4dos 与 syslinux双重引导的关键步骤。
将下载好的 grub4dos-0.4.4.zip 解压,把里面的 grldr文件复制到U盘的根目录,如果你要让你的grub4dos启动菜单可以显示中文,那就要复制 chinese 中的 grldr 。其里面还有一个名为 bootlace.com 的文件,这个文件是用在 DOS下将GRUB4DOS引导代码写入磁盘的MBR。
DOS 下的命令是这样的:
bootlace.com 0x80
这里还有更丰富的 grubutil 工具:【Index ofgrubutil 】
我们还要下载一个叫做:引导扇区维护工具(BOOTICE)的工具。
BOOTICE (引导扇区维护工具)用来修复U盘的MBR的,当然,也可以用来将GRUB4DOS写入U盘的MBR。
也可以点击这里下载:【BOOTICEv0.72引导扇区维护工具】
以下是 grubinst_gui 工具的使用方法:
选择“启动时不搜索软盘” 选择“优先引导原来MBR”(这个是实现SYSLINUX+GRUB4DOS双引导的关键选项,一定要选择这项。) 等待时间“默认是 5 秒”(你可以填一个你认为更适合的等待时间,也可以不填) 热键“默认是Space键”(如果你不想要空格键作为热键,在这里更改,建议大家不要更改) 其它的选项可以不用理会。
大家可以点一下“测试”按钮,看一下这个工具所用的到参数(因为这个工具还有DOS的版本):
然后点击“安装”。这时会出现一个“命令行”窗口,我们按一下“Enter”键就可以了。
运行 BOOTICE_v0.72 。
现在我们要对U盘的MBR进行修复一下:点击“主引导记录”。
这样就修复好了。
用Virtual Crive Manager 加载 DOS98.img:
然后,在“我的电脑”中打开这个“3.5软盘(A)”,对里面的“AUTOEXEC.BAT”进行编辑(这个文件里面应该是空的),编写如下内容后保存:
@echo off
grub.exe
现在这个SYSLINUX加载grub4dos的img文件就制作好了。
如果,你发现 syslinux 菜单中加载这个文件时不正常地显示 menu.lst 中的内容,那你就要对这个 grub.exe中内置的 menu.lst 菜单进行一些修改。
下载“grub4dos内置菜单编辑器”,将 grub.exe 中内置的 menu.lst 菜单导出,修改后再导入。
要修改的部分如下:就是在所有的 /boot 的前面加上 (hd0,0)
修改后内置 menu.lst 菜单如下:
pxe detect
configfile
default 0
timeout 0
title find (hd0,0)/boot/grub/menu.lst, (hd0,0)/boot/menu.lst,(hd0,0)/grub/menu.lst
errorcheckoff
configfile(hd0,0)/boot/grub/menu.lst
configfile(hd0,0)/grub/menu.lst
configfile(hd0,0)/menu.lst
find--set-root --ignore-floppies --ignore-cd (hd0,0)/boot/grub/menu.lst&& configfile(hd0,0)/boot/grub/menu.lst
find--set-root --ignore-floppies --ignore-cd (hd0,0)/grub/menu.lst&& configfile(hd0,0)/grub/menu.lst
find--set-root --ignore-floppies --ignore-cd (hd0,0)/menu.lst&& configfile(hd0,0)/menu.lst
errorcheckon
commandline
title commandline
commandline
title reboot
reboot
title halt
halt
复制这个img文件到U盘的 boot/grub 目录,也可以复制到你自己指定的目录,不过在 menu.lst启动菜单里要和这个目录一致。
在 /boot/syslinux 目录下新一个文本文档,并将其命名为 syslinux.cfg ,注意扩展名为.cfg
目前syslinux还不支持真正地中文,所以我们只能用自己看得懂的英文来编写,当然,网络上有一些高手已经成功制作出中文的syslinux菜单。
红色字体部分为:syslinux与grub4dos相互加载的菜单命令和子菜单命令。
在 syslinux.cfg 编写如下内容:
default vesamenu.c32
timeout 300
F1 readme.txt
F2 syslinux.cfg
MENU BACKGROUND sysback.png
MENU TITLE
MENU TIMEOUTROW 16
menu color border 40;44 #00000000 #00000000 none
LABEL runpe
MENU LABEL [01] -- Windows 03 PE System
kernel /boot/isope.bin
LABEL maxdos
MENU LABEL [02] -- MaxDos
kernel /boot/syslinux/memdisk
append initrd=/boot/imgs/maxdos.img
LABEL ghost 11.5
MENU LABEL [03] -- ghost 11.5
kernel /boot/syslinux/memdisk
append initrd=/boot/grub/ghost.img
LABEL DOSTools
MENU LABEL [04] -- DOSTools
kernel /boot/syslinux/memdisk
append initrd=/boot/imgs/dostools.ima
LABEL Loader Grub4dos Menu
MENU LABEL [05] -- Loader Grub4dos Menu
kernel /boot/syslinux/memdisk
append initrd=/boot/gurb/gurb4dos.img
LABEL Loader BT3 Menu
MENU LABEL [06] -- Loader BT3 Menu
CONFIG /boot/syslinux/BT3.CFG
LABEL hddboot
MENU LABEL [07] -- Boot To Harddisk
kernel /boot/syslinux/chain.c32 hd1,0
LABEL reboot
MENU LABEL [08] -- Reboot Computer
kernel /boot/syslinux/reboot.c32
当然你也可以按自己的实际情况来编写。
对于这些命令都是什么意思,可以参考笔者的另一篇文章:【SYSLINUX 中文简介(怎样使用) 1】【SYSLINUX 中文简介(怎样使用) 2】。
这里面还有用到一个及为重要的文件: initrd
如果你要启动U盘版的LINUX,还要用这个文件: vmlinuz
如果有谁要的,可以我留言,并留下Email,我会发到你的Email中。也可以给发我Email:[email protected]或 [email protected]
并在这个目录下新一个文本文档,并将其命名为 menu.lst,注意扩展名为 .lst
红色字体部分为:syslinux与grub4dos相互加载的菜单命令和子菜单命令。
在 menu.lst 编写如下内容:
# 菜单等待时间(秒)
timeout 30
# 设置图形背景文件
# 设置中文支持的字体文件
# 启动完美者PE维护系统
# 启动ghost 11.5
title ghost 11.5
find --set-root /boot/imgs/ghost.img
map --mem /boot/imgs/ghost.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
# 切换至 SYSLINUX 菜单
title 切换至 SYSLINUX 菜单
find --set-root /boot/syslinux/ldlinux.sys
chainloader +1
# 转到 DOS Maintain Tools 菜单
title GoTo DOS Maintain Tools
configfile /boot/grub/dos.lst
# 返回WINDOWS启动菜单
title 返回WINDOWS启动菜单
rootnoverify (hd1,0)
makeactive
chainloader +1
# 重新启动计算机
title 重新启动计算机
reboot
# 关闭计算机
title 关闭计算机
halt
大家可以到网络上去下载一些可启动的img文件,笔者在上面已经给出了示例了,大家照着写就可以了。
笔者就以“完美者U盘维护系统V9.0”为例进行说明,
复制 type 文件夹及其文件夹中的所有文件到U盘的根目录,复制 isope.bin 和 SETUPLDR.BIN 到 boot目录。syslinux菜单和grub4dos菜单所加载的文件是不同的。
syslinux菜单编写如下:
LABEL runpe
MENU LABEL -- Windows PE System
kernel /boot/isope.bin
grub4dos菜单编写如下:
# 启动完美者PE维护系统
title 完美者PE维护系统
find --set-root /boot/SETUPLDR.BIN
chainloader /boot/SETUPLDR.BIN
文章中提到的文件,如果大家在网上下载不到,或者是下载到但不能用的,可以给我发Email:
[email protected] 或[email protected]
我会发到你的Email中,但要注明需要哪些文件。