无忧启动论坛

标题: U+0PE——寻找U+引导grub4dos最简单方法体会 [打印本页]

作者: pseudo    时间: 2011-3-2 22:25
标题: U+0PE——寻找U+引导grub4dos最简单方法体会
原帖由 快雪时晴 于 2011-3-2 09:38 发表
...
想知道U+是如何将控制权移交的,怎么知道要给谁?
或许UltraISO在做这项工作的时候会提取原ISO的引导文件,
但是BOOTICE格式化U+呢(比如一个全新U盘),那接下来如何知道传导过程会如何发生?...

网友问及U+,我发个帖子谈点体会吧。



坛里人称U+,我不知道出处。感觉大意是用UltraISO工具的“写入硬盘映像”功能,将ISO映像写入U盘,并将U盘弄成USB-HDD+等格式。

我玩grub4dos,对U+、syslinux关注少。但许多人不时问起如何U+启动0PE。所以,一两年前,我花了点时间试了一下。

0pe是grub4dos引导的,但Ultraiso的U+不支持g4d。所以必须从其它引导转grub4dos引导。

但由dos、ntldr等转grub4dos,与引导相关的文件多,体积大。
以dos为例,你得有io.sys、command.com、grub.exe吧。而nt启动,则要有ntldr/setupldr.bin、ntdetect.com之类。
这些文件在发布pe时提供给用户的话,是额外负担。而且看着不爽。

我发现U+写u盘时,Ultraiso并不看iso本身引导信息,只看iso里的文件。你有io.sys,它就给你的u盘弄dos引导。
于是,我在iso中弄了个SYSLINUX.CFG文件,引诱Ultraiso把syslinux引导相关内容写入u盘
从结果来看,写入后,u盘上自动多了个文件ldlinux(名字记不清了),还好文件不大。

然后,在SYSLINUX.CFG文件里,我只要设置尽快转grub4dos引导就行了,所以只包含一行内容:
  1. default /0PE.BIN
复制代码
如果写成普通syslinux菜单项就复杂了,我也不大会。况且那样好像还需要vesamenu.c32之类的文件,徒增代价。
这里,0PE.BIN就是grldr改名而来。改名是不得已,否则ldlinux不认啊。

最终,0PE支持U+的代价,就是在ISO中增加一个只有一行的/BOOT/SYSLINUX/SYSLINUX.CFG文件。
在U+直接写入u盘后,将u盘根目录的grldr改名或复制成0PE.BIN,就可以启动了。


启动流程大致是:
USB-HDD+的MBR---->ldlinux---->SYSLINUX.CFG---->0PE.BIN---->0PE......

这好像是迄今让U+引导grub4dos的最经济的方式
我找到此法时,当时坛里没见到类似先例。当然我对U+、syslinux很不了解。很可能贻笑大方了。



最后,对grub4dos与syslinux菜单互转谈点个人看法。

个人认为转来转去不大必要,只需grub4dos一种就够了。
如果怕遇到grub4dos不行,而syslinux行的情形,那么准备两种也可以。
遇到grub4dos不灵,就让syslinux先引导,然后像上面那样,用一行命令马上转入grub4dos菜单,不必再弄普通syslinux菜单。
grub4dos灵,就没必要转syslinux。
作者: pseudo    时间: 2011-3-2 22:26
谁有兴趣试试,上面
default /0PE.BIN
改为
kernel /grldr
行不行。
如果可以,grldr就不用改名为0PE.BIN了。

另外,syslinux.cfg是可以移到根目录,或syslinux一级目录的。如果多处同时存在该文件,它们是有个优先次序的。

[ 本帖最后由 pseudo 于 2011-3-2 23:40 编辑 ]
作者: 2011rabbit    时间: 2011-3-2 23:00
标题: 回复 #1 pseudo 的帖子
哥们你咋想的 你把 grldr 改成io.sys  不是照样引导
作者: huangdi168    时间: 2011-3-2 23:15
占位待用too......................
作者: 快雪时晴    时间: 2011-3-3 15:19
标题: 回复 #1 pseudo 的帖子
原来这样,我的1G优盘(MBR+1个FAT32激活主分区)用BOOTICE写ULTRAISO HDD+ 主引导,分区采用G4D,在IBM T41上,等待了8秒左右开始启动了,如果MBR写ZIP+或G4D或PLOP的话,都会失败。
但似乎并没有通过MBR来传导控制,因为U+会找不到IO.SYS,ntldr或者SYSLINUX等的 ,我只有grldr,但照常引导。
前一阵子不点讨论过,可能是BIOS代劳了,先检查MBR是否合法(厂家内部标准),是,忽略MBR,直接跳到PBR上

等了几天了,感觉时间很长,非常感谢p大作答,开始明了一点U+了
作者: 天涯海角1216    时间: 2011-3-3 15:22
U+只是引导这个激活的主分区而已,用bootice写入分区引导grldr,就可以直接引导grldr了呀?
作者: 快雪时晴    时间: 2011-3-3 16:00
原帖由 天涯海角1216 于 2011-3-3 15:22 发表
U+只是引导这个激活的主分区而已,用bootice写入分区引导grldr,就可以直接引导grldr了呀?

和我猜测、实验结果的一样,但与p大实验结果不一样
作者: pseudo    时间: 2011-3-3 17:29
我不大懂U+。
我这里说的问题,也许应该这样表述:
给你一个Ultraiso工具,一个iso文件(假定里面只有一个grldr文件),
你怎样用最小代价,
弄出一个USB-HDD+格式的可启动U盘,启动后能进入grldr(后面就不提了)。
作者: pseudo    时间: 2011-3-3 17:36
天涯的意思,可能是用bootice写USB-HDD+的MBR、g4d的PBR。
不过,如果我用bootice,就不会沾USB_HDD+的边了。
作者: ones    时间: 2011-3-3 17:56
可能是有些新手并不太懂grub4dos,而U+比较方便,所以拿到PE就直接U+了
我觉得舍弃grub4dos的强大功能太不值得了,如果不舍弃grub4dos,那U+步骤可以直接省略
作者: dvd008    时间: 2011-3-3 18:18
U+一个BOOTMGR直接引导的ISO,看看启动界面
作者: blithewind    时间: 2011-3-3 21:28
原帖由 <i>pseudo</i> 于 2011-3-2 22:26 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2172160&ptid=188217" 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 />
谁有兴趣试试,上面<br />
default /0PE.BIN<br />
改为<br />
kernel /grldr<br />
行不行。<br />
如果可以,grldr就不用改名为0PE.BIN了。<br />
<br />
另外,syslinux.cfg是可以移到根目录,或syslinux一级目录的。如果多处同时存在该文件,它 ...
<br />估计不行。看syslinux的文档可见其对扩展名有较严格的限制。我想当时P大肯定试过了的,不然不会出来个0pe.bin

目前看,u+没有优势,主要是整体写入是破坏性的,据测试部分量产后的u盘量产后读写速度提高,而u+后可能降速,这是两个主要的不足。
还有一点,u+不支持最新的syslinux,也造成其在启动方面的优势边缘化。
作者: pseudo    时间: 2011-3-3 21:47
标题: 回复 #12 blithewind 的帖子
还是值得试试。我当时试得不多。
default肯定计较扩展名,kernel未必。
作者: 2010eflying    时间: 2011-3-4 00:27
不过我都是将U盘用DISKGENUIS划分成两个分区,将第一个区显示,第二个区隐藏,两个区都是主分区,然后主分区写入GRUB4DOS,延时3秒,然后第二主分区写入BOOTMGR引导,这样子,就可以按F11引导GRUB4DOS,不按F11三秒过后引入BOOTMGR,这样子算不算比较完美了,我从来没用过ULTRAISO写入引导,但我这样子,最少测试过15台电脑了,都能准确地引导(有些主板可能不支持message文件,其中有两台机不能识别)
作者: 快雪时晴    时间: 2011-3-4 10:23
标题: 回复 #14 2010eflying 的帖子
用Xorldr岂不更好,你那个??mbr我不会用,还会生成什么exe
作者: pseudo    时间: 2011-3-4 10:44
嗯,方法不少。

回到本帖问题:
假定某些用户只会用ultraiso,不会其它工具。你有一个必须通过grldr引导的pe的iso。
怎样使这些用户方便地做出可启动u盘。并且你为此付出的代价最小。

目前我找到的方法,代价是加个只有一行内容的文件。向用户提供加了文件的iso,并且要求用户做改名或复制工作。

当然,如果我在iso里事先复制好,这些用户就不用复制了。但事先复制的话,对用其它启动方式的用户又用不着。
作者: blithewind    时间: 2011-3-4 13:11
原帖由 pseudo 于 2011-3-3 21:47 发表 还是值得试试。我当时试得不多。default肯定计较扩展名,kernel未必。
测试不可.还可以default /0pe.0  。必须使用default ,否则不识别.对于grldr,还有个办法:default /ldntldr  append initrd=/grldr也可启动0PE,代价是多个头文件,当然这个文件可藏得深一些
作者: pseudo    时间: 2011-3-4 14:13
标题: 回复 #17 blithewind 的帖子
谢谢。
头文件方案也不错。
作者: rjn2307    时间: 2011-3-4 17:06
default A
label A
boot /grldr
#kernel /grub.exe
不增加任何文件grldr和grub.exe均能加载
作者: 紫狐    时间: 2011-3-4 17:16
我目前是把u盘做成DOS,启动后加载grub.exe,测试过不少主板,发现ntldr在不同主板兼容性差异很多,经常这块主板可以启动,换了块主板就无法启动,DOS反而大部分主板都能正常启动,所以后期就一直使用DOS加载grub.exe了,这样,不需要grub的时候也可以直接使用DOS。
作者: blithewind    时间: 2011-3-4 18:50
原帖由 rjn2307 于 2011-3-4 17:06 发表 default Alabel Aboot /grldr#kernel /grub.exe不增加任何文件grldr和grub.exe均能加载
boot方案最佳,启动文件与扩展名关系不大.kernel方案对扩展名要求严格
作者: blithewind    时间: 2011-3-4 19:17
原帖由 blithewind 于 2011-3-4 18:50 发表 boot方案最佳,启动文件与扩展名关系不大.kernel方案对扩展名要求严格
测试发现,pxelinux下boot命令也优于kernel,可直接boot 0pe.bin或boot grldr来网启0PE了。我合盘可以去掉0PE.0了,
作者: cool433    时间: 2011-3-4 19:22
呵呵。一口气看完了。我是菜。现在还搞不懂GRLDR如何加载PE文件启动。在说启动PE的文件是那几个。在什么地方提取我都不知道。。
作者: pseudo    时间: 2011-3-4 20:28
原帖由 rjn2307 于 2011-3-4 17:06 发表
default A
label A
boot /grldr
#kernel /grub.exe
不增加任何文件grldr和grub.exe均能加载

谢谢。

有机会我试试能否只写一行
boot /grldr
作者: rjn2307    时间: 2011-3-4 21:58
原帖由 紫狐 于 2011-3-4 17:16 发表
我目前是把u盘做成DOS,启动后加载grub.exe,测试过不少主板,发现ntldr在不同主板兼容性差异很多,经常这块主板可以启动,换了块主板就无法启动,DOS反而大部分主板都能正常启动,所以后期就一直使用DOS加载gr ...

我是将maxdos拆解以文件形式部署在带点的畸形文件夹 ,需要时grub.exe。




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