无忧启动论坛

标题: 【原创】ISO整体启动、解开启动、PXE启动部署三合一,拷贝式安装 [打印本页]

作者: pseudo    时间: 2009-2-24 14:41
标题: 【原创】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[09-02-28测试]
8、chenall:[分享]GRUB4DOS一个比较变态的用法
9、不点:有关PXE启动0PE128.ISO
10、nn2nn:(已实现)PE外置形式——开放式PE外置架构设想 01.23更新

[ 本帖最后由 pseudo 于 2009-3-7 14:27 编辑 ]
作者: 上古天真    时间: 2009-2-24 15:13
瞻仰学习,期待作品放出。
作者: cduser    时间: 2009-2-24 15:25
虽然我不懂但是只要好用就行。
作者: xiaobendan    时间: 2009-2-24 15:37
产品还没有研发成功吗?支持你们!加油!
作者: pseudo    时间: 2009-2-24 16:03
标题: 回复 #2 上古天真 的帖子、回复 #4 xiaobendan 的帖子
#1楼蓝色的就是链接啊,点击可进入,有下载。
作者: my3927    时间: 2009-2-24 17:55
原帖由 pseudo 于 2009-2-24 16:03 发表
#1楼蓝色的就是链接啊,点击可进入,有下载。

我已经下载收藏了!
作者: lanzl    时间: 2009-2-25 10:28
原帖由 pseudo 于 2009-2-24 16:03 发表
#1楼蓝色的就是链接啊,点击可进入,有下载。



PSEUDO。。这种链接。。。。。只用“0PE”短短三个字,实在很难注意到 。。。呵呵
作者: pseudo    时间: 2009-2-25 12:47
标题: 回复 #7 lanzl 的帖子
LS曾建议加个文件,现在可以自行加入到EXT0.ZIP。
ISO文件已经移入子目录,必要时可自己指定目录名。
作者: fvptk    时间: 2009-2-25 12:48
看到楼主的详细介绍,给人有一种十分大的诱惑力,请问:
◆将此处提供的“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
标题: 回复 #9 fvptk 的帖子
下64M的带有,在磁盘工具目录里。
作者: hsmlwang    时间: 2009-2-26 20:56
果然是高手,先收藏,再讨论。
作者: chengchun    时间: 2009-3-3 22:49
高手啊 真是学不完啊 下载收藏了
作者: pseudo    时间: 2009-3-7 14:31
在#1楼再解释一下
作者: crocodile    时间: 2009-3-7 17:04
pxe的方式还是不错的, 就现在的网络条件,这种启动,装机方法很值得再大力发展一下的
作者: waluojia    时间: 2009-3-8 05:38
支持楼主的观点,下载收藏,期待楼主更多的好产品问世。
作者: del888    时间: 2009-3-20 10:09
楼主,这个太强了,先收藏,等出来了,好好搞个U盘当工具盘用。
作者: wqs    时间: 2009-4-1 11:03
虽然我不懂,但是只要好用就行。期待楼主更多的好产品问世。
作者: 军佬    时间: 2009-4-20 17:01
果然是高手,先收藏,再讨论。
作者: lnbxql    时间: 2009-4-20 18:47
我试了一下PXE启动确实成功了,GHOST了一台新机系统,可是发现有的电脑网卡不识别,看了你写的文档说必需手写编辑ID等等,有没有更方便的办法,比方说像GHOST系统时自动识别硬件,然后解压,这一步楼主也是做到了,关健是驱动添加太麻烦,不像GHOST系统的驱动只要把新驱动添加进驱动包即可,不用修改ID,更新维护容易
作者: z1x1g1    时间: 2009-4-20 19:54
标题: 正因为不懂
正因为不懂,所以来学习了
作者: luxvi    时间: 2009-7-2 21:04
下载链接呢????????
作者: xhwfq    时间: 2009-7-2 21:24
原帖由 pseudo 于 2009-2-24 14:41 发表
......
主要缺点:耗内存
......
困扰:找不到外置组件
......

我的pelive.iso整体启动还是很有特点的,不存在上面的问题,是真正的整体启动,LZ可以参考。
作者: pseudo    时间: 2009-7-2 23:58
标题: 回复 #23 xhwfq 的帖子
原帖由 xhwfq 于 2009-7-2 21:24 发表
我的pelive.iso整体启动还是很有特点的,不存在上面的问题,是真正的整体启动,LZ可以参考。

1、本帖提出启动部署三合一的概念,并介绍0PE三合一的特点,此前还没见此类实现。
2、0PE实现三合一的关键技术之一是使用了grub4dos的高级命令、复杂菜单,配合一些dos工具,解决了启动阶段访问非映像文件(例如.zip、.wim)的一系列问题。
3、本帖提倡大家都把pe做成三合一的,具体做法可以不同,但做成三合一无疑有好处
4、chenall的Micrope是最早能整体启动的,楼上的pelive对其做了简化和变动,下了功夫。
5、我刚才看了一下,在整体启动方面,楼上是一开始就从iso中复制wim组件,而chenall原来是启动到windows cmd阶段才从iso中挂载wim组件,我说的对吗?
6、楼上这种本地整体启动处理与0PE和Micrope在pxe启动时的处理类似。
7、在整体启动时,目前0PE有个开关,默认启动到windows cmd阶段才从iso中挂载wim组件,如果打开开关,则一开始就从iso中复制wim组件,这时跟楼上的方式比较相似。
8、楼上好像没有将本地启动菜单与pxe启动菜单合一,另外好像不允许组件缺失剪裁(例如net.wim)。不过这样可以简化问题,对提高启动速度可能有一定好处。
作者: 107hrb    时间: 2009-7-3 00:40
学习下,支持楼主辛勤劳动!!
作者: xhwfq    时间: 2009-7-3 06:41
原帖由 pseudo 于 2009-7-2 23:58 发表

1、本帖提出启动部署三合一的概念,并介绍0PE三合一的特点,此前还没见此类实现。
2、0PE实现三合一的关键技术之一是使用了grub4dos的高级命令、复杂菜单,配合一些dos工具,解决了启动阶段访问非映像文件( ...

lz分析得很透,不愧为大侠!!!
至于我的pelive,设计宗旨是:简洁、高效和易懂。(易懂很重要,是传承和光大的基础,不是嘛?)
我就因为不能完全看懂您和chenall大侠的作品,才自己做的,基本没有直接拿来的东东,几乎每一部分都经过了改造或创新。
我的yy方法也很特别,就是透过现象,自己设计实现方法,实现想不通,再去断章取义;D

[ 本帖最后由 xhwfq 于 2009-7-3 06:49 编辑 ]
作者: lizhenduo    时间: 2009-7-20 12:06
标题: 回复 #1 pseudo 的帖子
请教:我想把windows xp的安装盘作成iso文件,利用pxe这种方法不知能不能启动?
                               谢谢
作者: limonet    时间: 2009-7-20 12:20
和楼上同问,这个问题一直困扰着我,但自己的能力有限,菜菜鸟一个。
前面在时空论坛看到过类似帖子,但太复杂,再者,个人的E文太臭。
作者: ziyun    时间: 2009-10-1 22:51
谢谢楼主分享,收藏备用了!
作者: pseudo    时间: 2009-10-1 23:51
原帖由 lizhenduo 于 2009-7-20 12:06 发表
请教:我想把windows xp的安装盘作成iso文件,利用pxe这种方法不知能不能启动?
                               谢谢

参考此贴
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=148840&pid=1792432&page=31&extra=#pid1792432
作者: 想傲江湖    时间: 2009-11-6 15:45
下载试用。谢谢楼主!
作者: b018call    时间: 2010-3-14 21:26
学习中。。路还很长咯
作者: 尽善尽美    时间: 2010-6-21 19:36
慢慢看慢慢学习!!谢谢!!
作者: 2011goltaxhs    时间: 2011-3-1 23:55
请问在那里能下载试用,我要测试一下。
作者: 于山    时间: 2011-3-2 06:16
u盘上iso整体启动慢得受不了!不可取!
作者: wuyou126    时间: 2011-6-27 22:30
困扰:如何减少网络传输量,如何获取服务器IP,如何使客户端可上网,服务器端、客户端目录结构如何统一,
如何支持混合启动等。



1    0PEv1.2.6(2011-05-02)4in1_262MB好像已经基本实现了这些功能,----
2    全远程pxe启动和远程引导+本地iso启动(就是混合启动吧),速度上看有啥区别?,---待试(明天去做)
3    网络环境一样,仅主板不一样,一个引导进桌面,网络影音,网络映射,都正常,能上网(虽然没试,应该没问题的),而另一个,引导进桌面,网络影音安装后,网络映射失败,就像我引用里的“获取服务器IP”失败,不能ping通pxe服务端了,手动设ip也不行,也ping不通,---困惑

[ 本帖最后由 wuyou126 于 2011-6-27 22:32 编辑 ]
作者: nzkboy    时间: 2012-3-4 15:58
这个工具太好了,非常重要
作者: enjoywithme    时间: 2013-9-18 08:49
我用grub4dos启动ISO,MENU.LST该怎么写啊?
title 0pe
fallback 1
find --set-root /0pe/0pe.iso
map /0pe/0pe.iso (0xff) || map --mem /0pe/0pe.iso (0xff)
map --hook
chainloader (0xff)

这样进去启动会死机
作者: zengyongxing    时间: 2018-3-28 08:48
瞻仰学习,
作者: papago    时间: 2018-10-19 14:27
再次拜读p大的0pe。  【原创】ISO整体启动、解开启动、PXE启动部署三合一,拷贝式安装
作者: tangyaohui    时间: 2021-3-5 16:07
感谢分享,在哪里下载呀?




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