hhh333 发表于 2010-5-31 23:29:22

回复 #61 liuzhaoyzz 的帖子

我至今没有明白网启时它是如何减少启动内存的。能算笔账给我看吗?

[ 本帖最后由 hhh333 于 2010-5-31 23:31 编辑 ]

liuzhaoyzz 发表于 2010-5-31 23:38:38

就用你上面那个例子,如果采用外置版双ISO,grldr+firadisk启动,网启80+60*2+16=216M启动。
如果不加载firadisk,比如采用内置版,grldr直接启动,都是指双ISO的那种,这样ISO整体压缩后才能做到较小。全内置大小80M,不采用firadisk,grldr网启内存=80(map --mem占用)+(60+50)*2+16=316.
这是双ISO,单iso的情况不讨论了,大部分的PE都是双ISO的。
加载firadisk,必须采用外置版才有意义,才会减少启动内存,内置版PE加载firadisk没有任何意义。同样80M大小的双ISO,同样的grldr启动方式,一个内置版没用firadisk,一个外置版用了firadisk,启动内存差别就100M。
hhh333还在吗?都凌晨0点了,睡觉去了,明天再驳吧。

[ 本帖最后由 liuzhaoyzz 于 2010-6-1 00:00 编辑 ]

thmzlp 发表于 2010-6-1 01:31:02

学习了。多谢分享

hhh333 发表于 2010-6-1 07:20:02

回复 #63 liuzhaoyzz 的帖子

应该是
前一种=80(ISO中包含压缩内核IS_+WIM外置)+60*2+16=216
后一种=60(ISO中包含内置程序的压缩内核IS_)+110*2+16=296
多消耗的内存=内置程序的大小*2-内置程序CAB压缩而节约的大小

以上是整体启动时ISO套IS_的情况,如果采用传统方式,全内置是不压缩的,应该就是110+32=146,比程序外置采用整体启动(用firadisk带外置到PE)要节约大致=整体启动包的大小-16

[ 本帖最后由 hhh333 于 2010-6-1 07:58 编辑 ]

liuzhaoyzz 发表于 2010-6-1 08:04:04

不对呀?你说的情况不同吗?我们讨论的都是双ISO,而且ISO不解开的情况下,启动内存的差别。第二种ISO大小也应该是压缩内核30M+wim50M(wim格式本身是压缩的,再用cab压缩变化不大吧)=80M吧,区别只在于wim放在核心里还是放在核心外,无论如何,map --mem占用的80M应该是最少的,不会变的。
firadisk或winvblock提供了一个前提,这个前提就是使用了他们才有可能把外置程序外置来减小启动内存,如果不用他们,外置程序只能内置,否则看不到。

[ 本帖最后由 liuzhaoyzz 于 2010-6-1 12:29 编辑 ]

hhh333 发表于 2010-6-1 17:53:35

回复 #66 liuzhaoyzz 的帖子

前面还是我算错了,后一种=80(ISO中包含内置程序的压缩内核IS_)+110*2+16=316
这个公式是没有错的:多消耗的内存=内置程序的大小*2-内置程序CAB压缩而节约的大小(因WIM已经经过压缩,再压的话大致减少=3~5%)也即全内置如果内核压缩的话要多付出2倍左右内置程序容量的大小。如果不压缩,当然只多出内置程序大小。

从这一点来看,全内置最好不压缩,缺点当然就是空间占得大一点,PXElinux启动时要稍慢(但g4d要快)。

再回到开头关于整体启动的话题,由于用内核级带入外置(应该叫内置),再整体启动显得毫无意义,只是增加内存消耗。但对于程序外置的PE,使用整体启动,通过firadisk或winvblock保留原ISO MAP出的盘还是有积极意义的,当然整体启动是要增加内存消耗的(即压缩内核大小+外置大小)。这样就得出如下结论:

1、全内置方式的PE,最好用非压缩格式的内核,因为外置在内核中,如果压缩将付出2倍外置的启动内存占用代价;而且也不要采用整体启动。这样如果是PXE启动,最好采取传统方式,其启动内存占用除PXE适当增加的部分=非压缩内核(含外置)+32M。

2、程序外置的PE,因内核不含外置较小,可以采用压缩方式。PXE启动时要想有外置,则必须借助firadisk或winvblock,采用整体启动方式将整个包含外置的ISO MAP出的内存盘带入windows。其启动内存占用除PXE适当增加的部分=(外置+压缩内核)+内核非压缩时的容量*2+16M。如果内核也不压缩则占用内存=(外置+非压缩内核)+内核非压缩时的容量+32M

我们举一个例来算一下:外置WIM=50M,内核非压缩时50M,CAB压缩率大致50%即25M
1、第一种方式占用内存: 内核非压缩时=50+50+32=132M     内核压缩时=(50+50)*2+16=216M
2、第二种方式占用内存: 内核非压缩时=(50+50)+50+32=182M  内核压缩时=(50+25)+50*2+16=191M

因内核一般固定在45~55大小,因此可以用如下公式对内存消耗进行估算,W代表外置WIM的容量:
1、第一种方式占用内存: 内核非压缩时=W+82     内核压缩时=2W+116
2、第二种方式占用内存: 内核非压缩时=W+132     内核压缩时=W+141

这样借助firadisk或winvblock,在PXE启动时利用整体启动方式,付出整个发布的PE的ISO容量大小的内存的代价而实现启动,看似简单,不要动原来的PE,但实际上也要做一个PXE启动的模板。如果ISO较大,也不一定适合。
(注:以上有关内核的内存消耗,用ISO形式进行了实机验证无误,IMG内核未测试)

[ 本帖最后由 hhh333 于 2010-6-1 19:41 编辑 ]

liuzhaoyzz 发表于 2010-6-1 18:04:59

你总结和分析的很透彻很到位。是的,如果ISO较大不一定合适256M启动。不过一般来说,一般PE都是双ISO的,最终总体大小控制在128M,这样的PE附带网络支持,带基本维护工具,基本够用了,内核采用cab压缩,外置wim压缩,还是能做到256M启动的。主流的PE都是双ISO的,讨论单ISO意义不是很大。不压缩的PE怕是也很少,毕竟总体ISO小了之后便于网络传播和携带存放。我还是喜欢外置版PE,加个外置程序、网络支持啥的把wim往里面一拖就行了,省心啊,而且启动内存小,启动快。
PXE启动说复杂了需要启动模板,说简单点就扔几个文件而已,tftpd+grldr.0+menu.lst+RAMPEISO1,2,3...,都是没啥技术含量的体力活。

[ 本帖最后由 liuzhaoyzz 于 2010-6-1 18:41 编辑 ]

dvd008 发表于 2010-6-1 18:05:08

有这么复杂吗?

我的pxe服务器,可以任意放到硬盘,在win系统下启动,
即可启动任意winpe。iso ,不需要什么驱动

另外,启动内存实际不是上面的,那不过是理论的

实际上,没压缩的winpe。iso ,启动时,是
iso大小+大约53M ,否则无法进入桌面

我最新的两个直接用于PXE的内核,一个39M,带网络的55M

快雪时晴 发表于 2010-6-1 18:26:09

谢谢hhh333提供参考
http://bbs.znpc.net/viewthread.php?tid=5925&pid=45072&page=1&extra=page%3D1#pid45072

grub4dos与pxeLinux的PXE启动测试(在无忧发了,没多少人关心,我觉得对改进G4D有用就在此发我的第一个帖吧)

grub4dos的PXE启动,以前在使用时启动速度比pxelinux明显要慢,因此就直接PASS了。近期经过chenall不点等几位大侠的努力,现在有了很快的速度了,从而与pxelinux具有了可比性,下面针对PE的PXE启动作了一些测试
分两步走,先测试grub4dos,再测试pxelinux并与grub4dos比较。
一、由grldr启动PE
1、传统方式dhcp-->grldr-->startrom.0-->(去掉启动头的)setupldr.bin-->PE映像
对PE映象的要求:
①不带装载程序的纯映像;
②不能压缩!
PE映像制作:
  为纯内核方式,可集成应用程序。即所谓的全内置核心。

2、整体启动dhcp-->grldr-->MAP PE映像 to 虚拟cd-->将启动转到这个虚拟cd
对PE映象的要求:
    ①必须带装载程序
    ②可以压缩。
PE映像制作有两种方法:
    ①启动镜像套PE纯映像的方式,如不装载特殊驱动只有内嵌的PE纯映像能带进PE,因此外置程序也必须内置到PE纯映象中。这种方式实际上是给全内置核心加一个启动程序外壳,完成全内置核心装载后这个壳就丢失了。这种方式内外两个映像都是可以压缩的。
    ②直接用全内置核心,并将之改造成非RAM方式启动PE。即将setupldr.bin进行一些修改,让其在PE所在盘直接启动。这个与上面的启动方式是不一样的,少了一个先把PE内核装载到RAMDISK的过程。也不存在镜像套镜像的情况。这个镜像可以压缩也可以不压缩。

二、先测试同一个镜像用两种方式的启动速度。
1、先要选一个能同时用以上两种方式启动的PE镜像,这里只有按以上2->②的不压缩方式制作。
2、直接在Winxp下可以测试,大家可以用我的那个ISO解开到硬盘的一个目录,再运行TFTP下的settftp.cmd,在TFTP界面中将DHCP启动文件改成grldt再保存就可以了
3、改菜单,我的PXE启动菜单在boot/grub/pxelinux.lst,加一项整体启动(我的新版中这些菜单和以上改动就做了,测试没什么问题后再上传)

title --启动全内置WinPE 2003      Boot WinPE 2003 By Normal Method\nPE镜像不能以压缩方式存放。
#map --mem (pd)/BOOT/IMGS/firadisk.ima (fd0)
chainloader --force (pd)/BOOT/H3_PXELD.0
title --整体启动全内置WinPE 2003    Boot WinPE 2003 By Map ISO to CD Before\nPE镜像可以用GZ压缩方式存放(根据镜像的大小可能需要更大的内存)。
map --mem (pd)/BOOT/IMGS/firadisk.ima (fd0)
map --mem (pd)/H3PE/WINPEIN.ISO (0xff)
map --hook
pxe unload
rootnoverify (0xff)
chainloader (0xff)

PXE整体启动时不加pxe unload不能往下启动,不加firadisk启动会蓝屏,这可能是非RAM方式造成的。
4、测试结果:只测试到全部装载完成所用时间(即第2次大于号滚动完成)
①grldr从DHCP开始到出菜单11秒。
②94M的非嵌套纯启动镜像第1种方式:27秒左右;第2种不压缩29秒,用压缩格式(70M)也要40秒左右。





之前一直用TangoPE和dos、linux在虚拟机中进行PXE测试,启动都很正常。
今天改用dos菜鸟提供MINIWIN98.ISO(或者其他不带firadisk驱动的PE),
发现如果不加pxe unload,就会提示pxe unload失败;


发现如果不加map firadisk驱动先,就会在Decompress阶段失败。



成功的菜单:
timeout 30
default 0
unifont (pd)/wqy-microhei-lite_0_U16.bin

title 中文MINI98Z42.iso
map --mem (pd)/firadisk.IMA (fd0)
map --mem (pd)/MINI98Z42.iso (0xff)
map --hook
pxe unload
kernel (0xff)/BOOT/GRUB/MEMDISK.GZ
initrd (0xff)/98Z42.ZIP

znpc贴不了图,发这里了

liuzhaoyzz 发表于 2010-6-1 18:36:47

PXE服务器本来就应该在XP下架设,不知道为什么那么多大侠都喜欢在PE下架设,这里好像有个问题,难道局域网里面就没有一台电脑是好的吗?能在XP下搞定的事情为什么要在PE下搞?这对于刚开始接触PXE启动的人是一种误导,语气重点可以称作“愚弄”。
老毛桃谈到PE的启动内存的时候用了一个词就是“只是大概”,理论和实际有差别,但不会很大,我用虚拟机测试过,感觉那个计算启动内存的公式挺准的。

[ 本帖最后由 liuzhaoyzz 于 2010-6-8 08:49 编辑 ]

dvd008 发表于 2010-6-1 18:50:06

反正我的那个PXE服务器,XP,03,WIN7,PE下都好使,
启动内存是实机测试的数据.

需要启动哪个PE,就把WINPE.ISO拖到PXE目录即可

依然饭特稀 发表于 2010-6-1 22:57:25

早就想来顶这个帖子了,楼主的grub4dos+原版ISO的方法最好用了,大部分PE发布的ISO都可用(加FIRADISK).用Hanewin dhcp好一些,是以服务的形式运行的,前不久我把硬盘拆了,用同学的机子作服务机,Hanewin dhcp在他后台天天帮我无盘启动,嘿嘿.

尽善尽美 发表于 2010-6-24 17:49:38

这个学习一定要顶的!!楼主有心了!!

hwslj 发表于 2010-6-24 19:02:58

chenbaker 发表于 2010-9-7 17:13:59

给出TFTPD32+FIRADISK+GRLDR+WINPE做好的成品(只包括通用PE带网络支持的映像):52M
http://u.115.com/file/f0f211eefd
PXE以不同方式启动PE-通用PE带网络支持.rar

grldr+pxelinux启动的支持文件模板321k。采用grub4dos-0.4.5b-2010-05-23.zip里面的grldr
http://u.115.com/file/f0daff033c
http://www.brsbox.com/filebox/down/fc/6a915e59592dc67a258e0813f866bb6c

115盘的文件已经不存在,楼主能否更新一下地址,正需要这些东西

lsbzhe 发表于 2010-10-17 13:59:34

感谢楼主分享!!!!

lsbzhe 发表于 2010-10-18 14:30:36

楼主能更新下地址吗?

loveheart 发表于 2010-10-19 09:53:18

看不懂,有空再学习下。

papago 发表于 2018-10-20 21:21:18

PXE局域网启动PE方法汇总 标记,感谢!

papago 发表于 2018-10-20 21:23:10

pseudo 发表于 2010-4-3 17:17
n年前0PE就是支持本地、网络、USB多重启动的PE。

1. “pxelinux.0查找到/menu.lst/default一系列菜单文 ...

P大厉害,标记。

2010kisssky 发表于 2024-1-6 13:44:05

1111111111111111111111111111111111111111
页: 1 2 [3]
查看完整版本: PXE局域网启动PE方法汇总