无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 91206|回复: 165
打印 上一主题 下一主题

实例分享: 用BOOTICE工具在U盘上实现SYSLINUX与GRUB4DOS双启动

  [复制链接]
跳转到指定楼层
#
发表于 2009-8-30 13:52:47 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
首先要感谢Pauly提供的强大BOOTICE工具;希望采用了本文方法制作启动U盘的朋友回帖反馈,谢谢!
效果:
1.启动文件所在分区根目录下只有GRLDR文件和BOOT文件夹;
2.启动时2秒内按“空格键”进入grub4dos菜单,否则进入SYSLINUX菜单;
3.SYSLINUX、grub4dos和BOOTMGR三个引导菜单之间可以相互任意切换。
4.本文最后有三张效果图。
下面把我的整个操作过程用图献给朋友们:
一、准备一个U盘(本人用的是一个2G金士顿)
        下载附件备用:内有bcd.vbs、syslinux.cfg和grldr.exe
二、BOOTICE工具实现双启动:
1.U盘进行分区及格式化
注:BOOTICE会自动优先选择可移动磁盘,比如U盘,如果没有插上可移动磁盘,目标磁盘为你的硬盘,但硬盘是不会被它分区及格式化的,“分区及格式化”选项为灰色,防止误操作。

注:根据需要对U盘进行分区和格式化,本人选择的是“HDD模式(双分区)”,“交换隐藏分区和数据分区”很有用,后面会详细说到。

注:根据需要和喜好设置分区大小,文件系统,卷标,是否执行格式化,是否可见(只能选一个,可随便先选一个,后面可根据需要交换隐藏分区和数据分区)。



注:此步可能会出现错误提示,如出现请点“继续”。



注:通过上面的步骤已经完成了对U的分区及格式化,效果如下:
注:一般来说,我们都喜欢把启动文件、PE等放在第一个分区,隐藏起来,我们要把文件写入第一个分区,对第一个分区进行操作就得用“交换隐藏分区和数据分区”把第一个分区显示出来,操作如下:

注:先执行“交换隐藏分区和数据分区”,出现下图成功提示后点取消,返回上级操作界面。

交换后效果如下:
2.在第一个分区建立SYSLINUX引导

注:根据个人情况选择,本人选择的是第三项,因为这样做LDLINUX.SYS为内置,不用担心被误删除

注:成功后效果如下:
3.U盘添加GRUB4DOS的主引导记录



注:为了实现SYSLINUXGRUB4DOS双启动,本人选择了“优先尝试引导原来的MBR”,启动热键为默认的“空格”,延时时间为2秒,其余为默认设置。


现在SYSLINUXGRUB4DOS双启动的引导操作已经完成。
三、拷贝启动和PE所需要文件到第一分区(BOOT
文件结构如下:
注:
1.GRLDR文件采用了内置配置菜单(可减少menu.lst文件),推荐使用GRLDR.EXE修改内置菜单,如把GRLDR.EXE与要修改的GRLDR放在同一文件夹内,打开GRLDR.EXE时会自动导入此文件夹里的GRLDR,界面如下:
本人的GRLDR菜单如下:
timeout 10

default 9

color cyan/blue white/magenta

find --set-root /boot/grub/grubhere.id

splashimage /boot/grub/2008.xpm.gz

foreground 0000ff

find --set-root /boot/grub/grubhere.id

fontfile /boot/grub/muifont.gz

title 0DOS

find --set-root /boot/grub/grubhere.id

kernel /boot/grub/Memdisk.gz c=80 h=2 s=18 floppy

initrd /boot/dostools/DOS.img

title 1GHOST

find --set-root /boot/grub/grubhere.id

kernel /boot/grub/Memdisk.gz c=80 h=2 s=36 floppy

initrd /boot/dostools/GHOST11.img

title 2DISKGEN

find --set-root /boot/grub/grubhere.id

kernel /boot/grub/Memdisk.gz c=80 h=2 s=18 floppy

initrd /boot/dostools/DISKGEN.img

title 3PASSWORD

find --set-root /boot/grub/grubhere.id

kernel /boot/grub/Memdisk.gz c=80 h=2 s=18 floppy

initrd /boot/dostools/password.img

title 4】切换到syslinux菜单

find --set-root /boot/grub/grubhere.id

chainloader /boot/grub/syslinux.te

title 5】启动WindowsPE菜单

find --set-root /boot/grub/grubhere.id

chainloader /boot/PE/bootmgr

title 6】启动WinPEiso

find --set-root /boot/grub/grubhere.id

map --mem /boot/grub/winpe.iso (hd32)

map --hook

chainloader (hd32)

boot

title 7】本机硬盘启动

map (hd0) (hd1)

map (hd1) (hd0)

rootnoverify (hd1,0)

makeactive

chainloader +1

title 8】重启计算机

reboot

title 9】关闭计算机

halt

title 10Grub命令行

commandline

2.BCD文件,本人是采用一个VBS脚本来生成的,便于修改,脚本如下:

Dim WshShell, FSO

Set WshShell = WScript.CreateObject("WScript.Shell")

Set FSO = WScript.CreateObject("Scripting.FileSystemObject")


WSHShell.run "bcdedit /createstore G:\bcd", 0, TRUE


WSHShell.run "Bcdedit /store G:\bcd /create {bootmgr} /d ""Windows Boot Manager""", 0, TRUE

WSHShell.run "Bcdedit /store G:\bcd /set {bootmgr} device boot", 0, TRUE

WSHShell.run "Bcdedit /store G:\bcd /set {bootmgr} locale ZH-CN", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /timeout 5", 0, TRUE


Set getGUID = WshShell.Exec("bcdedit /store G:\bcd /create /d ""返回SYSLINUX菜单"" /application bootsector")

Do While getGUID.Status = 0


WScript.Sleep 100

Loop



'Fun little set of code to grep out the GUID


strGUID = getGUID.StdOut.ReadAll


arr1GUID = Split(strGUID, "{")


arr2GUID = Split("{"&arr1GUID(1), "}")


strGUID = arr2GUID(0)&"}"



WSHShell.run "bcdedit /store G:\bcd /set "&strGUID&" device boot", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set "&strGUID&" path \boot\Grub\syslinux.te", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set "&strGUID&" locale ZH-CN", 0, TRUE


WSHShell.run "Bcdedit /store G:\bcd /set {bootmgr} displayorder "&strGUID&" /addfirst", 0, TRUE


WSHShell.run "Bcdedit /store G:\bcd /set {bootmgr} default "&strGUID&"", 0, TRUE


Set getGUID = WshShell.Exec("bcdedit /store G:\bcd /create /d ""返回GRUB4DOS菜单"" /application bootsector")

Do While getGUID.Status = 0


WScript.Sleep 100

Loop



'Fun little set of code to grep out the GUID


strGUID = getGUID.StdOut.ReadAll


arr1GUID = Split(strGUID, "{")


arr2GUID = Split("{"&arr1GUID(1), "}")


strGUID = arr2GUID(0)&"}"



WSHShell.run "bcdedit /store G:\bcd /set "&strGUID&" device boot", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set "&strGUID&" path \boot\Grub\grldr.mbr", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set "&strGUID&" locale ZH-CN", 0, TRUE


WSHShell.run "Bcdedit /store G:\bcd /set {bootmgr} displayorder "&strGUID&" /addfirst", 0, TRUE



WSHShell.run "bcdedit /store G:\bcd /create {ramdiskoptions}", 0, TRUE

WSHShell.run "Bcdedit /store G:\bcd /set {ramdiskoptions} locale ZH-CN", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set {ramdiskoptions} ramdisksdidevice boot", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set {ramdiskoptions} ramdisksdipath \boot\PE\boot.sdi", 0, TRUE



Set getGUID = WshShell.Exec("bcdedit /store G:\bcd /create /d ""Microsoft Windows PE"" /application OSLOADER")

Do While getGUID.Status = 0


WScript.Sleep 100

Loop



'Fun little set of code to grep out the GUID


strGUID = getGUID.StdOut.ReadAll


arr1GUID = Split(strGUID, "{")


arr2GUID = Split("{"&arr1GUID(1), "}")


ttrGUID = arr2GUID(0)&"}"



WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" device ramdisk=[boot]\boot\PE\boot.wim,{ramdiskoptions}", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" path \windows\system32\boot\winload.exe", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" osdevice ramdisk=[boot]\boot\PE\boot.wim,{ramdiskoptions}", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" locale ZH-CN", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" systemroot \windows", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" winpe yes", 0, TRUE

WSHShell.run "bcdedit /store G:\bcd /set "&ttrGUID&" detecthal yes", 0, TRUE


WSHShell.run "Bcdedit /store G:\bcd /set {bootmgr} displayorder "&ttrGUID&" /addfirst", 0, TRUE


新建一个记事本,把上面脚本拷到记事本,文件另存为VBS后缀名,如bcd.vbs,运行bcd.vbs后在G盘根目录下将生成BCD文件,拷到相应目录。注意:前提是有BCDEDIT.EXE文件,XP系统里没有的。VISAWin7里可以直接运行。

3.SYSLINUX.TE文件的获取:
SYSLINUX.TE文件是用来进行启动菜单切换的,可以从GRUB4DOSBOOTMGR菜单切换到SYSLINUX菜单。



注:把syslinux.te.bin文件名改为syslinux.te,取消bin后缀,以te为后缀,此步为个人喜好。然后把文件拷贝到相应目录。

4.GRLDR.MBR文件是用来从BOOTMGR菜单切换到GRUB4DOS用的。

5.SYSLINUX.CFG内容如下:

prompt

default 5

timeout 60

TOTALTIMEOUT 150

F1 readme.txt

F2 syslinux.cfg

default vesamenu.c32

MENU BACKGROUND wall.png

MENU WIDTH 48

MENU HSHIFT 32

MENU ROWS 8

MENU HELPMSGROW 23

MENU TIMEOUTROW 15

MENU TABMSGROW 16

MENU CMDLINEROW 16

menu color screen 37;40 #00000000 #00000000 none

menu color border 30;40
#ff60CA00 #00000000 none

menu color title 1;36;40 #f01291a9 #00000000 none

menu color unsel 37;40 #ff60CA00 #00000000 none

menu color hotkey 37;40 #FF2D28 #00000000 std

menu color sel 7;37;40 #ffffffff #ff60CA00 none

menu color hotsel 37;40
#FF2D28 #00000000 std

menu color scrollbar 30;44 #00000000 #00000000 none

menu color tabmsg 37;40 #DCAB06 #00000000 std

menu color cmdmark 1;36;40 #ff60CA00 #00000000 none

menu color cmdline 37;40 #ff60CA00 #00000000 none

menu color pwdborder 30;47 #ffff0000 #00000000 std

menu color pwdheader 31;47 #ffff0000 #00000000 std

menu color pwdentry 30;47 #ffff0000 #00000000 std

menu color timeout_msg 1;36;44 #f01291a9 #00000000 none

menu color timeout 37;40 #FF2D28 #00000000 std

menu color help 10;37;40 #FF2D28 #00000000 std

menu color msg07 37;40 #90ffffff #00000000 std

MENU TITLE TDQ's Tools Disk

LABEL DOS

MENU LABEL [1]
DOS

kernel /boot/syslinux/memdisk c=80 h=2 s=18 floppy

append initrd=/boot/DOSTOOLS/DOS.img

TEXT HELP


Run DOS.

ENDTEXT


LABEL Passord

MENU LABEL [2]
Passord

kernel /boot/syslinux/memdisk c=80 h=2 s=18 floppy

append initrd=/boot/DOSTOOLS/Password.IMG

TEXT HELP



Passord.

ENDTEXT

LABEL GHOST

MENU LABEL [3]
GHOST

kernel /boot/syslinux/memdisk c=80 h=2 s=36 floppy

append initrd=/boot/DOSTOOLS/ghost11.img

TEXT HELP


Run GHOST.

ENDTEXT

LABEL DISKGEN

MENU LABEL [4]
DISKGEN

kernel /boot/syslinux/memdisk c=80 h=2 s=18 floppy

append initrd=/boot/DOSTOOLS/diskgen.img

TEXT HELP


Run DISKGEN.

ENDTEXT

LABEL Grub4dos

MENU LABEL [5]
Grub4dos

MENU DEFAULT

kernel /boot/syslinux/ldntldr

append initrd=/grldr

TEXT HELP


Run Grub4dos.

ENDTEXT

LABEL Windows PE

MENU LABEL [6]
Windows PE

kernel /boot/syslinux/ldntldr

append initrd=/boot/PE/bootmgr

TEXT HELP


Run Windows PE.

ENDTEXT


LABEL Boot from harddisk

MENU LABEL [7]
Boot from harddisk

KERNEL /boot/syslinux/chain.c32

append hd0

TEXT HELP


Boot from harddisk.

ENDTEXT

LABEL reboot

MENU LABEL [8]
reboot

kernel /boot/syslinux/reboot.c32

TEXT HELP


Reboot.

ENDTEXT


6.WINPE.ISO采用grub4dos方式引导,ISO文件为老九老毛桃070911版,在此感谢老九老毛桃创造的经典。

7.BOOT.WIM来自WAIK3.0,现在PE3.0已经开始流行。

8.其他文件主要自互联网和WIN7安装盘及WAIK3.0,在此不一一详述了,感谢网上的高手朋友提供相应文件!

四、VMware运行效果:





五、补充说明:
1.如果第一分区(BOOT)为当前激活分区,一切正常;如果使用“交换隐藏分区和数据分区”后出现数据分区(DATA)为当前激活分区,SYSLINUX将不能使用;请将第一分区(BOOT)置为当前激活分区。
2.启动设置完成后,可使用“交换隐藏分区和数据分区”将BOOT分区隐藏,避免误操作,文件夹美观。
3.三个启动菜单可根据需要修改,WIM文件的PE建议用BOOTMGR启动,ISO文件的建议用GRUB4DOS启动。

4.在windows7中“交换隐藏分区和数据分区”可能出现提示成功却显示不对,按Pauly大大提供的解决方案为:退出U盘,重新插入,即可正常识别。
5.第二分区(DATA)根目录下不能存放GRLDR文件,否则开机时按空格会先调用此GRLDR,造成错误,另一解决方案为创立MBR主引导纪录时给GRLDR重命名,如TGRLDR,原拷入第一分区(BOOT)的GRLDR也相应重命名为TGRLDR。


[ 本帖最后由 tdq868xin 于 2009-9-2 21:09 编辑 ]

启动菜单.part1.rar

100 KB, 下载次数: 3090, 下载积分: 无忧币 -2

启动菜单.part2.rar

55.99 KB, 下载次数: 2630, 下载积分: 无忧币 -2

评分

参与人数 3无忧币 +102 收起 理由
saintbird + 5 很给力!
cnn_5454 + 1
jjsfm + 96 精品文章

查看全部评分

165#
发表于 2015-12-18 23:56:34 | 只看该作者
巧妙的使用了GRUB强大的MBR
回复

使用道具 举报

164#
发表于 2014-7-10 02:55:57 | 只看该作者
  能把BOOT 下那些  镜像发个链接么
回复

使用道具 举报

163#
发表于 2014-6-2 09:09:43 | 只看该作者
非常感谢!!!!!!辛苦了
回复

使用道具 举报

162#
发表于 2013-9-22 15:57:57 | 只看该作者
学习,收藏起来。
回复

使用道具 举报

161#
发表于 2013-8-21 11:46:15 | 只看该作者
谢谢楼主的分享。学习了。
回复

使用道具 举报

160#
发表于 2013-6-10 10:09:46 | 只看该作者
谢谢分享了,下载了看看。
回复

使用道具 举报

159#
发表于 2013-4-25 13:38:43 | 只看该作者
感谢分享 学习。。。。。。
回复

使用道具 举报

158#
发表于 2013-1-1 14:56:22 | 只看该作者
看着有点难度,努力学习中。主要是洋码子看着头疼!
回复

使用道具 举报

157#
 楼主| 发表于 2012-1-19 20:31:29 | 只看该作者

回复 #157 2011qq6554243 的帖子

很久的东西了,可能已经过期,论坛里还有不少好的新方法,新工具,可以去试试。
回复

使用道具 举报

156#
发表于 2012-1-12 19:16:36 | 只看该作者
http://www.brsbox.com/filebox/do ... a6f2b775d05ea583876
这个地址不能下载你U盘里的文件
回复

使用道具 举报

155#
 楼主| 发表于 2012-1-10 19:25:33 | 只看该作者

回复 #155 2011qq6554243 的帖子

可以使用其他修改BCD菜单文件的工具,如论坛里的bootice,bcdtool等,它们都操作比较直观,方便。
回复

使用道具 举报

154#
发表于 2012-1-9 22:21:15 | 只看该作者
XP系统怎样才能运行bcd.vbs
回复

使用道具 举报

153#
发表于 2011-7-26 10:27:00 | 只看该作者
楼主还是俺老乡,很难得在这上面看到!
这么多人都在支持!我也来顶一个!
改天照你的方法试试!
谢谢!你分享了!
回复

使用道具 举报

152#
 楼主| 发表于 2011-7-21 19:36:41 | 只看该作者

回复 #152 2010zsy 的帖子

微软公司从Windows Vista系统开始使用的开机时系统选择菜单
因其内容保存在BCD文件中,故称它为BCD菜单
回复

使用道具 举报

151#
发表于 2011-7-21 17:00:49 | 只看该作者

回复 #7 天涯海角1216 的帖子

楼主说的  BCD菜单     是什么菜单啊?不明白
回复

使用道具 举报

150#
发表于 2011-5-26 19:56:14 | 只看该作者
学习一下,还是不懂啊,谢谢了
回复

使用道具 举报

149#
发表于 2011-5-26 13:07:45 | 只看该作者
非常感谢!!!!!!辛苦了
回复

使用道具 举报

148#
发表于 2011-4-18 18:35:15 | 只看该作者
这个好,强烈支持。学了了。
回复

使用道具 举报

147#
 楼主| 发表于 2011-4-12 20:59:22 | 只看该作者
自己随便新建一个文件,重命名为“grubhere.id”即可,它只是为"find"命令提供一个搜索参照目标而已。
回复

使用道具 举报

146#
发表于 2011-4-9 18:50:36 | 只看该作者
实例学习,十分浅显易懂!
回复

使用道具 举报

145#
发表于 2011-4-9 17:28:39 | 只看该作者
grubhere.id这个文件哪来的?有没有下载?
回复

使用道具 举报

144#
发表于 2011-4-6 19:02:22 | 只看该作者
有点看不懂,哎。。。。。。英文不好,哎。。。。。。。。。
回复

使用道具 举报

143#
 楼主| 发表于 2011-3-5 22:30:31 | 只看该作者

回复 #143 2011j04212 的帖子

刚刚在电脑里找了,BOOT.ZIP已经没有了,非常抱歉,用B+或其他方法也不错的,可以试试。18楼提供的“U盘文件”倒是电脑里还有。
回复

使用道具 举报

142#
发表于 2011-3-5 17:26:21 | 只看该作者
289078990@qq.com 麻烦把BOOT.ZIP发我邮箱,谢谢,给的链接不能下!
回复

使用道具 举报

141#
发表于 2011-3-2 21:47:28 | 只看该作者
好教程啊,慢慢学了...
回复

使用道具 举报

140#
 楼主| 发表于 2011-1-21 19:24:33 | 只看该作者

回复 #140 2010707957786 的帖子

请检查是否一步步按帖子中1楼步骤操作,如不是,请描述你的操作过程,及选择什么进入时出现Boot errror,是某一项不能进入或是全部不能正常进入。请尽量把情况请清楚。
回复

使用道具 举报

139#
发表于 2011-1-20 15:01:06 | 只看该作者

回复 #1 tdq868xin 的帖子

你好tdq868xin (神仙的本能)
我用BOOTICE V0.8 2010最新版,给我2G优盘写引导,按照你的教程操作,
然后重启,优盘启动,就出现Boot errror,我不知道是什么地方出了问题,能指点一下吗?
邮箱:707957786@QQ.com
回复

使用道具 举报

138#
发表于 2011-1-19 16:12:13 | 只看该作者
学习了,不过看的不是很明白
回复

使用道具 举报

137#
发表于 2011-1-2 16:00:25 | 只看该作者
双启有时候,还不如一启好用,比如说GRUB4DOS写入主引导区有时会造成电脑启动到自检通不过,卡死在自检时
回复

使用道具 举报

136#
 楼主| 发表于 2011-1-2 14:19:55 | 只看该作者

回复 #136 simonchan 的帖子

也许是U盘控制芯片的缘故吧,换个U盘再试试呢,具体情况我也不清楚,您可先在论坛或互联网是搜索一下相关内容,如仍找不到合适的解答,可发主帖寻求高手解答,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-16 04:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表