pseudo 发表于 2009-2-24 14:41:38

【原创】ISO整体启动、解开启动、PXE启动部署三合一,拷贝式安装

ISO整体启动、解开启动、PXE启动部署三合一,自动检测启动方式,基本上是拷贝式安装。

三合一需要解决一系列问题,包括:
1、组件的存放位置。一个组件(例如外置硬盘控制器驱动包),可能存放在硬盘任一分区,可能在U盘、光盘(包括量产的U盘),可能在ISO文件里,还可能在远程PXE服务器上。要能自动找到它。其中,最常见的是找外置应用程序包,即使量产、PXE启动情形,也应找到外置应用程序包,为它们建立快捷方式。
2、组件的缺失处理。组件可有可无,自动实现有则用之,无则忽略,对重要不好忽略的采用替换方案(例如借助XP系统资源解决磁盘控制器驱动、一级、二级扩展组件缺失)。增减组件一般不用修改配置文件。
3、支持混合部署。例如,引导文件在PXE服务器,驱动在硬盘,外置应用工具在U盘。
4、减少PXE启动网络传输量。例如不传全部驱动,不传全部外置应用程序,但要用也能用。
5、目录结构一致。ISO整体启动、解开启动、PXE启动的文件目录结构保持一致。用同一个ISO文件,其内容同时适应三种启动,包括混合启动。
6、引导文件统一。同一个grldr文件,既能引导整个0PE.ISO,也能引导从0PE.ISO中取出的东西,还能混合引导两者。同一个grldr文件,既能作本地引导,也能作远程PXE引导,还能作本地+远程混合快速引导。
7、外观清爽。其中,引导文件应单文件化,再看不到其它引导相关的大堆文件。另外众多外露的配置文件也会导致不清爽,应妥善处理。
8、安装简单一致,基本上是拷贝式绿色安装。例如安装PXE服务器只需拷贝文件。从一种启动转换为另一种启动应简单自然。
9、启动效果一致。例如PXE启动与本地启动效果一致。
等等。

0PE很早就重视三合一问题,上述问题已经得到较好的解决。

__________________
解释一下
1、ISO整体启动与解开启动

整体启动使用整个iso镜像文件,通过grub4dos仿真为光盘启动。

优点一:简洁清爽

盘上只有一个iso镜像文件(外加一个引导文件grldr),iso镜像文件可放在U盘、硬盘任意分区。
如果多个pe合放在一个U盘,每个pe一个iso镜像文件,集中在一个目录,或者一个镜像一个目录,
显得简洁清爽。U盘除了放PE,还可储存其它日常文件,它们容易与PE的文件区隔开来。

D:\
│grldr(唯一引导文件,多用途,可隐藏)

└─0PE(可隐藏)
    │      
    └─0PE.ISO
      图1 0PE.ISO整体启动的部署例

优点二:保持原味

作者提供的原版往往是一个iso镜像文件,不能整体启动的话,就得将其内容展开来使用,然后
iso镜像不知放那里好,也许删了丢了,以后用展开了的东西能还原出可启动的iso镜像文件吗?
能保持与原镜像文件MD5不变相同吗?整体启动最能保持原版汁味。

优点三:只读防毒

主要缺点:耗内存

仿真光盘启动要求将iso镜像文件在磁盘上连续存放,或者整个载入内存,这样耗内存,启动速度可能慢。
所以一般整体启动的iso镜像不宜太大。通常可将一些组件取出放在外面来减少镜像体积。

困扰:找不到外置组件

整体启动典型困扰之一是可能找不到外置组件。PE启动后,仿真光盘就失效了,PE中只看到一个iso镜像文件,
镜像内的外置组件看不见,找不到。

不少PE都有这个问题。想整体启动,会被告知,必须将外置程序内置于iso镜像内某个img或is_内,
以便全部载入内存虚拟X盘,就可以找到了。但这样耗内存,且严重破坏原版文件。或被告知,须将外置程序
目录取出放在镜像外面。那么能不能放在里面?能不能里外各放一些?其必曰:不可。

由此角度看,不少PE并不是设计为原生支持整体启动iso镜像的。有的也许支持整体启动了,但解开启动
与整体启动是两套,比如用于两种启动的grldr、menu.lst等各不相同。尤其是整体启动与解开启动之间切换
应该随时可行,东西放里外都行,不用为此修改任何配置,才算“合一”。

解开启动时,盘上有多个文件,为什么要多个文件?答:既然分为多个文件,自有其用意,一般表明它们是
积木式组件,可有可无,方便取舍,否则早并在一起了。

这就带来一个问题,这些组件的分解有依据吗?能自动感知组件的有无吗?重要组件缺了有补救措施吗?

0PE的新全外置体系结构将PE合理地多级分解,并把其它PE中通常作为核心的东西处理为便于单独维护的外置
组件模块,较好地解决了上述问题。哪些文件分解,哪些合并,有其道理,语义明确。增减组件一般不用改
配置。就算只剩下2M左右的东西,依然有存在价值,并在一定条件下还具有丰富的功能。0PE还采用ZIP格式
压缩打包磁盘控制器驱动等组件,为的是方便独立维护。

D:\
│grldr(唯一引导文件,多用途)

├─0PE(PE主要目录,可隐藏)
││EXT2.WIM(二级扩展,可进入桌面,可选组件)
││EXT1.ZIP(一级扩展,可进入Windows CMD,可选组件)
││EXT0.ZIP(内核补充,构成零体积PE,必选组件)
││KERNEL.GZ(微型内核,可进入DOS,必须)
││
│├─NET(网卡驱动包存放目录,也可放显卡、声卡驱动,可选)
││      DLink.CAB
││      Marvell.CAB
││      ......
││      NVIDIA.CAB
││      
│├─SRS(磁盘控制器驱动目录,可选)
││      SRS1.ZIP(常用库)
││      SRS2.ZIP(备用库)
││      F6.ZIP(厂商驱动直接打包)
││      
│└─AUTORUNS(加入此目录的组件启动时自动挂载,可选)
│         
└─PETOOLS(外置应用程序目录,自动创建快捷方式,可选)
    │
    ├─镜像工具
    │      
    ├─系统工具
    │......      
    │      
    └─PXE服务器
            tftpd32.exe
            tftpd32.ini
            启动Server.cmd(运行它即成服务器端)

      图2 0PE.ISO的内容及解开启动、PXE启动部署例

2、本地启动与PXE启动

不少PE没有考虑支持PXE启动。用于PXE启动时,需从iso镜像中取出其中包含的一个img或iso镜像,自己架设
pxe服务器、准备引导文件和引导菜单,服务器端安装部署麻烦。启动后只是无外置程序、不能上网的裸PE。

有的PE能PXE启动,但与本地启动是两套机制,比如用于两种启动的grldr、menu.lst等各不相同,用户使用感觉
不一致等。

0PE就一个0PE.ISO文件,量产、刻盘、装硬盘、U盘都用它,不分什么硬盘版、量产版的。公用一个grldr(这个
grldr就在0PE.ISO内有),支持多种启动及混合启动,几种启动和谐一致。在XP中把0PE.ISO虚拟成光盘,或将其
内容拷贝到硬盘/U盘,也可启动PE,网通后运行“启动PXE服务器.cmd”即成PXE服务器端。拷贝式安装,零配置。

客户端可以什么不装,以PXE方式启动后能上网,远程服务器上的外置工具宛如在本地。0PE还支持远程+本地快速
混合启动,这时服务器端和客户端全部是拷贝式安装、零配置。

几种启动和谐一致,才算“合一”。

困扰:如何减少网络传输量,如何获取服务器IP,如何使客户端可上网,服务器端、客户端目录结构如何统一,
如何支持混合启动等。

      图3 4M版PXE方式启动与本地启动效果一致(本地硬盘有XP)

3、单一引导文件

SETUPLDR.BIN、NTDETECT.COM、WINNT.XPE、AVLDR、PELDR、BOOTFONT.BIN、EZBOOT、grub.exe、grldr、
menu.lst、fonts.gz等引导相关文件,最好不要让用户看见。引导是PE内部事,弄那么多文件对用户没意义,
用户U盘还准备放PE之外的日常文件,最好清爽点。不要本地引导一套,PXE启动又一套的,搞得引导相关
文件一大堆,用户看不顺搞不懂可能给删了。另外,关于配置文件,尽量不需要用户改,真要改时应该方便改,
配置文件别一大堆看着烦。

使用0PE一般用不着修改配置文件,例如添加外置工具会自动生成快捷方式。用户几乎看不到配置文件,面向
用户的配置文件(.ini等)封装在ZIP文件里,要改也很方便,ZIP格式嘛。

4、实现技术

关键技术之一是灵活运用grub4dos的强大功能,特别是一系列新功能。〇peZip版(09.02.15发帖)对grub4dos
功能使用之多、之复杂也许是空前的。其中某些功能直接向不点兄提出需求,第一时间运用到0PE中,在此特别
感谢不点兄大力支持。

部分参考资料:
1、pseudo:【原创】★新型全外置结构:《零体积全能可扩展PE》ZIP版(测试)
2、pseudo:【创新】U盘PE启动新法
3、pseudo:对grub4dos的功能需求
4、pseudo:Sending the pxe server ip to MS DOS 7.1
5、pseudo:Sending the selected menu item number to DOS
6、pseudo:0PE的手自一体grub菜单
7、chenall:[原创]支持外置硬盘控制器驱动,可任意方式启动的PE
8、chenall:[分享]GRUB4DOS一个比较变态的用法
9、不点:有关PXE启动0PE128.ISO
10、nn2nn:(已实现)PE外置形式——开放式PE外置架构设想 01.23更新

[ 本帖最后由 pseudo 于 2009-3-7 14:27 编辑 ]

上古天真 发表于 2009-2-24 15:13:10

瞻仰学习,期待作品放出。

cduser 发表于 2009-2-24 15:25:02

虽然我不懂但是只要好用就行。

xiaobendan 发表于 2009-2-24 15:37:58

产品还没有研发成功吗?支持你们!加油!

pseudo 发表于 2009-2-24 16:03:18

回复 #2 上古天真 的帖子、回复 #4 xiaobendan 的帖子

#1楼蓝色的就是链接啊,点击可进入,有下载。

my3927 发表于 2009-2-24 17:55:39

原帖由 pseudo 于 2009-2-24 16:03 发表 http://bbs.wuyou.net/images/common/back.gif
#1楼蓝色的就是链接啊,点击可进入,有下载。
我已经下载收藏了!

lanzl 发表于 2009-2-25 10:28:48

原帖由 pseudo 于 2009-2-24 16:03 发表 http://bbs.wuyou.net/images/common/back.gif
#1楼蓝色的就是链接啊,点击可进入,有下载。


PSEUDO。。这种链接。。。。。只用“0PE”短短三个字,实在很难注意到 。。。呵呵

pseudo 发表于 2009-2-25 12:47:51

回复 #7 lanzl 的帖子

LS曾建议加个文件,现在可以自行加入到EXT0.ZIP。
ISO文件已经移入子目录,必要时可自己指定目录名。

fvptk 发表于 2009-2-25 12:48:07

看到楼主的详细介绍,给人有一种十分大的诱惑力,请问:
◆将此处提供的“DOS加GRUB启动USB_HDD.rar”中的文件放入U盘根目录。

◆用此处提供的“MBR启动USB_HDD.rar”中的GRUBGUI工具给U盘安装Grub引导。

DOS加GRUB启动USB_HDD.rar”
“MBR启动USB_HDD.rar”
这二个工具没找到啊,能不能给说一下呢,谢谢

pseudo 发表于 2009-2-25 13:00:56

回复 #9 fvptk 的帖子

下64M的带有,在磁盘工具目录里。
页: [1] 2 3 4
查看完整版本: 【原创】ISO整体启动、解开启动、PXE启动部署三合一,拷贝式安装