无忧启动论坛
标题:
Grub与Linux的PXE启动测试
[打印本页]
作者:
hhh333
时间:
2010-5-30 18:28
标题:
Grub与Linux的PXE启动测试
(
pseudo
大侠喜欢玩概念,我还是做点苦力吧)
grub4dos的PXE启动,以前在使用时启动速度比linux明显要慢,因此就直接PASS了。近期经过chenall不点等几位大侠的努力,现在有了很快的速度了,从而与linux具有了可比性,下面针对PE的PXE启动作了一些测试
分两步走,先测试grub,再测试linux并与grub比较。
一、由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再保存就可以了。(注:我的那个全内置经多次重做,今天试了一下原来的启动信息不对了,这里
TFTP.rar
(2.42 KB, 下载次数: 129)
2010-5-30 18:31 上传
点击文件名下载附件
下载积分: 无忧币 -2
传一个启动文件给大家。里面还有一个经过改进的settftp.cmd)
3、改菜单,我的PXE启动菜单在boot/grub/pxelinux.lst,加一项整体启动(我的新版中这些菜单和以上改动就做了,测试没什么问题后再上传)
title [01]--启动全内置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 [02]--整体启动全内置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秒左右。
三、看pxelinux
1、调用菜单如下:
LABEL runinpe
MENU LABEL [^1] -- 传统方式启动全内置WinPE 2003
kernel /BOOT/H3_PXELD.0
LABEL runinpetocd
MENU LABEL [^2] -- 整体启动全内置WinPE 2003
LINUX /BOOT/ISOLINUX/MEMDISK
APPEND raw iso
INITRD /H3PE/WINPEIN.ISO
复制代码
2、测试:
①pxelinux从DHCP开始到出菜单5秒。
②94M的非嵌套纯启动镜像第1种方式:26秒左右;第2种不压缩27秒,用压缩格式(70M)也要22秒左右。
四、结论
1、linux在PXE启动速度方面有一定优势:①DHCP出菜单的速度较grub4dos明显要快②压缩格式镜像整体启动速度明显较快。
2、在配置的灵活性方面grub4dos要占优:①能够MAP出多种盘;象上述非RAM格式的PE包,grub可以用firadisk而避免死机,而linux我还没找到用memdisk多盘的方法。
如果大家有兴趣,可以再测试镜像嵌套的整体启动。
刚才又做了镜像嵌套的整体启动测试
1、嵌套镜像内核为上述全内置内核CAB压缩67M
2、虚拟机中测试:g4d方式装载需要25秒;pxelinux需要15秒。
[
本帖最后由 hhh333 于 2010-5-30 23:36 编辑
]
作者:
33445566
时间:
2010-5-30 18:47
支持,学习..............
作者:
liuzhaoyzz
时间:
2010-5-30 19:26
个人觉得如果想要偷懒,grub4dos还是简写作g4d更好,grub更让人觉得是GNU grub legacy,不点估计也会反对这样简写。
pxelinux只是linux下用于PXE引导的引导器,简写作linux怕不太好。
hhh333大侠好像测试的是g4d和pxelinux在启动PE的内核的速度对比吧,也就是启动的是winpe.im_或者winpe.is_里面的那个单核心。用startrom.0加载肯定要快点,因为文件不需要解压缩的过程,缺点是映像大了,用grldr加载就慢了,是因为多了一步把映像map到内存的步骤,而且还多占用了内核大小的内存。
非RAM方式怕是不能PXE启动吧?你说的是用firadisk直接代替ramdisk?pxelinux下面winvblock估计也是可以直接代替ramdisk的。这就像当初chenall第一个吃螃蟹,尝试PE的另类启动方法,用无盘天使的wdsys启动。
memdisk不加raw参数怕是不能整体PXE启动PE。
[
本帖最后由 liuzhaoyzz 于 2010-5-30 19:32 编辑
]
作者:
hhh333
时间:
2010-5-30 20:08
标题:
回复 #3 liuzhaoyzz 的帖子
非嵌套镜像方式的整体启动就是非RAM方式启动,是可以PXE成功启动的。上文中并没有用firadisk直接代替ramdisk,更没有将镜像往firadisk盘中放,非RAM方式没有本地盘时可能蓝屏,用firadisk大致是让非RAM觉得有本地盘吧,具体原理不是特别清楚,但非RAM方式我想是没有变的。
pxelinux确实要加raw参数才能整体启动,我改一下。
[
本帖最后由 hhh333 于 2010-5-30 20:59 编辑
]
欢迎光临 无忧启动论坛 (http://wuyou.net./)
Powered by Discuz! X3.3