无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 10183|回复: 38
打印 上一主题 下一主题

[原创] udm技术深度剖析

    [复制链接]
跳转到指定楼层
1#
发表于 2014-5-2 11:45:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jianliulin 于 2014-5-2 13:59 编辑

一年多没有接触U盘启动了,前些日子偶尔看看P大提出的分区表项法使得fbinst有了新的玩法,后来经无忧网友的测试发现uefi主板对uefi启动的要求没有像在百度上说的(只要是fat分区放了efi启动文件就能启动)那没有简单,再后来udm出现了,号称是ud v2.0 ,兼顾bois和efi的新一代万能启动,分区看不到但却能efi启动,太振奋了,继续看介绍后发现,ud v2支持大于4G文件,能被grub2.0 引导,这我就有点疑惑了,因为目前ud只被grub4dos,burg能识别,其他引导器如果没有添加ud驱动(就是支持ud的代码,暂且叫驱动吧)是无法被识别的,就以为红色这两点,引起了我对udm的好奇,决定抽时间来了解它。虽然M大很努力的写了好多说明,但我还是看得糊里糊涂的,对于udm提到的功能,知其然不知其所以然,M大很少提到技术的原理,所以我决定从另外的途径解开我以下的两个疑问

  1.udm与ud的关系,他们的异同
  2.udm看不到分区,却能被ufi启动。
  
  
  
1.mbr对比,


   两者都对磁盘前64个扇区写入mbr引导代码和分区表,分区表都根据扇区进行偏移,但如果对fbinst mbr有兴趣的同学会发现上图中红框的位置会随着扇区数的变化而变化的,为什么会这样呢,因为有了它不管bios第一次读的是64个扇区里面的那一个扇区fbmbr都能正确的引导fbinst的核心引导代码,而udm ,没有这功能,
  
  

2.核心启动代码,
fbinst的核心启动代码放在第65~68扇区,这是fbinst的精髓所在,它能根据ud主分区的结构顺利的算出磁盘正确CHS,在第65分区还存放了fbinst的版本号主分区,扩张分区大小等等中要信息,而udm没有这样的核心代码,所以mbr中有没有那个标示号也无所谓了,这里就又产生了一个不解,fbinst通过自适应chs达到“万能”,而udm是通过什么来实现“万能”,到目前M大的文档没有公开此技术



3.文件结构的区别,
  M大说用不同的方式,不需要特定的文件系统但却用了ud的文件结构和保留了ud的主分区结构(每个扇区后面两个字节用来记录扇区的编号),没有了ud的核心引导代码,这个编号也就无用了。udm在主分区8M后默认还预留了2048个扇区的"启动预留大小" 用来存放grldr等启动文件,然后再接着是一个普通的分区MBROS。
  
  
4.支持文件文件大小
   ud目前是不支持大于4G的文件的,我也两次向不点提议过让grub4dos支持大于4G文件,但都没有被采纳,从技术角度来说让ud支持大于4G的文件没有难度。udm存放大于4G的文件应该是放在“启动预留大小”空间之后的MBROS分区(猜测,因为除了这里没有地方可放)。同时udm没有ud中的扩展分区,也就没有了可以连续存放文件的功能,这一个很好的功能被埋没了,
   

以上是我对ud和udm的一些对比,首先他们肯定是不一样的,一样的话就没有存在的意义,这里不讨论谁比谁好,只找不同点,是先从ud的角度然后再去对比udm,原因是M大没有公开udm的技术内幕,我才盲人摸象。  
  
  
  
  
  
  剩下“udm看不到分区,却能被ufi启动”这疑问了,自己动手用MBROSTool.EXE做好udm后,用DiskGenius是看不到MBROS分区的,用MBROSTool的分区管理也看不到,但如果设置了efi启动,则分区出来了,P大的“能被efi引导的都能在分区软件中看到分区”又一次被证实,所以udm的mbrOs是隐藏的必须是在牺牲efi启动的情况下。与fbinsttool取消img映射是一样的。udm的uefi启动的本质就是P大提出的分区表项法。

  
  

  
  结论:目前fbinst除了ud不支持大于4G的文件之外,用fbinsttool+分区表项法能实现udm的功能而且更直观、方便,以上是个人之言,欢迎拍砖,希望能催生新的技术诞生



  

点评

据sp_star所说,在他的机器上不需要映射分区就能支持efi启动。可能少数机器比较强悍吧  发表于 2014-5-2 12:35

评分

参与人数 2无忧币 +10 收起 理由
hero8000 + 5 很给力!
fxq + 5 赞一个!

查看全部评分

2#
发表于 2014-5-2 11:52:46 | 只看该作者
沙发,舒服。。。。看得一头云。。
回复

使用道具 举报

3#
发表于 2014-5-2 12:20:14 来自手机 | 只看该作者
支持J大…
回复

使用道具 举报

4#
发表于 2014-5-2 12:21:00 | 只看该作者
嗯。对于新技术,ud2我是支持的。只是希望原作者能提供更多技术细节。

点评

ud2可能是技术保留原因,介绍的很多,但是关键部分不提,看的糊里糊涂,  发表于 2014-5-5 10:38
暂时看不出udm与ud有什么关联,更提不上是v2 或者升级。  详情 回复 发表于 2014-5-2 12:24
回复

使用道具 举报

5#
 楼主| 发表于 2014-5-2 12:24:35 | 只看该作者
本帖最后由 jianliulin 于 2014-5-2 12:26 编辑
zds1210 发表于 2014-5-2 12:21
嗯。对于新技术,ud2我是支持的。只是希望原作者能提供更多技术细节。


暂时看不出udm与ud有什么关联,更提不上是v2 或者升级。期待真正的ud v2 出现
回复

使用道具 举报

6#
发表于 2014-5-2 12:26:32 来自手机 | 只看该作者
确实,关键的东西都没有说
回复

使用道具 举报

7#
发表于 2014-5-2 12:29:12 | 只看该作者
重要的不在这儿,udm的功能中有一条是“不需要读入wim文件到ramdisk”,这个比ud强
但是它的启动兼容性确实有问题,至少在我机器上起不来。我想核心启动代码恐怕要比ud差。
另外udm追求的是隐藏分区“可以在分区软件中看到”吧?它不建立类似ud的文件系统不就是为了使mbros分区能在分区软件中被看到吗?

点评

都是一个真实的分区,可格式化,可直接复制,删除文件。需要显示的时候就显示出来,反之隐藏,看不出有什么不一样的地方。  详情 回复 发表于 2014-5-2 12:36
回复

使用道具 举报

8#
发表于 2014-5-2 12:32:04 来自手机 | 只看该作者
要是m大写的也这样容易懂就好了,希望催生新技术
回复

使用道具 举报

9#
 楼主| 发表于 2014-5-2 12:36:54 | 只看该作者
本帖最后由 jianliulin 于 2014-5-2 12:39 编辑
fukystone 发表于 2014-5-2 12:29
重要的不在这儿,udm的功能中有一条是“不需要读入wim文件到ramdisk”,这个比ud强
但是它的启动兼容性确 ...


ud中的img用分区表项法后,一样可以在分区软件中看到,都是一个真实的分区,可格式化,可直接复制,删除文件。需要显示的时候就显示出来,反之隐藏,看不出有什么不一样的地方。
回复

使用道具 举报

10#
 楼主| 发表于 2014-5-2 12:45:15 | 只看该作者


这就是神奇之处, 能实现这样的功能是用什么技术,efi后门还是别的技术 ,大家都希望谜底能够揭开,目前是听说可以但大家都不知道为什么可以。

点评

似乎hhh333的测试也是不需要映射分区表,就能EFI启动的。M大自己的反而不行。 不明觉厉..........  详情 回复 发表于 2014-5-2 14:40
M大既然设置了支持的开关,那就是说他也是知道大部分机器是需要映射出分区才行。记得他帖子有提到借鉴p大分区表项法的创意。还有说道这个udm分区是有文件分配表的。其它的我也不懂。也没提到相关技术。我之前好几次  详情 回复 发表于 2014-5-2 13:02
回复

使用道具 举报

11#
发表于 2014-5-2 13:02:31 | 只看该作者
jianliulin 发表于 2014-5-2 12:45
这就是神奇之处, 能实现这样的功能是用什么技术,efi后门还是别的技术 ,大家都希望谜底能够揭开,目 ...

M大既然设置了支持的开关,那就是说他也是知道大部分机器是需要映射出分区才行。记得他帖子有提到借鉴p大分区表项法的创意。还有说道这个udm分区是有文件分配表的。其它的我也不懂。也没提到相关技术。我之前好几次也好奇udm启动成功率真的能像ud那样吗。但是其他坛友也不懂,说只能经过长期测试才知道了。。看了楼主这个帖子的分析,我大概明白了。
回复

使用道具 举报

12#
发表于 2014-5-2 13:27:42 | 只看该作者
本帖最后由 mdyblog 于 2014-5-2 13:40 编辑

>> 阿弥陀佛 据sp_star所说,在他的机器上不需要映射分区就能支持efi启动。可能少数机器比较强悍吧  发
在很多机器 都可 直接启动 UEFI-UDm, 我那11年的老UEFI机器也可以的。
但是 进一步 启动 UEFI-PE 很多机器 不行, 这是MS本身的限制,需要破解弃WIndow-Loader或怎么绕过去。
很多机器可以:  (1) 引导出 EFI-Grub2菜单。
                (2) 引导EFI启动的Linux没有任何问题。
              因为 grub2 和 Linux 都没有 MS-WIndow 那无聊的限制。


把 那个 EFIGrub2的包, 直接解压到 核心区。就可实验。

点评

UDm有 扩展分区。 而且 默认支持 240个UDm分区,还可以再多(算了吧)。 文件连续存放: (1) 核心分区。 一次放进去,就是连续的。 (2)一些 IMG、ISO本身直接 做成 扩展分区。常见MPJ文件。  详情 回复 发表于 2014-5-2 13:31
回复

使用道具 举报

13#
发表于 2014-5-2 13:31:20 | 只看该作者
mdyblog 发表于 2014-5-2 13:27
>> 阿弥陀佛 据sp_star所说,在他的机器上不需要映射分区就能支持efi启动。可能少数机器比较强悍吧  发
在 ...

UDm有  扩展分区。
而且 默认支持 240个UDm分区,还可以再多(算了吧)。

文件连续存放:
  (1) 核心分区。 一次放进去,就是连续的。
  (2)一些 IMG、ISO本身直接 做成 扩展分区。常见MPJ文件。

点评

》》我之前好几次也好奇udm启动成功率真的能像ud那样吗。但是其他坛友也不懂,说只能经过长期测试才知道了 万能 U盤启动 方法和UD 一样。思想一样。 只是程序设计不同。 随着老机器的淘汰, 很难找到这种机器来  详情 回复 发表于 2014-5-2 13:37
回复

使用道具 举报

14#
发表于 2014-5-2 13:37:43 | 只看该作者
mdyblog 发表于 2014-5-2 13:31
UDm有  扩展分区。
而且 默认支持 240个UDm分区,还可以再多(算了吧)。

》》我之前好几次也好奇udm启动成功率真的能像ud那样吗。但是其他坛友也不懂,说只能经过长期测试才知道了
万能 U盤启动  方法和UD 一样。思想一样。 只是程序设计不同。

随着老机器的淘汰, 很难找到这种机器来对比了。
或者说,这种代码的 意义 慢慢变小了。 似乎 一般的代码就能启动(如U+)。

怎么样 “只能经过长期测试才知道了”。
回复

使用道具 举报

15#
 楼主| 发表于 2014-5-2 13:49:40 | 只看该作者
能不能和意义大不大,是不同的概念。
回复

使用道具 举报

16#
发表于 2014-5-2 14:24:50 | 只看该作者
"概念"  是 西方哲学的说法。
而经本人研究 证实, 西方哲学 是一种 宗教。我称之 为 匪乐教。
我 研究 儒学和易经。反对 西方哲学 等宗教。
回复

使用道具 举报

17#
发表于 2014-5-2 14:33:19 | 只看该作者
本帖最后由 zds1210 于 2014-5-2 14:37 编辑

对于UD或基于GRUB2的新UD,支持uefi的技术,本人都非常关注,并对各位老大们的努力,表示敬意。
目前因时间关系,都没有测试老大们的作品。目前来看,P大的做法,兼容传统UD,兼容grub4dos,上手比较容易,貌似4G限制也不是什么太问题,毕竟还没有用过超过4G的PE。M大使用的新的GRUB2,了解的人并不多,希望M大能提供很多的技术细节,不要让一项新技术成为小众作品;即使有不足的地方,如果技术有上优势,经过各位老大们的努力,一定也能成为一种新的主流技术。
因研究得不深,就不对老大们技术作评判了。

点评

是这个道理。推广开来  发表于 2014-5-5 10:42
回复

使用道具 举报

18#
发表于 2014-5-2 14:40:49 | 只看该作者
jianliulin 发表于 2014-5-2 12:45
这就是神奇之处, 能实现这样的功能是用什么技术,efi后门还是别的技术 ,大家都希望谜底能够揭开,目 ...

似乎hhh333的测试也是不需要映射分区表,就能EFI启动的。M大自己的反而不行。
不明觉厉..........

点评

我的不映射, 可以 启动 EFI-grub2 EFI-LINUX。 启动EFI-PE, 可以 启动到菜单(算是EFI成功了吧),然后提示找不到BCD。  详情 回复 发表于 2014-5-2 15:02
回复

使用道具 举报

19#
发表于 2014-5-2 15:02:23 | 只看该作者
本帖最后由 mdyblog 于 2014-5-2 15:04 编辑
sp_star 发表于 2014-5-2 14:40
似乎hhh333的测试也是不需要映射分区表,就能EFI启动的。M大自己的反而不行。
不明觉厉..........


我的不映射,(1) 可以 启动 EFI-grub2  EFI-LINUX。
                     (2) 启动EFI-PE, 可以 启动到EFI菜单(算是EFI成功了吧),然后提示找不到BCD。--MS本身的限制,--Linux就没有这种限制。

点评

既然出菜单了,说明EFI已经可以启动了,找不到BCD那说明你的主板的EFI还不完善,这个可能只有映射了。 实际上BIOS中,由于UDM在grldr下是HD0而不是HD0,0,也不能直接用来启动PE,也需要映射成fd0来启动,但启动DOS  详情 回复 发表于 2014-5-4 11:13
回复

使用道具 举报

20#
发表于 2014-5-2 16:25:34 | 只看该作者
希望各位高手把ud2继续发扬广大。
回复

使用道具 举报

21#
发表于 2014-5-4 11:13:20 | 只看该作者
本帖最后由 hhh333 于 2014-5-4 11:17 编辑
mdyblog 发表于 2014-5-2 15:02
我的不映射,(1) 可以 启动 EFI-grub2  EFI-LINUX。
                     (2) 启动EFI-PE,  ...


既然出菜单了,说明EFI已经可以启动了,找不到BCD那说明你的主板的EFI还不完善,这个可能只有映射了。
实际上BIOS中,由于UDM在grldr下是HD0而不是HD0,0,也不能直接用来启动PE,也需要映射成fd0来启动,但启动DOS的IMG不需要映射。

我接触的这几台机器可能是去年的AMD和i3的机子,确实不需要映射,我想新的机子EFI会更完善,不完善的机子肯定是有BIOS启动方式的,因此目前只要BIOS方式无问题,这种部署方式也应该无问题。
但总的来讲,U+比UD/UDm都要简单。

点评

BIOS启动时,UDM直接支持bootmgr启动,但也是找不到BCD文件,应该也是识别不了,必须要用grldr map一下才行。 所以,EFI能启动,是完善还是缺陷,还不好说。  详情 回复 发表于 2014-5-4 11:55
>>但总的来讲,U+比UD/UDm都要简单。 那天直接加 U+ 类似的 操作界面 就 简单了。 :直接写入ISO。  详情 回复 发表于 2014-5-4 11:21
回复

使用道具 举报

22#
发表于 2014-5-4 11:21:58 | 只看该作者
hhh333 发表于 2014-5-4 11:13
既然出菜单了,说明EFI已经可以启动了,找不到BCD那说明你的主板的EFI还不完善,这个可能只有映射了。
...

>>但总的来讲,U+比UD/UDm都要简单。

那天直接加  U+ 类似的 操作界面 就 简单了。
   :直接写入ISO。  

点评

也是,这个才是正途,可以暂时不要搞命令行,弄个直接写ISO的UDm工具,那就了不得!  详情 回复 发表于 2014-5-4 11:25
回复

使用道具 举报

23#
发表于 2014-5-4 11:25:13 | 只看该作者
mdyblog 发表于 2014-5-4 11:21
>>但总的来讲,U+比UD/UDm都要简单。

那天直接加  U+ 类似的 操作界面 就 简单了。

也是,这个才是正途,可以暂时不要搞命令行,弄个直接写ISO的UDm工具,那就了不得!

点评

直接写入ISO的问题,就是ISO如果直接用bootmgr启动,就抓瞎了。。。。 似乎不能像U+那样简单的直接写入。  详情 回复 发表于 2014-5-4 11:56
回复

使用道具 举报

24#
发表于 2014-5-4 11:55:05 | 只看该作者
hhh333 发表于 2014-5-4 11:13
既然出菜单了,说明EFI已经可以启动了,找不到BCD那说明你的主板的EFI还不完善,这个可能只有映射了。
...

BIOS启动时,UDM直接支持bootmgr启动,但也是找不到BCD文件,应该也是识别不了,必须要用grldr map一下才行。
所以,EFI能启动,是完善还是缺陷,还不好说。
回复

使用道具 举报

25#
发表于 2014-5-4 11:55:24 | 只看该作者
本帖最后由 hhh333 于 2014-5-4 11:56 编辑

进行了一些测试:
1、写入U盘时不选EFI,设置启动时不选设置EFI也不选取消EFI。--BIOS和EFI都是好的
2、用上述的盘,到启动时设置EFI启动,那个可见区不见了,而代之为UDM区的内容,即UDM区可见了。--EFI成功的,但BIOS在我的一台915的机子上不能启动,老是一个光标在跳。

BIOS进入后启动PE测试:
1、两种特殊方式的PE不能启动:非RAM方式、native方式的(可以把二级内核放可见区后启动)。其他的PE都能够启动,当然启动之前都进行了映射hd0->fd1->fd0的映射(我参考m大的代码用一个批处理UDM2FD达成)过程;
2、DOS的IMG不需要UDM2FD的过程直接启动;
3、我的915的机子用grldr4.5c进入后可启用PLPBT加载USB2.0驱动再进菜单,也可以用grldr4.6a的直接加载USB2.0驱动,速度明显改善,当然后者更方便;
4、grldr默认菜单中在UDM下,configfile与configfile /menu.lst不是等价的,只有后者才有用;
5、NTBOOT工具似乎不方便在UDM下使用,无论是否UDM2FD;
回复

使用道具 举报

26#
发表于 2014-5-4 11:56:43 | 只看该作者
hhh333 发表于 2014-5-4 11:25
也是,这个才是正途,可以暂时不要搞命令行,弄个直接写ISO的UDm工具,那就了不得!

直接写入ISO的问题,就是ISO如果直接用bootmgr启动,就抓瞎了。。。。
似乎不能像U+那样简单的直接写入。
回复

使用道具 举报

27#
发表于 2014-5-5 10:13:45 | 只看该作者
friend8179 发表于 2014-5-5 09:41
udm的功能中有一条是“不需要读入wim文件到ramdisk”,这个比ud强

哈哈,他是冲着逼疯你而来的!
回复

使用道具 举报

28#
发表于 2014-5-5 10:21:04 | 只看该作者
friend8179 发表于 2014-5-5 09:41
udm的功能中有一条是“不需要读入wim文件到ramdisk”,这个比ud强

可能是指在UD里,wim文件需放到img里,map之后(可能还要map -mem)才能挂载。
猜的.......

点评

咦?是这个意思吗? 我一直以为是省略了boot.wim读入内存呢…… 哈哈,我是看原文档有这个说法的,具体也不知道--我的机器无法用udm启动。 虽然m大认为udm的启动成功率并不重要,但具体到那些无法启动的个人(比  详情 回复 发表于 2014-5-5 17:06
回复

使用道具 举报

29#
发表于 2014-5-5 10:53:01 | 只看该作者
本帖最后由 天使的魔翼 于 2014-5-5 10:54 编辑

我认真拜读、认真测试过几位大大的作品,无论是UDM还是分项法,实际上基本思路是由不点大师提出来的,2013年年底不点放出一个基于FBINST的项目开发,在GRUB4DOS讨论区内,但由于关注的人比较少,本人也中介参加了测试,报告测试结果。
我个人认为:
      UDM可能是基于不点测试的24MB、32MB、64MB之上开发出来的;
  1. 引用不点大师的原文:
  2. 我的新系统的开发理念与 Bean 的 fbinst 有差别。
  3. 1、新系统不处理 8M 以内的剩余 7M 空间,让用户自己来安排(或取舍)。fbinst 则建立 ud 系统,方便用户访问。
  4. 2、新系统不提供专门的工具,不提供各种安装参数的变化,只用一个映像文件来做。而 Bean 的 fbinst 提供了很多安装选项,方便用户选择和安装。
  5. 3、一旦发现有 BIOS 不适应问题,我的新系统的格式可能随时变动,这方面有着灵活性(这是对开发者来说的,开发者有完全的自由,可以随时变动 U 盘的格式)。外部工具的制作者可能也得随时跟进,调整自己的工具软件,以适应这些变化。相比之下,fbinst 要稳定得多,外部程序的作者不用修改自己的工具软件。
  6. 4、外部工具软件的制作者,可以研究这个 U 盘的设计,制作出自己的操作工具,方便最终用户使用。相比之下,fbinst 自带了工具,因此,fbinst 离开外部工具也能自成一体。
复制代码

      而分项法是基于同一贴中对FBINST再开发利用的结果。
两种形式的根源是一样的,个人也不好怎么评论,目前BEAN大师已经对GRUB2开发进入了重大调整阶段,他也明确表示会对FBINST进行升级、扩展原代码,大家座等吧。




准备基于 fbinst 进行再开发,请各位提供帮助
http://bbs.wuyou.net/forum.php?m ... &fromuid=260363
(出处: 无忧启动论坛)

点评

>>我认真拜读、认真测试过几位大大的作品,无论是UDM还是分项法,实际上基本思路是由不点大师提出来的,2013年年底 但是时间不对。 MBROS 已经好几年了。  详情 回复 发表于 2014-5-5 13:35
回复

使用道具 举报

30#
发表于 2014-5-5 13:35:14 | 只看该作者
天使的魔翼 发表于 2014-5-5 10:53
我认真拜读、认真测试过几位大大的作品,无论是UDM还是分项法,实际上基本思路是由不点大师提出来的,2013 ...

>>我认真拜读、认真测试过几位大大的作品,无论是UDM还是分项法,实际上基本思路是由不点大师提出来的,2013年年底

但是时间不对。
MBROS 已经好几年了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 06:45

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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