您的位置:首页 > 运维架构 > Linux

grub4dos和syslinux双重引导U盘制作

2012-05-01 09:46 621 查看

grub4dos和syslinux双重引导U盘制作

第一步:格式化U盘

如果有重要资料请自行备份好。将U盘格式化成FAT文件系统的格式(FAT16或FAT32都可以,注意:不能用NTFS的文件系统,因为syslinux目前还不支持NTFS文件系统)。   

第二步:下载syslinux和grub4dos。

syslinux:到这里【syslinux-3.84.zip】下载3.84版的SYSLINUX,如果你要以前的版本可以在这里下载:Indexof syslinuxgrub4dos:到这里【grub4dos-0.4.4.zip】下载0.4.4版的grub4dos,如果你要以前的版本可以在这里下载:Indexof grub4dos 

第三步:将SYSLINUX写入U盘的PBR(分区引导记录)

syslinux:下载完了之后将syslinux-3.84.zip解压到一个单独的文件夹中。然后,在U盘中新建如下目录:/boot/syslinux接着,复制以下几个文件到【/boot/syslinux】目录:vesamenu.c32menu.c32memdiskchain.c32reboot.c32syslinux.binsyslinux.exeback.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:
然后将这个文件保存为批处理【.bat】文件。接着,运行一下这个批处理文件。当然,也可以在“命令提示符”里做这些操作,当在“命令行”里执行这个写入操作时,如果是成功将syslinux引导代码写入到U盘的PBR(分区引导记录),是不会有提示的,如果有提示说明没有成功的写入syslinux引导代码。完成以上操作后到U盘的 /boot/syslinux 目录确认是否有 ldlinux.sys 这个文件: 这是个隐藏文件。而且大小一定是:14.6 KB。 如果以上都完成了,那说明我们已经正确地将syslinux引导代码写入到U盘的PBR(分区引导记录)了。那好,我们继续……! 

第四步:将GRUB4DOS写入U盘的MBR(主引导记录)

这是能否实现 grub4dos 与 syslinux双重引导的关键步骤。将下载好的 grub4dos-0.4.4.zip 解压,把里面的 grldr文件复制到U盘的根目录,如果你要让你的grub4dos启动菜单可以显示中文,那就要复制 chinese 中的 grldr 。其里面还有一个名为 bootlace.com 的文件,这个文件是用在 DOS下将GRUB4DOS引导代码写入磁盘的MBR。DOS 下的命令是这样的:
bootlace.com 0x80
当然还有更为简单的工具,用于将 grub4dos 引导代码写入U盘的MBR:grubinst_gui 大家可以到这里下grubinst_gui 【grubinst-1.1-bin-w32-2008-01-01.zip这个已经是最新版了】这里还有更丰富的 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进行修复一下:点击“主引导记录”。 点击“安装/配置”。 先点击“读出现有配置”,再点击“写入磁盘”。 点击“确定”。 这样就修复好了。 

第五步:制作SYSLINUX加载grub4dos的img文件。

到网络上下载 Virtual Crive Manager(虚拟光驱) 和 img 格式的 DOS 98 启动盘。用Virtual Crive Manager 加载 DOS98.img: 点击“装载”,再点击“浏览”。 选择你的“dos98.img”,点击“打开”。  打开“我的电脑”,对“3.5软盘(A)”进行格式化,并勾选“创建一个 MS-DOS 启动盘”。 点击“开始”,接着点击确定。  然后,在“我的电脑”中打开这个“3.5软盘(A)”,对里面的“AUTOEXEC.BAT”进行编辑(这个文件里面应该是空的),编写如下内容后保存: 
@echo off

grub.exe
然后,复制 grub.exe(如果要显示中文,那就要复制 chinese 文件夹中的 grub.exe.)到这个“3.5软盘(A)”里面。现在这个SYSLINUX加载grub4dos的img文件就制作好了。如果,你发现 syslinux 菜单中加载这个文件时不正常地显示 menu.lst 中的内容,那你就要对这个 grub.exe中内置的 menu.lst 菜单进行一些修改。下载“grub4dos内置菜单编辑器”,将 grub.exe 中内置的 menu.lst 菜单导出,修改后再导入。要修改的部分如下:就是在所有的 /boot 的前面加上 (hd0,0)修改后内置 menu.lst 菜单如下: 
pxe detectconfigfiledefault 0timeout 0title 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    commandlinetitle commandline    commandlinetitle reboot    reboottitle halt    halt
然后把这个img文件命名为grub4dos.img,当然也可命名为其它的文件名。复制这个img文件到U盘的 boot/grub 目录,也可以复制到你自己指定的目录,不过在 menu.lst启动菜单里要和这个目录一致。 

第六步:编写syslinux启动菜单

在U盘中新建如下目录(第六步会用到):/boot/grub在 /boot/syslinux 目录下新一个文本文档,并将其命名为 syslinux.cfg ,注意扩展名为.cfg 目前syslinux还不支持真正地中文,所以我们只能用自己看得懂的英文来编写,当然,网络上有一些高手已经成功制作出中文的syslinux菜单。红色字体部分为:syslinux与grub4dos相互加载的菜单命令和子菜单命令。在 syslinux.cfg 编写如下内容: 
default vesamenu.c32timeout 300F1 readme.txtF2 syslinux.cfgMENU BACKGROUND sysback.pngMENU TITLEMENU TIMEOUTROW 16menu color border 40;44 #00000000 #00000000 none
 
LABEL runpeMENU LABEL [01] -- Windows 03 PE Systemkernel /boot/isope.bin
 
LABEL maxdosMENU LABEL [02] -- MaxDoskernel /boot/syslinux/memdiskappend initrd=/boot/imgs/maxdos.img
 
LABEL ghost 11.5MENU LABEL [03] -- ghost 11.5kernel /boot/syslinux/memdiskappend initrd=/boot/grub/ghost.img
 
LABEL DOSToolsMENU LABEL [04] -- DOSToolskernel /boot/syslinux/memdiskappend initrd=/boot/imgs/dostools.ima
 
LABEL Loader Grub4dos MenuMENU LABEL [05] -- Loader Grub4dos Menukernel /boot/syslinux/memdiskappend initrd=/boot/gurb/gurb4dos.img
 
LABEL Loader BT3 MenuMENU LABEL [06] -- Loader BT3 MenuCONFIG /boot/syslinux/BT3.CFG
 
LABEL hddbootMENU LABEL [07] -- Boot To Harddiskkernel /boot/syslinux/chain.c32 hd1,0 LABEL rebootMENU LABEL [08] -- Reboot Computerkernel /boot/syslinux/reboot.c32当然你也可以按自己的实际情况来编写。对于这些命令都是什么意思,可以参考笔者的另一篇文章:【SYSLINUX 中文简介(怎样使用) 1】【SYSLINUX 中文简介(怎样使用) 2】。这里面还有用到一个及为重要的文件: initrd如果你要启动U盘版的LINUX,还要用这个文件: vmlinuz如果有谁要的,可以我留言,并留下Email,我会发到你的Email中。也可以给发我Email:lanwenbin@gmail.com或 lwbapple@yahoo.com.cn

第七步:编写grub4dos启动菜单

在U盘中新建如下目录:/boot/grub并在这个目录下新一个文本文档,并将其命名为 menu.lst,注意扩展名为.lst红色字体部分为:syslinux与grub4dos相互加载的菜单命令和子菜单命令。在 menu.lst 编写如下内容: 
# 菜单等待时间(秒)timeout 30
# 启动默认值default 0 # 设置图形背景文件splashimage /boot/grub/g4d.xpm # 设置中文支持的字体文件fontfile /boot/grub/fonts.gz # 启动完美者PE维护系统title 完美者PE维护系统find --set-root /boot/SETUPLDR.BINchainloader /boot/SETUPLDR.BIN # 启动ghost 11.5title ghost 11.5find --set-root /boot/imgs/ghost.imgmap --mem /boot/imgs/ghost.img (fd0)map --hookchainloader (fd0)+1rootnoverify (fd0) # 切换至 SYSLINUX 菜单title 切换至 SYSLINUX 菜单find --set-root /boot/syslinux/ldlinux.syschainloader +1 # 转到 DOS Maintain Tools 菜单title GoTo DOS Maintain Toolsconfigfile /boot/grub/dos.lst # 返回WINDOWS启动菜单title 返回WINDOWS启动菜单rootnoverify (hd1,0)makeactivechainloader +1 # 重新启动计算机title 重新启动计算机reboot # 关闭计算机title 关闭计算机halt 大家可以到网络上去下载一些可启动的img文件,笔者在上面已经给出了示例了,大家照着写就可以了。

第八步:关于引导PE

这个大家可以自己到网络上下载相应的版本的ISO文件,然后复制相应的PE系统所需的文件并在启动菜单中编写相应的启动项就可以。笔者就以“完美者U盘维护系统V9.0”为例进行说明,复制 type 文件夹及其文件夹中的所有文件到U盘的根目录,复制 isope.bin 和 SETUPLDR.BIN 到 boot目录。syslinux菜单和grub4dos菜单所加载的文件是不同的。syslinux菜单编写如下: 
LABEL runpeMENU LABEL -- Windows PE Systemkernel /boot/isope.bin
  grub4dos菜单编写如下: 
# 启动完美者PE维护系统title 完美者PE维护系统find --set-root /boot/SETUPLDR.BINchainloader /boot/SETUPLDR.BIN
 文章中提到的文件,如果大家在网上下载不到,或者是下载到但不能用的,可以给我发Email:lanwenbin@gmail.com 或lwbapple@yahoo.com.cn我会发到你的Email中,但要注明需要哪些文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息