无忧启动论坛

标题: 把grub4dos装入Vista启动项(非MBR)的批处理【10-22更新】 [打印本页]

作者: lianjiang    时间: 2007-5-24 20:48
标题: 把grub4dos装入Vista启动项(非MBR)的批处理【10-22更新】
11-05 建议看“新版“Vista启动项中安装与卸载grub4dos项目的批处理”【10-22更新】
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=112291&highlight=

已包括此帖安装部分内容,且有卸载。

10-22 更新
-----------------------
把grub4dos装入Vista启动项(非MBR)的批处理。

把grub4dos装入Vista启动项,比装入MBR相对来说要安全。对于vista系统,不能通过fdisk /mbr来恢复mbr,这样会造成vista无法启动。

关于手动把grub4dos装入Vista的启动项的方法,网上有一些介绍。比起winxp修改Boot.ini来,操作要麻烦不少。

主要就是操作过程中要产生一个ID号【形式如:b88a2da4-0a4e-11dc-813a-00e04c75ef59】,需要手动输入3次,实在是麻烦。因此看到手动操作的方法后,由于不适合自动处理,也就没想在gghost里加入装入vista启动项的选项,对vista系统只是采用装入MBR的办法。过了好长时间,也没见到网上有自动安装的办法。于是就想能不能用批处理来自动完成整个装入操作。看了批处理就知道,只要想到了,处理起来其实很简单,没有任何技术含量。

下面的批处理是从本人的“GGhost备份恢复工具”中简化而来的,自动完成。供需要者参考。

=========================================
@echo off
rem by lianjiang
cls
echo.
echo   请以管理员身份运行。
echo.
pause
set gname=GRUB for DOS
set vid=
set timeout=5
bcdedit >bcdtemp.txt
type bcdtemp.txt | find "\grldr.mbr" >nul && echo. && echo  BCD启动项中已有grub4dos的项目,无需再安装。&& pause && goto exit
bcdedit  /export "Bcd_Backup" >nul
bcdedit  /create /d "%gname%" /application bootsector >vid.ini
for,/f,"tokens=2 delims={",%%i,In (vid.ini) Do (
                  set vida=%%i
)
for,/f,"tokens=1 delims=}",%%i,In ("%vida%") Do (
                  set vid={%%i}
)
echo %vid%>vid.ini
bcdedit  /set %vid% device partition=%systemdrive%  >nul
bcdedit  /set %vid% path \grldr.mbr >nul
bcdedit  /displayorder %vid% /addlast >nul
bcdedit  /timeout  %timeout% >nul
if exist grldr.mbr copy grldr.mbr %systemdrive%\ /y && goto exit
echo.
echo   稍后请自行把grldr.mbr拷贝到%systemdrive%\根目录
echo.
pause
:exit
del bcdtemp.txt >nul


=========================================
参考资料:

利用NT的启动管理器引导GRLDR.MBR   (时空论坛bean)

经过适当的修改,GRLDR.MBR可以直接由NT的启动管理器来引导,
在2000/XP/2003下,在boot.ini的最后加上一行:
C:\GRLDR.MBR="Boot GRLDR.MBR"
在Vista下,可以使用bcdedit,方法在fujianabc的贴子里有介绍,摘录如下:
md a:\boot 创建a:\boot文件夹
bcdedit /createstore a:\boot\bcd  新建一个bcd文件
bcdedit /store a:\boot\bcd -create {bootmgr} /d "Boot Manager"  新建一个用bootmgr加载的启动项
bcdedit /store a:\boot\bcd /create /d "bootsect" /application bootsector 此项目用bootmgr加载一个bootsector项
执行上面命令后返回一个{ID},然后执行
bcdedit /store a:\boot\bcd /set {ID} device boot  设置启动设备
bcdedit /store a:\boot\bcd /set {ID} path \grldr.mbr  设置启动扇区路径和文件名
bcdedit /store a:\boot\bcd /displayorder {ID} /addlast  加入以上设置项目
当然,你还需要把附件中的grldr.mbr文件拷贝到C:\下。
如果引导正常,GRLDR.MBR运行,它会在硬盘上所有的FAT16/FAT32/NTFS/EXT2分区的根目录寻找并
装载GRLDR,其效果就和把GRLDR.MBR安装到MBR里一样。

[ 本帖最后由 lianjiang 于 2009-11-17 08:40 编辑 ]
作者: wang6610    时间: 2007-5-24 20:51
瞧瞧。。。。。。。。。。。。
作者: 无翼鸟飞翔    时间: 2007-5-24 21:49
不错的东西。.
当然。如果再加行自动复制GRLDR.MBR的命令就更好了。
全自动
,...再看了下
if exist grldr.mbr copy grldr.mbr c:\ /y && goto exit
echo.
echo   稍后请自行把grldr.mbr拷贝到C:\根目录
echo.
pause
:exit

已经有了。....

[ 本帖最后由 无翼鸟飞翔 于 2007-5-24 10:59 PM 编辑 ]
作者: xiaojohn    时间: 2007-5-24 22:34
好东东。。。。。。真正需要
作者: tegl    时间: 2007-5-24 23:12
谢谢,学习一下
作者: boy0750    时间: 2007-5-24 23:55
先支持一下再看,应该是改MBR吧
有没有设置好先备份MBR,方便以后卸载
作者: xupei    时间: 2007-5-25 00:06
先支持一下再看,先收藏;
作者: lianjiang    时间: 2007-5-25 06:15
原帖由 boy0750 于 2007-5-24 11:55 PM 发表
先支持一下再看,应该是改MBR吧
有没有设置好先备份MBR,方便以后卸载

不改写mbr,是装入启动项的。类似于装入win xp 的boot.ini。比装入mbr安全些。
作者: bd540    时间: 2007-5-25 07:16
还是不错的:victory:
作者: 阿非    时间: 2007-5-25 07:39
这个,
这个,
这个







作者: lianjiang    时间: 2007-5-25 08:10
原帖由 阿非 于 2007-5-25 07:39 AM 发表
这个,
这个,
这个







只是本人以前没见到过,5.1前才想到的(gghost v7.1中采用)。修改标题。hehe

[ 本帖最后由 lianjiang 于 2007-5-25 08:29 AM 编辑 ]
作者: 无翼鸟飞翔    时间: 2007-5-25 08:13
标题: 回复 #11 lianjiang 的帖子
呵呵。.事实上。.确实不算原创呢。..
我早些时候就在其他的地方看过。...
不过。在本论坛.确实是原创.这没错。.
作者: nndnnd    时间: 2007-5-25 08:25
支持,进来看看。。。
作者: lianjiang    时间: 2007-5-25 08:28
原帖由 无翼鸟飞翔 于 2007-5-25 08:13 AM 发表
呵呵。.事实上。.确实不算原创呢。..
我早些时候就在其他的地方看过。...
不过。在本论坛.确实是原创.这没错。.

既然网上早有了,那就不算了。呵呵。只是本人以前没见到过,5.1前才想到的(gghost v7.1中采用)。修改标题。
作者: gzlm    时间: 2007-5-25 09:15
这么神秘?看看吧,希望有启发!
作者: jyssysz    时间: 2007-5-25 10:21
看看,学习一下。
学习中。
作者: sinhing    时间: 2007-5-26 01:26
标题: 哦.努力的看.
加油!!!!!!!!!!!!
作者: ycool1984    时间: 2007-5-26 01:30
这个,
这个,
这个







作者: secowu    时间: 2007-5-26 08:40
破机子,装不上
vista
没机会测试了
作者: lucky    时间: 2007-5-26 09:22
这个我回复看看!:lol :lol
作者: caiwei5566    时间: 2007-5-26 15:28
kankan----
作者: victor888    时间: 2007-5-26 15:33
比较恨回复贴。
作者: yzyzyz    时间: 2007-5-26 16:05
学习一下学习一下学习一下
作者: xuxuezeng    时间: 2007-5-26 16:14
学习一下学习一下学习一下
作者: barton    时间: 2007-5-30 13:38
看看



支持


vsldr的相关部分by wwashington,用了一些外部程序
  1. :MenuGrub
  2. bcdedit /v | sed -e "/Grldr.mbr_BCD/,/Grldb.mbr_BCD/d" | gawk "/{/{print $0}" | gawk "/-/{print $2}" | tail -1 | tr -d "\n" > C:\bcdid.txt
  3. echon -n "bcdedit /default " > C:\bcdid.cmd
  4. type C:\bcdid.txt >> C:\bcdid.cmd
  5. Call C:\bcdid.cmd
  6. bcdedit /enum bootmgr
  7. del C:\bcdid.*
  8. goto VsldrEnd
复制代码

[ 本帖最后由 barton 于 2007-5-30 01:45 PM 编辑 ]
作者: lianjiang    时间: 2007-5-30 14:04
原帖由 barton 于 2007-5-30 01:38 PM 发表
看看



支持


vsldr的相关部分by wwashington,用了一些外部程序:MenuGrub
bcdedit /v | sed -e "/Grldr.mbr_BCD/,/Grldb.mbr_BCD/d" | gawk "/{/{print $0}" | gawk "/-/{print $2}" | tail -1 | tr  ...

高,可惜看不懂。wwashington好像是个大人物。
作者: hntn    时间: 2007-5-30 14:30
先支持一下再看,收藏先!~
作者: barton    时间: 2007-5-30 16:38
原帖由 lianjiang 于 2007-5-30 02:04 PM 发表

高,可惜看不懂。wwashington好像是个大人物。




echon gawk这两个是外部程序
作者: zqjiang    时间: 2007-5-30 19:06
谢谢分享!谢谢分享!
作者: love5553    时间: 2007-5-30 19:27
谢谢分享
之前用VISTA的时候还用不了G4D
现在好了
作者: lianjiang    时间: 2007-5-30 19:29
原帖由 barton 于 2007-5-30 04:38 PM 发表

echon gawk这两个是外部程序

在启动项添加一个项目,就用了2个外部程序。我的可没用外部程序,是系统里带的,个人感觉还是我的批处理好些。呵呵。
作者: hahahakk    时间: 2007-5-30 20:43
还没打算用vista呢。。谢谢分享
作者: ali88home    时间: 2007-5-30 22:22
没用过,看看先:o
作者: Giorno    时间: 2007-5-30 23:41
終於看到解決的way...thx
作者: barton    时间: 2007-5-31 08:23
原帖由 lianjiang 于 2007-5-30 07:29 PM 发表

在启动项添加一个项目,就用了2个外部程序。我的可没用外部程序,是系统里带的,个人感觉还是我的批处理好些。呵呵。




:D


时代在发展,技术在进步。。。。。。。。。
作者: 弄潮儿-NET    时间: 2007-5-31 08:34
时代在发展,技术在进步。。。。。。。。。各位在衰老
作者: barton    时间: 2007-5-31 09:00
水王出现了



:L
作者: l123456789    时间: 2007-5-31 19:24
先支持一下再看,先收藏;
作者: wohaoaiwolaopoa    时间: 2007-5-31 20:43
看一下,好不好。支持一下。
作者: freesoft00    时间: 2007-5-31 22:41
虽然暂时还用不到vista,但还是下载来看看这个
作者: rjzrjc86    时间: 2007-5-31 23:02
好猛的技术啊,呵呵:lol :lol
作者: gmy    时间: 2007-5-31 23:53
看看,有没有新意。
作者: 990856    时间: 2007-6-1 13:18
支持,最近又把VISTA搞丢了,早有这个就好了
作者: lianjiang    时间: 2007-6-1 13:25
原帖由 990856 于 2007-6-1 01:18 PM 发表
支持,最近又把VISTA搞丢了,早有这个就好了

5.1前我的gghost里就用了把grub4dos自动装入vista启动项,只是没什么人注意到吧。呵呵。
作者: lianjiang    时间: 2007-6-1 13:31
原帖由 gmy 于 2007-5-31 11:53 PM 发表
看看,有没有新意。

雕虫小技而已。
不过,版主的一键ghost该出支持vista的版本了。

[ 本帖最后由 lianjiang 于 2007-6-1 01:34 PM 编辑 ]
作者: q8q8feng    时间: 2007-6-1 13:45
:) 今天才注意到这个帖子 是lianjiang朋友的哈 ^_^ 不错的东西
作者: hnnylwz    时间: 2007-6-1 13:46
我来学习一下,楼主不要太小气吗
作者: lianjiang    时间: 2007-6-1 14:01
原帖由 q8q8feng 于 2007-6-1 01:45 PM 发表
:) 今天才注意到这个帖子 是lianjiang朋友的哈 ^_^ 不错的东西


将军见笑了,呵呵。
只是对新手应该还是有些用处的。
谢谢支持。
作者: 14800    时间: 2007-6-1 14:18
我很懒的:)
作者: sypl888    时间: 2007-6-1 19:26
要是MBR把VISTA的问题解决了,就更好了。
作者: lianjiang    时间: 2007-6-1 20:00
原帖由 sypl888 于 2007-6-1 07:26 PM 发表
要是MBR把VISTA的问题解决了,就更好了。

不知此话的具体意思。
我的gghost是采用安装时自动备份vista的mbr,此备份mbr可在dos下用gghost里的批处理自动恢复。因此有光盘版gghost的话,就能基本解决vista由于mbr被清除而造成的无法启动问题。
作者: willsion    时间: 2007-6-1 20:00
支持一下。。。。。。。。
作者: wjh6088    时间: 2007-6-1 20:50
回复了再看完整版,谢谢
作者: willsion    时间: 2007-6-1 21:58
for,/f,"tokens=2",%%i,In (vid.ini) Do (
                 set vid=%%i
)


应该是
for,/f,"tokens=3",%%i,In (vid.ini) Do (
                 set vid=%%i
)

才对!
作者: willsion    时间: 2007-6-1 22:02
不知有没有办法将grub加入到vista安装光盘bootmgr的启动菜单。

即vista光盘启动后,有两个选择项,其中一个是grub。
作者: lianjiang    时间: 2007-6-1 22:42
原帖由 willsion 于 2007-6-1 09:58 PM 发表


应该是
for,/f,"tokens=3",%%i,In (vid.ini) Do (
                 set vid=%%i
)

才对!

我一直是那样用的,没问题,使用gghost的网友也说能正常是用gghost。
刚才进入vista又试了一下,得到的是“项 {5af444bf-f4bf-11db-979e-00e04c75ef59} 成功创建。”,因此用"tokens=2"是对的。
分析原因,可能你是在e文系统下用的,这样出现的位置可能就成了3了。
看来需要完善1楼的批处理,增加判断条件,或者换掉截取的特征。以适用于各语种的环境。

暂时解决办法:中文的用一楼的批处理,
英文的系统,用
for,/f,"tokens=3",%%i,In (vid.ini) Do (
                 set vid=%%i
)
换掉原来的
for,/f,"tokens=2",%%i,In (vid.ini) Do (
                 set vid=%%i
)
作者: 疯狂の石头    时间: 2007-6-5 07:31
要回复...晕死..
作者: 弄潮儿-NET    时间: 2007-6-5 07:56
看不懂批..........处????........................理.走人了.
作者: infornet    时间: 2007-6-5 10:39
瞧瞧,來
研究研究。
作者: Gandalf    时间: 2007-6-5 13:02
看一下。有个问题,如果已经先前运行过一次了,在运行是不是会出现两个启动条目,再运行,又会多一个呢?
作者: TurtleRock    时间: 2007-6-5 13:13
让我看看吧,字数还不够,凑一点
作者: lianjiang    时间: 2007-6-5 13:18
原帖由 Gandalf 于 2007-6-5 01:02 PM 发表
看一下。有个问题,如果已经先前运行过一次了,在运行是不是会出现两个启动条目,再运行,又会多一个呢?


是的,装过了再运行,会出现你说的情况。
我的gghost里,卸载时会卸掉此条目的。
批处理开始已备份了bcd,也可用备份的bcd恢复。
作者: lianjiang    时间: 2007-6-5 13:20
原帖由 Gandalf 于 2007-6-5 01:02 PM 发表
看一下。有个问题,如果已经先前运行过一次了,在运行是不是会出现两个启动条目,再运行,又会多一个呢?


其实你说的,与一些win xp下往boot.ini中添加项目的工具一样,重复安装也可能会出现多个条目。
作者: wang6610    时间: 2007-6-5 13:34
改进这一点还需向Gandalf 请教。
作者: lianjiang    时间: 2007-6-5 13:37
有空弄个安装前检测,及卸载的批处理。
作者: cchessbd    时间: 2007-6-5 13:38
原帖由 lianjiang 于 2007-6-5 01:20 PM 发表


其实你说的,与一些win xp下往boot.ini中添加项目的工具一样,重复安装也可能会出现多个条目。


find /i /v "菜单特征" <boot.bak>boot.ini
先去处掉自己的菜单项
作者: Null    时间: 2007-6-5 17:16
看看。。。。。

PS:
先保存。。。。
作者: pywuming    时间: 2007-6-5 18:32
好东东。。。。。。真正需要.
作者: lianjiang    时间: 2007-6-5 19:01
06-05 更新:增加安装前对启动项的检查,避免重复安装。
作者: dfasdf34fsdf    时间: 2007-6-6 11:26
take a look
作者: jucy    时间: 2007-6-6 15:06
学习一下!
:@ :@ :@
作者: wfccsqk    时间: 2007-6-6 23:51
正在搜索这个资料 谢谢更新
作者: dayes    时间: 2007-6-7 04:06
难得一见的好帖
千年等一回的好帖
好得不能再好的好帖
惊天地且泣鬼神的好帖
让人阅毕击掌三叹的好帖
让人佩服得五体投地的好帖
让人奔走相告曰须阅读的好帖
让斑竹看后决定加精固顶的好帖
让人看后在各论坛纷纷转贴的好帖
让人看后连成人网站都没兴趣的好帖
让人看完后就要往上顶往死里顶的好帖
让人看后不断在各种场合重复引用的好帖
让人一见面就问你看过某某好帖没有的好帖
让人半夜上厕所都要打开电脑再看一遍的好帖
让个读过后都下载在硬盘里详细研究欣赏的好帖
让人走路吃饭睡觉干什么事连做梦都梦到它的好帖
让人翻译成36种不同外语流传国内外世界各地的好帖
让人纷纷唱道过年过节不送礼要送就送某某帖子的好帖
作者: onedream06    时间: 2007-6-7 12:56
窥一窥具体内容.......
作者: haohaodlam    时间: 2007-6-22 16:19
为什么要我回呢
作者: hytmtet    时间: 2007-6-22 16:33
貌似我以前回过哦
怎么还要回才能看
作者: yulongjin    时间: 2007-6-26 15:57
有什么了不起的,强行让人回复才能看呀!
作者: lianjiang    时间: 2007-6-26 16:24
原帖由 yulongjin 于 2007-6-26 03:57 PM 发表
有什么了不起的,强行让人回复才能看呀!

没什么了不起的。呵呵。
没人强迫你看呀。
作者: maaybe    时间: 2007-6-26 19:11
想看下,学习学习:D
作者: febwind    时间: 2007-6-26 23:34
看看,学习一下。
学习中。:)
作者: nanzhao    时间: 2007-6-28 21:16
have a look
作者: laoduo123    时间: 2007-7-9 20:47
好好好好好好好好好
作者: yqi99    时间: 2007-7-17 22:39
kankan.....
作者: duyilin    时间: 2007-7-19 09:19
好贴,一定要顶你个肺
作者: lddxxy    时间: 2007-7-19 21:27
学习一下仍然让vvv
作者: qjbb23    时间: 2007-7-24 23:39
这个东西太好了,安全啊
作者: knight1006    时间: 2007-7-26 19:56
先支持一下,好好学习学习
作者: asionwu    时间: 2007-7-26 20:40
我顶你一个 :) :)
作者: saiddy    时间: 2007-7-27 02:48
相当有有 很感谢哦!!!!!!!!!!
作者: 堕落之风    时间: 2007-7-27 11:43
到现在我对启动项的不是很了解.支持下先
作者: mmBlue    时间: 2007-7-27 21:42
看看。。。。。。。。。。。。。。。。。:lol
作者: akung    时间: 2007-7-29 13:42
感谢大大的分享!学习了,谢谢~~
作者: 风扑    时间: 2007-7-29 14:12
哎呀呀,BCD这玩意可烦了。学习一下
作者: armymangl    时间: 2007-7-29 15:08
支持一下,东西不错:D
作者: china-bin    时间: 2007-7-29 15:15
来学习一下   貌似有点不太明白呀
作者: wjgyz740526    时间: 2007-7-29 20:53
这个应该是不错的,看看先
作者: wwbs    时间: 2007-7-30 12:10
标题: 顶一下
我不知道行不,纯顶一下而已
作者: xiayang695    时间: 2007-7-31 09:30
这个帖子写的很有必要啊,昨天VISTA,小破机跑的还挺快哦~~
作者: lianjiang    时间: 2007-7-31 14:34
07-31 更新:原批处理,只针对中文版vista,其它语种需相应修改批处理中参数。
           1,修改字符处理办法,适用于不同语种的vista系统。
           2,用%systemdrive%代替C:,避免windows下手动修改盘符后可能造成不能启动问题。
作者: LOL    时间: 2007-7-31 15:32
一点都不了解bcedit


学习下,




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3