无忧启动论坛

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

做一个世界上最简单的UD盘

[复制链接]
跳转到指定楼层
1#
发表于 2010-12-29 22:28:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文先假设你相信UD启动是U启成功率最高的方式,否则略过。(以下以H3PE三合一版为例)

为了更好地理解UD安装,必须明确以下几点:
1、Grub4DOS在1215的版本说明中已经明确:
     为了方便使用当使用fbinst启动时有如下调整:
      boot_drive (bd) 为FB_DRIVE(ud)
      默认root(saved_drive) 为可见分区.
就是说UD启动时启动设备为UD,但root(即根,也可看成当前位置)是可见区,而可见区可能为hdd或zip。如果Grub菜单不内置且原grldr中内置菜单不变可以推论出:
①如果UD区和可见区同时存在menu.lst,可见区的将会优先。
②可见区不存在/menu.lst、/boot/grub/menu.lst、/grub/menu.lst时,UD区menu.lst才能获得控制权。

2、PE的启动文件总是在其本身所在的设备位置找相应PE,并且不能识别UD设备。基于此,有几点推论:
①由于本PE启动文件位于boot,PE内核位于h3pe,这样就要求这两个文件夹要处于同一位置。
②如果将boot放UD内,那么h3pe也必须放UD内,但PE启动文件又不识别UD,将导致文件找不到!为了解决这个问题,有一些变通的办法,主要是利用grub4dos的MAP命令,映射出软盘或光盘,将PE放到这些映射的盘中去启动,这样相当于从软盘或光盘来启动PE。这种映射的盘是由内存模拟的,对于启动文件是可见的,但进入PE内核后就会消失不可见,因外置程序不在内核中,进入PE后肯定是找不到的,因此这个PE可能就会成为没有外置的“光板”PE!为了将这个映射出的盘带入PE,于是又开发了FIRADISK和WINBLOCK工具来完成这个功能,但似乎不支持PE3;还有一个变通办法就是干脆将外置程序也封装到内核中,变成所谓的“全内置”来启动。

基于以上几点我总结了两种UD安装方式:
1、解开拖入安装:启动FbinstTool.exe,按“解开放入格式化说明.GIF”进行格式化,完成后将ISO中的文件解开拖入UD。只需要将BOOT目录、H3PE目录和grldr、menu.lst文件拖入UD即可。
2、整体拖入安装:启动FbinstTool.exe,按“整体放入格式化说明.GIF”进行格式化,完成后将ISO直接拖入UD中即可。
非RAM-WinXPPE不支持第1种方式启动;以上两种方式W7PE都可能没有外置。第1种采用的方法是先映射出软盘,将PE启动文件和内核复制到软盘中,再从软盘启动;第2种是将包含PE的整个ISO映射成光盘再从光盘启动,且用到了FIRADISK来保留这个光盘,这种方式与从PE光盘启动效果几乎一样(对于PE1.x而言,由于FIRADISK不支持PE3,因此对于工具外置的PE3仍然是光板),但要多占ISO大小的内存,加上PE内核也要占部分内存,对于小内存机器(如256M)是不可能成功的。第1种方式内存占用要少一点,但对于不是全内置的PE仍然是光板。因此,最好将H3PE目录在可见区再放一份。
如果内存足够,建议用第2种方式,可见区也清爽不需要任何文件来支持;如果内存不确定或者希望不在PE中也能够使用wim文件中的工具且相信UD启动是U启成功率最高的方式,建议采用第1种。


现在回到正题上,什么是做UD最简单的方式?
1、启动FbinstTool.exe格式化时,除了“强行格式”其他什么都不选(对“齐簇大小”是自动选的);

2、将grldr(不作任何改动的原版,当然也不改内置菜单)拖入UD;

3、将ISO解开全放可见区(或者只用BOOT、H3PE、WXPE、MENU.LST)


有人肯定会怀疑这还是UD吗?有什么用,不如直接U+
我要说的是,这确实是UD启动,至少能够进入grub4dos!不要小看这个东西,只要能保证进grub4dos,就有办法做很多事!U盘启动是最麻烦的,U+、linux都不一定成功,但UD不能启的确实很少(这里只是讲能不能启动grldr,不包括启动了grldr但不进系统的情况,因这种情况多数是菜单的写法有问题)。


可以看一下我的menu.lst:
  1. debug off
  2. #=============以下定义启动类型==============
  3. write 0x60000 0
  4. #boot from cd
  5. checkrange 0x9f read 0x82a0 && write 0x60000 1
  6. #boot from pd
  7. checkrange 0x21 read 0x82a0 && write 0x60000 2
  8. #boot from ud
  9. checkrange 0x23 read 0x82a0 && write 0x60000 3
  10. #boot from fd/usbzip
  11. checkrange 0x0 read 0x82a0 && write 0x60000 4
  12. #==========默认HD/USBHDD,其值为0===========
  13. timeout 30
  14. default 1
  15. command --set-path=()/BOOT/GRUB/
  16. UNIFONT /BOOT/GRUB/U16HZ
  17. splashimage /BOOT/GRUB/BACK.XPM.GZ || background 0000ff && foreground ffffff
  18. cat --length=0 (fd0,0)/BOOT/LDNTLDR && map (fd0) (hd0) && map (hd0) (hd) && map --hook
  19. title              ________________★系统维护菜单★________________
  20. clear
  21. title [01]--启动WinPE 2003              Boot WinPE 2003 included ext-Tools
  22. checkrange 0,1,4 read 0x60000 && chainloader /BOOT/H3_LDRIN.BIN
  23. checkrange 2 read 0x60000 && pxe keep && chainloader --force /BOOT/H3_PXELD.0
  24. checkrange 3 read 0x60000 && cat --length=0 (ud)/H3PE/WINPEIN.WIM && goto 14
  25. checkrange 3 read 0x60000 && cat --length=0 (ud)/H3PE/WINPEIN.WIM || find --set-root /BOOT/H3_LDRIN.BIN && chainloader /BOOT/H3_LDRIN.BIN
  26. boot
  27. title [02]--启动Win7 PE                 Boot Win7 PE
  28. checkrange 1 read 0x60000 && chainloader /BOOT/H3_MGRW7.BIN
  29. checkrange 2 read 0x60000 && pxe keep && chainloader --force /BOOT/H3_PXEMG.0
  30. checkrange 0,4 read 0x60000 && find --set-root /BOOT/H3_MGRW7.BIN && chainloader /BOOT/H3_MGRW7.BIN
  31. checkrange 3 read 0x60000 && cat --length=0 (ud)/H3PE/W7PE.WIM && goto 15
  32. checkrange 3 read 0x60000 && cat --length=0 (ud)/H3PE/W7PE.WIM || find --set-root /BOOT/H3_MGRW7.BIN && chainloader /BOOT/H3_MGRW7.BIN
  33. boot
  34. title [03]--启动WinPE XP                Boot WinPE XP(No_RAM_model)
  35. find --set-root /BOOT/H3_LDRRM.BIN
  36. chainloader /BOOT/H3_LDRRM.BIN
  37. title [04]--MaxDos7 强化版              MaxDos7 Plus\n含多种DOS下的驱动和网克工具
  38. map --mem /BOOT/IMGS/MAXDOS.IMG (fd0)
  39. map --hook
  40. rootnoverify (fd0)
  41. chainloader +1
  42. title [05]--启动Windows NT/2K/XP        Boot Windows NT/2K/XP
  43. find --set-root --ignore-floppies --ignore-cd /ntldr
  44. map () (hd0)
  45. map (hd0) ()
  46. map --rehook
  47. find --set-root --ignore-floppies --ignore-cd /ntldr
  48. chainloader /ntldr
  49. title [06]--启动Vista/Win7/2008         Boot Vista/Win7/2008
  50. find --set-root --ignore-floppies --ignore-cd /bootmgr
  51. map () (hd0)
  52. map (hd0) ()
  53. map --rehook
  54. find --set-root --ignore-floppies --ignore-cd /bootmgr
  55. chainloader /bootmgr
  56. title [07]--通过仿真软盘启动硬盘系统    Boot XP/03/Vista/Win7/2008/VHD/RAM\n启动硬盘上的NT5.x/NT6.x包括以镜像方式存在于BOOT中的ramxp.img和windows7.vhd
  57. map --mem /BOOT/IMGS/NTBOOT.IMG (fd0)
  58. map --hook
  59. rootnoverify (fd0)
  60. chainloader +1
  61. title [08]--进入SRS_F6工具菜单          Goto SRS_F6 Tool\n装载额外的SRS磁盘驱动,驱动放任意盘的SRS目录
  62. configfile /BOOT/SRS_F6.LST || find --set-root /BOOT/SRS_F6.LST && configfile ()/BOOT/SRS_F6.LST
  63. title [09]--加载USB2.0驱动PLPBT.BIN     Load USB 2.0 moudle PLPBT.BIN\n适用老主板,装载后可进入主菜单再装载相应PE
  64. errorcheck off
  65. map (hd0) (hd)  && map --rehook
  66. errorcheck on
  67. kernel /BOOT/PLPBT.BIN
  68. title [10]--转(ISO/SYS/PXE)Linux        Goto (ISO/SYS/PXE)Linux Menu
  69. checkrange 0,4 read 0x60000 && find --set-root /LDLINUX.SYS && chainloader +1
  70. checkrange 1 read 0x60000 && chainloader --force /BOOT/ISOLINUX.BIN
  71. checkrange 2 read 0x60000 && pxe keep && chainloader --raw /pxelinux.0
  72. checkrange 3 read 0x60000 && chainloader --force /ldlinux.bin
  73. boot
  74. title [11]--转硬盘启动                  Boot HD0,0
  75. checkrange 0x80 read 0x8280 && map (hd0) (hd1) && map (hd1) (hd0) && map --rehook
  76. rootnoverify (hd0,0)
  77. chainloader +1
  78. title [12]--重启                        Reboot
  79. reboot
  80. title [13]--关机                        Shutdown
  81. halt
  82. #14
  83. title
  84. clear
  85. map --mem (ud)/BOOT/IMGS/WMBOOT.IMA (fd0)
  86. map --hook
  87. pause --wait=0 Coping WimPE file,Please waiting...
  88. fat copy (ud)/H3PE/WINPEIN.WIM (fd0)/H3PE/
  89. fat copy (ud)/BOOT/H3_LDRIN.BIN (fd0)/BOOT/
  90. fat copy (ud)/BOOT/H3_IN (fd0)/BOOT/
  91. fat copy (ud)/BOOT/NTDETECT (fd0)/BOOT/
  92. fat copy (ud)/BOOT/FONT.BIN (fd0)/BOOT/
  93. rootnoverify (fd0) && chainloader (fd0)/BOOT/H3_LDRIN.BIN
  94. #15
  95. title
  96. clear
  97. map --mem (ud)/BOOT/IMGS/WMBOOT.IMA (fd0)
  98. map --hook
  99. pause --wait=0 Coping WimPE file,Please waiting...
  100. fat copy (ud)/H3PE/W7PE.WIM (fd0)/H3PE/
  101. fat copy (ud)/BOOT/BW7 (fd0)/BOOT/
  102. fat copy (ud)/BOOT/H3_MGRW7.BIN (fd0)/BOOT/
  103. fat copy (ud)/BOOT/boot.sdi (fd0)/BOOT/
  104. rootnoverify (fd0) && chainloader (fd0)/BOOT/H3_MGRW7.BIN
复制代码
大家可以用这个文件更新我的那个3合1版中的menu.lst。其他的PE可以参照上述方法。顺便提供一个整体启动的fba模板: h3.7z (148.24 KB, 下载次数: 300) 其他PE完全可以用这个模板,默认的文件名为h3cd3in1.iso,请改文件名或grldr菜单。

以上的说法及做法肯定有不一定正确的地方,望高手指教!

最新三合一版请参看:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=178147&page=1#pid2058291

[ 本帖最后由 hhh333 于 2010-12-30 04:59 编辑 ]
2#
发表于 2010-12-29 22:32:50 | 只看该作者
H3大又有新作,元旦前又一惊喜。
回复

使用道具 举报

3#
发表于 2010-12-29 22:58:19 | 只看该作者
看来又是强帖.顶起再继续潜水学习
回复

使用道具 举报

4#
发表于 2010-12-30 01:21:30 | 只看该作者
标记一下,楼主的作品我很喜欢。
回复

使用道具 举报

5#
发表于 2010-12-30 06:22:42 | 只看该作者
太强大了,标记一下,学习,谢谢楼主分享!
回复

使用道具 举报

6#
发表于 2010-12-30 07:06:41 | 只看该作者
h大专门研究u启,大家的福音啊
回复

使用道具 举报

7#
发表于 2010-12-30 07:33:04 | 只看该作者
希望h大推出更多更好的作品 谢谢收藏了
回复

使用道具 举报

8#
发表于 2010-12-30 08:32:55 | 只看该作者

回复 #1 hhh333 的帖子

支持H大。

有个思路更简单,就2个文件,ud内一个grldr文件,写好菜单,可见区一个H3PE.ISO(连续存放),
加载的时候map不加--mem,这样不占内存,速度飞快,结构非常简单。
回复

使用道具 举报

9#
发表于 2010-12-30 08:38:42 | 只看该作者
支持H3大,现在就学习一下。
回复

使用道具 举报

10#
发表于 2010-12-30 08:40:14 | 只看该作者
不用烦.一个grldr.一个合盘ISO.就能启动了....

剩余的问题,仅网启版要调整.
回复

使用道具 举报

11#
发表于 2010-12-30 09:21:19 | 只看该作者
原帖由 Plantsoot 于 2010-12-30 08:32 发表
支持H大。
有个思路更简单,就2个文件,ud内一个grldr文件,写好菜单,可见区一个H3PE.ISO(连续存放),
加载的时候map不加--mem,这样不占内存,速度飞快,结构非常简单。

放在ud扩展分区碎片整理后也能直接map,直接map只适合于内置版,外置版直接map是不能启动firadisk/winvblock的,造成没有外置,而且map --mem的兼容性比直接map还是好得多。
hhh333有个笔误,应该是winvblock。
回复

使用道具 举报

12#
发表于 2010-12-30 09:21:30 | 只看该作者
感谢分享!今晚回家试试!
问问,G4d是什么版本?支持usb-acc么?
回复

使用道具 举报

13#
发表于 2010-12-30 09:50:08 | 只看该作者
楼主的作品我很喜欢。
回复

使用道具 举报

14#
 楼主| 发表于 2010-12-30 10:04:41 | 只看该作者

回复 #11 liuzhaoyzz 的帖子

直接放扩展区-->碎片整理-->直接MAP
这种操作也简单,也不要考虑启动firadisk/winvblock,确实也不错
这是我发的那个模板的grldr菜单
  1. pxe detect
  2. configfile
  3. default 0
  4. timeout 1
  5. title --Boot H3PE3IN1.ISO
  6. map --mem (ud)/FIRADISK.IMA (fd0)
  7. map --mem (ud)/H3CD3IN1.ISO (0xff)
  8. map --hook
  9. rootnoverify (0xff)
  10. chainloader (0xff)
  11. title commandline
  12. commandline
  13. title reboot
  14. reboot
  15. title halt
  16. halt
复制代码

如果能连续存放,改成如下:map (ud)/H3CD3IN1.ISO (0xff) || map --mem (ud)/H3CD3IN1.ISO (0xff)
更进一步,如果UD内没有ISO,则启动可见区的ISO:map (ud)/H3CD3IN1.ISO (0xff) || map --mem (ud)/H3CD3IN1.ISO (0xff) || find --set-root /H3CD3IN1.ISO && map /H3CD3IN1.ISO (0xff) || map --mem /H3CD3IN1.ISO (0xff)

顺便请教一下:
firadisk/winvblock能够支持PE3吗?如何弄?

[ 本帖最后由 hhh333 于 2010-12-30 11:14 编辑 ]
回复

使用道具 举报

15#
发表于 2010-12-30 10:22:23 | 只看该作者

回复 #1 hhh333 的帖子

cat --length=0 (fd0,0)/BOOT/LDNTLDR && map (fd0) (hd0) && map (hd0) (hd) && map --hook
这一句似乎有问题,请老大斟酌。。。。
问题请参考:
http://bbs.wuyou.net/forum.php?m ... ;page=17#pid2125353
回复

使用道具 举报

16#
 楼主| 发表于 2010-12-30 10:28:07 | 只看该作者

回复 #15 zhoubin 的帖子

是的,这个语句有些问题,原意是发现有(fd0,0)则将其映射为hd0,希望能够找到更好的方法
回复

使用道具 举报

17#
发表于 2010-12-30 11:47:35 | 只看该作者

统一PE

原帖由 hhh333 于 2010-12-29 22:28 发表
... 现在回到正题上,什么是做UD最简单的方式?
1、启动FbinstTool.exe格式化时,除了“强行格式”其他什么都不选(对“齐簇大小”是自动选的);
2、将grldr(不作任何改动的原版,当然也不改内置菜单)拖入UD;
3、将ISO解开全放可见区...

支持楼主在部署方式上不断改进的努力。

楼主的“世界上最简单”方式在“可剪裁统一PE”中一直支持(grldr用0PE提供的或者官方原版的都可以)。
而且还支持ISO解开全藏入ud,以及部分藏入ud等。

“统一”的理念,不但要支持多种灵活部署方式,还包括统一(一致)的结构。

统一的结构的例子:
1. 将ISO解开部署时
1.1 如果只能放可见区,不能放ud区,属于不统一。
1.2 放不同地方,要修改配置(例如修改菜单)的,属于不统一。
1.3 放不同地方,有的支持网启,有的不支持网启的,属于不统一。
2. ISO不解开整体部署时
不符合1.1,1.2,1.3的,属于不统一。
3. 按2部署完成后,将iso解开,删除iso,如果要修改配置,即1/2之间解开与不解开不能随时切换的,属于不统一。
4. 在U盘上的结构,不能直接作为光盘、硬盘、移动硬盘、pxe服务器端结构的,属于不统一。

在统一PE中,这些已经实现。还有XPPE/03PE、中/英文PE等方面的统一,全外置/全内置方面的统一,各种功能用途的统一等等。

统一是追求完美的理念,提倡大家都按统一理念去做。直接效果是一个版本通吃各种部署方式,没有ud版、量产版、网启版等概念了。
只要认同统一的理念、意识即可,实践中,根据具体情况,不一定非要做到大一统。
回复

使用道具 举报

18#
发表于 2010-12-30 12:10:46 | 只看该作者
pseudo关于PE版本“一统天下”的理念,非常赞同!什么ud版,光盘版,硬盘版,pxe版,都应该统一起来。
firadisk/winvblock从一些资料上看应该能够支持PE3,好像只有内置进内核才行,我对win7pe不是很感冒,没有试过。
回复

使用道具 举报

19#
发表于 2010-12-30 12:20:50 | 只看该作者
正打算制作U启PE,特来学习。谢谢H3大!
回复

使用道具 举报

20#
 楼主| 发表于 2010-12-30 12:24:32 | 只看该作者

回复 #17 pseudo 的帖子

P大站的高度和理论水平就是不一样,我同意“统一”的理念。把困难留给自己,将方便交与用户。
回复

使用道具 举报

21#
发表于 2010-12-30 18:31:50 | 只看该作者
原帖由 hhh333 于 2010-12-30 12:24 发表
P大站的高度和理论水平就是不一样,我同意“统一”的理念。把困难留给自己,将方便交与用户。



这句话太感动人了,支持,期待统一。
回复

使用道具 举报

22#
发表于 2011-4-2 00:01:55 | 只看该作者
感谢楼主发布,学习中!!!:)
回复

使用道具 举报

23#
发表于 2011-4-4 20:42:34 | 只看该作者
感谢分享心得,学习了~
回复

使用道具 举报

24#
发表于 2011-4-4 21:21:53 | 只看该作者
lz,这么做貌似和把整个ISO放在UD分区内差不多...
这么做,相对会节省内存,不过对于grub4dos菜鸟来说,这种菜单太过复杂,难以看懂(我是看了水老的提示才搞清楚的)...
回复

使用道具 举报

25#
发表于 2011-4-4 21:25:14 | 只看该作者
补充一点(刚刚联想到)

我猜测 0pe 也是用这种方法吧...
回复

使用道具 举报

26#
发表于 2011-4-5 08:24:12 | 只看该作者
把困难留给自己,压力太大了
回复

使用道具 举报

27#
发表于 2011-4-7 09:48:48 | 只看该作者
做过两个传统式UD启动的U盘,倒是能成功启动,不过那个速度真的不敢恭维啊!那天试试这个。
回复

使用道具 举报

28#
发表于 2011-4-7 21:19:44 | 只看该作者

回复 #8 Plantsoot 的帖子

电脑识别U盘为zip时,提示找不到ISO文件
回复

使用道具 举报

29#
发表于 2011-4-7 22:44:19 | 只看该作者
一直用hhh333的pe很好
回复

使用道具 举报

30#
发表于 2011-4-8 00:13:22 | 只看该作者
期待这个新的技术成熟起来,多谢各位的无私奉献。、
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 05:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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