ljycslg 发表于 2013-7-17 22:37:32

在PXE服务器上部署ipxe的HTTP、FTP启动,体验极速传输(更新FTP)

本帖最后由 ljycslg 于 2013-8-5 08:52 编辑

重大更新:支持FTP

官方源码内置了FTP协议,但是默认没有打开。现打开重新编译测试发现比HTTP更强
实测速度效率几乎没有损耗,你的网速能有多快那就有多快,不愧是专用文件传输协议FTP!这是网启的一次革命
本人FTP服务使用的是win7内置的iis组件,配置稍显繁琐,大家可以找些小巧的ftp软件

脚本怎么改不用我说了吧{:2_123:}
由于有未解决的问题,不再提供直接启动文件
百兆实测128m的iso用时11.6s,每秒11m
千兆不用说了,妙传!


P大的HTTP网启功能虽然比较傻瓜,但不适合DIY
最近研究了下整合到了grub4dos的网启菜单上
虽然ipxe能直接作为启动文件,不过还是用grldr来调用比较好,方便定制菜单DIY
在grub4dos网启菜单添加如下:
title ipxe
kernel /IPXE.KRN
initrd /myscript.ipxe

ipxe.krn为启动文件,myscript.ipxe为脚本文件,这里都放在网启启动目录
myscript.ipxe内容:
#!ipxe
dhcp
isset ${next-server} || set next-server 192.168.1.3#自行指定服务器ip
initrd http://${next-server}/0PE.ISO
chain http://${next-server}/grub.exe--config-file="map (rd)+1 (0xff);map --hook;chainloader (0xff)"
有了这个就能方便定制你要启动的ISO文件
next-server变量代表tftp服务器,这里假定tftp和http为同一台机, 这条语句表示如果探测不到则指定ip,你可以改成你的服务器ip
ipxe通过http服务把iso加载到了内存,实测直接把百兆速度占满了,秒杀TFTP
最屌暴的是grub的(rd)就是ipxe加载的内容,这样就好玩了,大家可以尽情发挥
下面grub命令熟悉了吧,映射成了光驱然后启动,别忘了把grub.exe放到启动目录中

用pxelinux中的memdisk引导ISO或许比grub.exe更好chainhttp://${next-server}/memdisk iso raw

部署http服务:
P大用的是easywebserver
非常小巧的Web服务器软件。可以很快速地在您的PC上创建一个站点,而无需IIS等庞大复杂的工具。
启动后把目录设置到你存放ISO启动镜像所在目录就行了




如何更新IPXE.KRN?
下载http://boot.ipxe.org/ipxe.iso 里面有最新源码编译生成的IPXE.KRN

更新:ipxe内嵌脚本直接启动文件,默认下载根目录的menu.ipxe菜单脚本,也可通过grldr调用: pxe keep && chainloader --raw (pd)/ipxe.0


IPXE菜单效果图





菜单示例:#!ipxe
#set menu-timeout 8000
   set menu-default 0pe
   isset ${ip} || dhcp
   isset ${next-server} || set next-server 192.168.1.3
:start
menu iPXE Boot Menu
item --gap --             --------------------------------- PE --------------------------------
item winre                BOOT Win7 RE (wimboot)
item 0pe                  BOOT Pseudo 0PE (iso)
item TangoPE            BOOT Tango PE (iso)
item --gap --             -------------------------------- TOOL --------------------------------
item maxdos               Maxdos Tool
item memtest            Memtest86
item --gap --             ---------------------------- Advanced options -----------------------
item --key c config       Configure settings                                 -- c
item --key p pxelinux   Load PXELinux menu                                 -- p
item shell                Drop to iPXE shell
item reboot               Reboot computer
item --key x exit         Exit iPXE and continue BIOS boot                     -- x
choose --timeout ${menu-timeout} --default ${menu-default} selected
goto ${selected}

:shell
echo Type 'exit' to get the back to the menu
shell
goto start

:failed
echo Booting failed, dropping to shell
goto shell

:reboot
reboot

:exit
exit

:config
config
goto start

:pxelinux
chain http://${next-server}/pxelinux.0 || goto failed
goto start

:memtest
chain http://${next-server}/MAXDOS/memtest.bin || goto failed#http://boot.ipxe.org/memtest.bin
goto start

:maxdos
initrd http://${next-server}/MAXDOS/max9.3.ima
chain http://${next-server}/memdisk || goto failed

:0pe
initrd http://${next-server}/ISO/0PE.ISO
chainhttp://${next-server}/memdisk iso raw
#chain http://${next-server}/ISO/grub.exe --config-file="map (rd)+1 (0xff);map --hook;chainloader (0xff)"

:TangoPE
initrd http://${next-server}/ISO/TangoPE_NET.ISO
chain http://${next-server}/memdisk iso raw

:winre
kernel http://${next-server}/wimboot                              #http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
initrd http://${next-server}/ISO/winre/bootmgr   bootmgr
initrd http://${next-server}/ISO/winre/BCD         BCD
initrd http://${next-server}/ISO/winre/boot.sdi    boot.sdi
initrd http://${next-server}/ISO/winre/winre.wim   boot.wim
boot || goto failed
goto start

2010ihotte 发表于 2013-7-17 23:01:28

这个还是有很大的局限性,不能在启动的时候加载扩展

xdlys 发表于 2013-7-18 11:05:59

楼主的“自用DIY 0PE全自动PXE启动加载及远程控制”感觉很好。

pseudo 发表于 2013-7-17 23:05:59

适合其它PE普及http网启

2011npwjm 发表于 2013-7-18 09:00:52

谢谢楼主分享,收藏了

ljycslg 发表于 2013-7-18 12:31:36

今天测试了两台机都不行,兼容性不理想
直接把ipxe作为启动文件就可以
希望grub能直接支持HTTP,省得调来去

快雪时晴 发表于 2013-7-18 14:02:56

ljycslg 发表于 2013-7-18 12:31 static/image/common/back.gif
今天测试了两台机都不行,兼容性不理想
直接把ipxe作为启动文件就可以
希望grub能直接支持HTTP,省得调来 ...

p大的网启我也看了,也是比较方便,直接把可启动ISO改名为0pe.iso就可以了
兼容性也许是pxe参数设置问题,更和网卡有很大关系

switch131 发表于 2013-7-22 18:46:25

TFTP速度有个时候很蛋疼,特别是TFTPD32那个服务端,速度非常的不稳定,改成HTTP确实要快多了。

北斗 发表于 2013-7-22 19:49:34

本帖最后由 北斗 于 2013-7-22 19:51 编辑

switch131 发表于 2013-7-22 18:46 static/image/common/back.gif
TFTP速度有个时候很蛋疼,特别是TFTPD32那个服务端,速度非常的不稳定,改成HTTP确实要快多了。

TFTP慢的原因很多,服务器的网卡型号、驱动的版本,交换机,双绞线,水晶头,客户机的网卡型号以及PXE BootRom的版本等等都会影响到TFTP的速度,也许还要带上外部的电磁干扰。

根据自己的经验,百兆环境的TFTP速度一般在3MB~5MB/s左右,千兆环境在8MB~11MB/s左右。

一直hanewin+grub+pxe启动的路过。

ddianxing 发表于 2013-7-22 19:54:14

本帖最后由 ddianxing 于 2013-8-3 11:24 编辑

1、以grldr启动文件,HTTP、FTP协议的在实机和虚拟机上均测试成功!在虚拟机中FTP没有HTTP快,在实机中两者差不多!

2、以ipxe.0为启动文件,实机中和虚拟机中均不成功,虚拟机在可以进入那个蓝色的菜单,但Winre和0PE都无法启动(如下图);实机中加载完启动文件就退出了,菜单都看不到……

页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 在PXE服务器上部署ipxe的HTTP、FTP启动,体验极速传输(更新FTP)