无忧启动论坛

标题: GRLDR能引导UD区外的第二个分区吗? [打印本页]

作者: yuan-0918    时间: 2012-1-17 19:37
标题: GRLDR能引导UD区外的第二个分区吗?
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=205307&;extra=page%3D1我想用UD区的内置GRLDR菜单来启动可见区的USB系统,求高手帮忙,谢谢了,GRUB4DOS版高手如云,请求帮助,
下图是USB系统区的启动文件

[ 本帖最后由 yuan-0918 于 2012-1-18 11:04 编辑 ]
作者: wwwsdzsgov    时间: 2012-1-17 20:03
应该可以吧
(ud)表示ud区,(cd)表示光盘,改成你需要的就可以了吧,或者用(),不管什么区都可以。
作者: yuan-0918    时间: 2012-1-17 20:58
title 【10】    启动         USB XP系统
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
map (hd1) ()
map () (hd1)
map --rehook
checkrange 0x21 read 0x8280 && cat --locatei=\"echo (hd1,2)/windows/system32/$winnt$.inf > nul
checkrange 0x21 read 0x8280 && cat --skip=%?% (hd1,2)/windows/system32/$winnt$.inf | set isopath=
checkrange 0x21 read 0x8280 && if exist %isopath% map --mem %isopath:~6,-1% (0xff) && map --rehook
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
chainloader /ntldr || chainloader /bootmgr


试着上面这样做不成功,启动了电脑上的XP

注意是把可见区再分两个区,启动后一区,请各位大师帮下忙。。。。。。。
作者: yuan-0918    时间: 2012-1-18 08:30
不点大师说
grldr 是根据中国 DOS 联盟上的一位会员的想法而做出来的。我也忘记了他是谁。

做成 grldr 起初是很困难的一件事。主要困难在于,如何让 BOOT.INI 来启动它。通过试验发现 BOOT.INI 有 8192 字节的启动秘密,后来还发现在偏移 0x200 以后的若干个字节区域有“跳转”秘密。

上面是BOOT。INI启动GRLDR,我现在要GRLDR启动BOOT。INI行吗?继续求助
作者: sratlf    时间: 2012-1-18 09:55
标题: 回复 #4 yuan-0918 的帖子
先把顺序理清了  boot.ini是ntldr必须的  只能是grldr启动nrldr   ntldr再调用boot.ini
作者: yuan-0918    时间: 2012-1-18 10:59
标题: 回复 #5 sratlf 的帖子
版主帮下忙,请问如何写菜单啊

[ 本帖最后由 yuan-0918 于 2012-1-18 11:10 编辑 ]
作者: xianglang    时间: 2012-1-18 11:33
GRLDR绝对启动不了BOOT.INI,在现阶段或者相当长一个阶段,也是连想都不要想了。
作者: 2011niumao    时间: 2012-1-24 01:17
原帖由 yuan-0918 于 2012-1-17 20:58 发表
title 【10】    启动         USB XP系统
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
map (hd1) ()
map () (hd1)
map --rehook
checkrange 0x21 read 0x8280 && cat - ...

这么复杂啊?
我想能启动电脑本地的,就说明已经成功了。毛病也许是重名了。
也许可以试试把USB上系统的ntldr 改名为其他,例如 utldr,
再把菜单的ntldr改了就是。
或者在find 语句中查找对象改为 USB系统中特有的,可以自己建立一个,本地硬盘没有的文件试试看。

[ 本帖最后由 2011niumao 于 2012-1-24 01:18 编辑 ]
作者: 2011niumao    时间: 2012-1-24 01:20
原帖由 yuan-0918 于 2012-1-17 20:58 发表
title 【10】    启动         USB XP系统
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
map (hd1) ()
map () (hd1)
map --rehook
checkrange 0x21 read 0x8280 && cat - ...

感觉最后两句就够了,其余的不懂有什么作用。
在我的电脑上就只要最后两句。另外要加上boot一句。试试

find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
chainloader /ntldr || chainloader /bootmgr
boot

[ 本帖最后由 2011niumao 于 2012-1-24 01:21 编辑 ]
作者: 青青草    时间: 2012-1-24 10:47
标题: 回复 #9 2011niumao 的帖子
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr

#   在所有磁盘类设备的根目录下寻找 ntldr文件,并将找到的设备设置为根,如果失败,则在所有磁盘类设备的根目录下寻找 bootmgr文件,并将找到的设备设置为根
chainloader /ntldr || chainloader /bootmgr
#   加载引导文件ntldr,如果失败,则加载引导文件bootmgr
boot
#   确定进行启动,菜单中可以省略该句,命令行模式下不可省略
作者: dreamneo    时间: 2012-1-24 11:07
标题: 回复 #5 sratlf 的帖子
开始有点乱,一看完这句清晰了
作者: dreamneo    时间: 2012-1-24 11:21
原帖由 <i>2011phzhc</i> 于 2012-1-24 10:47 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2376046&ptid=205308" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr<br />
<br />
#   在所有磁盘类设备的根目录下寻找 ntldr文件,并将找到的设备设置为根,如果失败,则在所有磁盘类设备的根目录下寻找 boot ...
<br />

--devices=h,他会搜索硬盘和USB设备吧?估计先启动的就是HD0,0上的系统,不会启动他USB上的系统,我觉得加一句寻找特定文件的语句是否可行?
比如在U盘根目录让一个特定文件,如 test.ini 开始加一句  find --set-root /test.ini
这样是不就会将有TEST.INI的设备设置为默认的了,然后菜单就不用--set-root --devices=h 这个命令了吧?或者更改NTLDR的名字,菜单也更改一下
作者: 2011niumao    时间: 2012-1-24 14:18
原帖由 2011phzhc 于 2012-1-24 10:47 发表
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr

#   在所有磁盘类设备的根目录下寻找 ntldr文件,并将找到的设备设置为根,如果失败,则在所有磁盘类设备的根目录下寻找 boot ...


哦。谢谢解释。

楼主原来的菜单里,find语句出现了两次,应该一次就够了。

我这儿用的是移动硬盘,不是优盘。情况可能不一样的。

感觉上用移动硬盘比较容易也比较快。

不过我也不用find语句。都是用root语句手工指定。

root (hd0,1)

或者

root (hd1,1)

这个方式能否适合于优盘呢?建议楼主试试。

注意第一个硬盘编号为0,第一个分区标号也为0。

上述(hd0,1) 1指的是第二个分区。第一个0指第一个硬盘。

在命令行下用 ls 命令查看一下优盘是hd0还是hd1就知道了。

[ 本帖最后由 2011niumao 于 2012-1-24 14:39 编辑 ]
作者: 2011niumao    时间: 2012-1-24 14:36
此外USBXP系统也许会有问题。推荐使用(我用的)LPC这个,推荐在移动硬盘上用:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=162080&page=73#pid2373634
作者: zqywult    时间: 2012-1-24 14:54
”......注意是把可见区再分两个区,启动后一区,.....“

那么实际是要启动第三个分区,这个分区在WINDOWS下也是不可见的吧??
作者: yuan-0918    时间: 2012-1-29 17:59
标题: 回复 #15 zqywult 的帖子
是的,不可见。。。。。。。。。




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