无忧启动论坛

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

Grub与Linux的PXE启动测试

[复制链接]
跳转到指定楼层
1#
发表于 2010-5-30 18:28:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
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) 传一个启动文件给大家。里面还有一个经过改进的settftp.cmd)
3、改菜单,我的PXE启动菜单在boot/grub/pxelinux.lst,加一项整体启动(我的新版中这些菜单和以上改动就做了,测试没什么问题后再上传)
  1. title [01]--启动全内置WinPE 2003        Boot WinPE 2003 By Normal Method\nPE镜像不能以压缩方式存放。
  2. #map --mem (pd)/BOOT/IMGS/firadisk.ima (fd0)
  3. chainloader --force (pd)/BOOT/H3_PXELD.0
  4. title [02]--整体启动全内置WinPE 2003    Boot WinPE 2003 By Map ISO to CD Before\nPE镜像可以用GZ压缩方式存放(根据镜像的大小可能需要更大的内存)。
  5. map --mem (pd)/BOOT/IMGS/firadisk.ima (fd0)
  6. map --mem (pd)/H3PE/WINPEIN.ISO (0xff)
  7. map --hook
  8. pxe unload
  9. rootnoverify (0xff)
  10. chainloader (0xff)
复制代码

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

三、看pxelinux
1、调用菜单如下:
  1.    LABEL runinpe
  2.    MENU LABEL [^1] -- 传统方式启动全内置WinPE 2003
  3.    kernel /BOOT/H3_PXELD.0
  4.    LABEL runinpetocd
  5.    MENU LABEL [^2] -- 整体启动全内置WinPE 2003
  6.    LINUX /BOOT/ISOLINUX/MEMDISK
  7.    APPEND raw iso
  8.    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 编辑 ]
4#
 楼主| 发表于 2010-5-30 20:08:01 | 只看该作者

回复 #3 liuzhaoyzz 的帖子

非嵌套镜像方式的整体启动就是非RAM方式启动,是可以PXE成功启动的。上文中并没有用firadisk直接代替ramdisk,更没有将镜像往firadisk盘中放,非RAM方式没有本地盘时可能蓝屏,用firadisk大致是让非RAM觉得有本地盘吧,具体原理不是特别清楚,但非RAM方式我想是没有变的。

pxelinux确实要加raw参数才能整体启动,我改一下。

[ 本帖最后由 hhh333 于 2010-5-30 20:59 编辑 ]
回复

使用道具 举报

3#
发表于 2010-5-30 19:26:14 | 只看该作者
个人觉得如果想要偷懒,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 编辑 ]
回复

使用道具 举报

2#
发表于 2010-5-30 18:47:58 | 只看该作者
支持,学习..............
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 22:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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