无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 我是神仙
打印 上一主题 下一主题

[分享] iPXE wimboot 现在支持UEFI下的http/ftp启动了

    [复制链接]
31#
 楼主| 发表于 2014-9-19 11:25:25 | 只看该作者
我是神仙 发表于 2014-9-8 12:21
我看那个snponly.efi不好用。一般都用的ipxe.efi.反正换着用 哪个行就用哪个

https://rom-o-matic.e ...

再加个重试机制

点评

似乎不支持32位EFI,如下图,好象传输都是正常的。 [attachimg]199853[/attachimg]  详情 回复 发表于 2014-9-21 07:33
回复

使用道具 举报

32#
发表于 2014-9-21 07:33:24 | 只看该作者

似乎不支持32位EFI,如下图,好象传输都是正常的。

点评

以前只试了64位的ipxe. 不过我看虚拟机vmware 32位的不能用64位的ipxe.efi启动 而且32位的ipxe.efi我始终编译不成功. https://rom-o-matic.eu/也始终打不开 另外在32位的uefi vmware上试了一下syslinux, 64位的  详情 回复 发表于 2014-9-21 10:41
听说基本没有32位的UEFI? 32位EFI的用vmware怎么模拟? 我是加了个firmware="efi" 我看dhcp请求都是arch:00007,怎么变成arch:00006? 我看图片上加载了wim文件后马上就报错了 是马上就用了boot语句?出错了就要  详情 回复 发表于 2014-9-21 10:15
回复

使用道具 举报

33#
 楼主| 发表于 2014-9-21 10:15:09 | 只看该作者
本帖最后由 我是神仙 于 2014-9-21 10:28 编辑




我看图片上加载了wim文件后马上就报错了 是马上就用了boot语句?出错了就要加上imgstat语句并且加上暂停语句prompt,再在wimboot的kenel命令后面也加上 pause参数以便查看具体的信息

后面还有个什么no such file 那个也是你指定了一个不存在的文件URL了吧

点评

确实是boot语句出错了,后面是脚本中没有shell标签的问题,不管它。 我大致是这样的,先去编译一个32位的ipxe32.efi,放一个脚本: 编一个菜单,支持32与64的: 64位没有问题,32位的就如下: [attachim  详情 回复 发表于 2014-9-21 10:41
回复

使用道具 举报

34#
发表于 2014-9-21 10:41:48 | 只看该作者
本帖最后由 hhh333 于 2014-9-21 10:45 编辑
我是神仙 发表于 2014-9-21 10:15
我看图片上加载了wim文件后马上就报错了 是马上就用了boot语句?出错了就要加上imgstat语句并且加上 ...


确实是boot语句出错了,后面是脚本中没有shell标签的问题,不管它。
我大致是这样的,先去编译一个32位的ipxe32.efi,放一个脚本:
  1. #!ipxe
  2. dhcp
  3. set x32 32
  4. chain efi/H3_iPXEM.EFI
复制代码


编一个菜单,支持32与64的:
  1. #!ipxe
  2. set menu-timeout 8000
  3. set menu-default w8pe
  4. isset ${ip} || dhcp
  5. isset ${next-server} || set next-server 192.168.7.100
  6. cpuid --ext 29 && set x64 Y || set x32 Y
  7. :start
  8.   menu iPXE EFI Boot Menu
  9.   item --gap --             -------------------------------- H3 PE TOOL ---------------------------
  10.   item w8pe                   1-- Win8 PE
  11.   item w81pe                  2-- Win81 PE
  12.   item --gap --             -----------------------------------------------------------------------
  13.   choose --timeout ${menu-timeout} --default ${menu-default} selected
  14.   goto ${selected}

  15. :shell
  16.   echo Type 'exit' to get the back to the menu
  17.   shell
  18.   goto start

  19. :failed
  20.   echo Booting failed, dropping to shell
  21.   imgstat
  22.   goto shell

  23. :w8pe
  24.         set bootfile bootx64.efi && set tbcdfile BCD && set sbcdfile b64 && set pefile H3_864.WIM
  25.         isset ${x32} && set bootfile bootia32.efi && set tbcdfile B32 && set sbcdfile b832 && set pefile H3_8PE.WIM ||
  26.   goto wimbootpe

  27. :w81pe
  28.         set bootfile bootx64.efi && set tbcdfile BCD && set sbcdfile b16 && set pefile H3_8164.WIM
  29.         isset ${x32} && set bootfile bootia32.efi && set tbcdfile B32 && set sbcdfile b8132 && set pefile H3_81PE.WIM ||
  30.   goto wimbootpe

  31. :wimbootpe
  32.   kernel http://${next-server}/BOOT/wimboot
  33.   initrd http://${next-server}/efi/boot/${bootfile}
  34.   initrd -n ${tbcdfile} http://${next-server}/efi/microsoft/boot/${sbcdfile}
  35.   initrd http://${next-server}/BOOT/boot.sdi
  36.   initrd http://${next-server}/BOOT/${pefile}
  37.   boot || goto failed
  38.   goto start
复制代码


64位没有问题,32位的就如下:


另外要说的是,32位的EFI,只要在VM中建非64位的虚拟机,再加那一条命令就是32位EFI启动的。PXE启动EFI32没有问题,现在就在ipxe与wimboot配合时出错,不知是不是wimboot的问题。
回复

使用道具 举报

35#
 楼主| 发表于 2014-9-21 10:41:56 | 只看该作者
本帖最后由 我是神仙 于 2014-9-21 10:43 编辑
hhh333 发表于 2014-9-21 07:33
似乎不支持32位EFI,如下图,好象传输都是正常的。


以前只试了64位的ipxe. 不过我看虚拟机vmware 32位的不能用64位的ipxe.efi启动 而且32位的ipxe.efi我始终编译不成功. https://rom-o-matic.eu/也始终打不开

另外在32位的uefi vmware上试了一下syslinux,
64位的不能启动 pxelinux\efi64\syslinux.efi
32位的就可以启动 pxelinux\efi\syslinux.efi


32位的ipxe.efi我始终编译不成功. https://rom-o-matic.eu/也始终打不开
你能不能把32位的ipxe.efi共享一下呢


https://rom-o-matic.eu/那个网其实打得开 但是点了下拉菜单之后没有任何反应 不能实际编译

点评

我是翻墙后开的,否则有时开不了,这是编译好的: 它会转到efi\H3_iPXEM.EFI脚本。  详情 回复 发表于 2014-9-21 10:50
回复

使用道具 举报

36#
发表于 2014-9-21 10:50:54 | 只看该作者
本帖最后由 hhh333 于 2014-9-21 10:52 编辑
我是神仙 发表于 2014-9-21 10:41
以前只试了64位的ipxe. 不过我看虚拟机vmware 32位的不能用64位的ipxe.efi启动 而且32位的ipxe.efi我始 ...


我是翻墙后开的,否则有时开不了,选高级模式,有32位的EFI,这是编译好的: ipxe32.7z (295.1 KB, 下载次数: 12)
它会转到efi\H3_iPXEM.EFI脚本。

点评

可以加上一个ping命令,有时用来进入shell来测试网络是否连通 挺有用的。再加个console命令可以在ipxe菜单中显示背景图片。当然这些都是小儿科 能启动PE才是关键  详情 回复 发表于 2014-9-21 15:41
看了下它那个网页rom-o-matic.eu 确实 是引用了 ajax.googleapis.com这个网站上的两个js文件。知道原因就好办了,把这两个js文件下载到本机就可以用了  详情 回复 发表于 2014-9-21 15:38
原来是被墙了?可能是用了google的服务 我怎么一直没想到这个。。。还以为是我的打开方式不对 32位的确实玩不转。不过我试了下直接用bootia32.efi为启动文件进行传统的pxe启动好像也不得行呢  详情 回复 发表于 2014-9-21 11:26
回复

使用道具 举报

37#
 楼主| 发表于 2014-9-21 11:26:42 | 只看该作者
hhh333 发表于 2014-9-21 10:50
我是翻墙后开的,否则有时开不了,选高级模式,有32位的EFI,这是编译好的:
它会转到efi\H3_iPXEM.EF ...

原来是被墙了?可能是用了google的服务 我怎么一直没想到这个。。。还以为是我的打开方式不对

32位的确实玩不转。不过我试了下直接用bootia32.efi为启动文件进行传统的pxe启动好像也不得行呢

点评

又试了下 直接用bootia32.efi为启动文件进行传统的pxe启动 还是可以启动的! 看了日志 是因为那个bcd中有个什么参数 tcpblocksize 20480 不支持。把那个参数删除了就可以启动了 bcd文件我都是从其他PE上直接复  详情 回复 发表于 2014-9-21 11:56
回复

使用道具 举报

38#
发表于 2014-9-21 11:45:02 | 只看该作者
32位efi网启没意义,win8平板外接usb网卡网启?那还不如用U盘

点评

32位EFI都是平板啊? 怪不得没听说过 没见过32位efi平板。  详情 回复 发表于 2014-9-21 11:54
回复

使用道具 举报

39#
 楼主| 发表于 2014-9-21 11:54:37 | 只看该作者
ljycslg 发表于 2014-9-21 11:45
32位efi网启没意义,win8平板外接usb网卡网启?那还不如用U盘

32位EFI都是平板啊? 怪不得没听说过 没见过32位efi平板。

回复

使用道具 举报

40#
 楼主| 发表于 2014-9-21 11:56:32 | 只看该作者
我是神仙 发表于 2014-9-21 11:26
原来是被墙了?可能是用了google的服务 我怎么一直没想到这个。。。还以为是我的打开方式不对

32位的 ...

又试了下 直接用bootia32.efi为启动文件进行传统的pxe启动 还是可以启动的!

看了日志 是因为那个bcd中有个什么参数 tcpblocksize 20480 不支持。把那个参数删除了就可以启动了

bcd文件我都是从其他PE上直接复制下来的 以前没注意到有这个参数 可能在其他地方有用吧

点评

bootia32.efi 可以启动,只要不特意去改变那个参数,特别是在VM中测试时。 [attachimg]199864[/attachimg]  详情 回复 发表于 2014-9-21 13:42
回复

使用道具 举报

41#
发表于 2014-9-21 13:42:23 | 只看该作者
我是神仙 发表于 2014-9-21 11:56
又试了下 直接用bootia32.efi为启动文件进行传统的pxe启动 还是可以启动的!

看了日志 是因为那个bcd ...

bootia32.efi 可以启动,只要不特意去改变那个参数,特别是在VM中测试时。
回复

使用道具 举报

42#
 楼主| 发表于 2014-9-21 15:38:44 | 只看该作者
hhh333 发表于 2014-9-21 10:50
我是翻墙后开的,否则有时开不了,选高级模式,有32位的EFI,这是编译好的:
它会转到efi\H3_iPXEM.EF ...

看了下它那个网页rom-o-matic.eu 确实 是引用了 ajax.googleapis.com这个网站上的两个js文件。知道原因就好办了,把这两个js文件下载到本机就可以用了
回复

使用道具 举报

43#
 楼主| 发表于 2014-9-21 15:41:37 | 只看该作者
hhh333 发表于 2014-9-21 10:50
我是翻墙后开的,否则有时开不了,选高级模式,有32位的EFI,这是编译好的:
它会转到efi\H3_iPXEM.EF ...

可以加上一个ping命令,有时用来进入shell来测试网络是否连通 挺有用的。再加个console命令可以在ipxe菜单中显示背景图片。当然这些都是小儿科 能启动PE才是关键
回复

使用道具 举报

44#
发表于 2014-9-21 15:44:56 | 只看该作者
感觉到EFI32不能启动应该是wimboot的问题,前面都成了,就是boot不成,应该是没考虑32位的情况;

那个WIM文件名不能多于7个字符的问题也还没有发新版。

点评

EFI32这个问题昨天又发了个新版2.3.0已经解决了。和作者说了一下,他说这是因为一个编译选项忘了设置。结果代码一行没改,加了个编译选项就可以了。测试过了,确认没问题了。 https://git.ipxe.org/release/wimboot  详情 回复 发表于 2014-9-25 08:56
WIM文件名不能多于7个字符的问题在昨天的新版2.2.5中已经解决了。 efi32据说在wimboot.zip中有个文件wimboot.i386,可以试一下。  详情 回复 发表于 2014-9-24 12:37
可以多于7个字符啊。可以是9个字符 10个字符。但是好像不能是8个字符  详情 回复 发表于 2014-9-21 22:41
回复

使用道具 举报

45#
 楼主| 发表于 2014-9-21 22:41:43 | 只看该作者
hhh333 发表于 2014-9-21 15:44
感觉到EFI32不能启动应该是wimboot的问题,前面都成了,就是boot不成,应该是没考虑32位的情况;

那个WI ...

可以多于7个字符啊。可以是9个字符 10个字符。但是好像不能是8个字符
回复

使用道具 举报

46#
 楼主| 发表于 2014-9-24 12:37:27 | 只看该作者
hhh333 发表于 2014-9-21 15:44
感觉到EFI32不能启动应该是wimboot的问题,前面都成了,就是boot不成,应该是没考虑32位的情况;

那个WI ...

WIM文件名不能多于7个字符的问题在昨天的新版2.2.5中已经解决了。 efi32据说在wimboot.zip中有个文件wimboot.i386,可以试一下。
回复

使用道具 举报

47#
 楼主| 发表于 2014-9-24 13:06:35 | 只看该作者


test
回复

使用道具 举报

48#
 楼主| 发表于 2014-9-25 08:56:19 | 只看该作者
hhh333 发表于 2014-9-21 15:44
感觉到EFI32不能启动应该是wimboot的问题,前面都成了,就是boot不成,应该是没考虑32位的情况;

那个WI ...

EFI32这个问题昨天又发了个新版2.3.0已经解决了。和作者说了一下,他说这是因为一个编译选项忘了设置。结果代码一行没改,加了个编译选项就可以了。测试过了,确认没问题了。
https://git.ipxe.org/release/wimboot/wimboot-latest.zip

点评

要用wimboot.i386这个文件吗?  详情 回复 发表于 2014-9-25 10:36
回复

使用道具 举报

49#
发表于 2014-9-25 10:36:40 | 只看该作者
本帖最后由 hhh333 于 2014-9-25 10:59 编辑
我是神仙 发表于 2014-9-25 08:56
EFI32这个问题昨天又发了个新版2.3.0已经解决了。和作者说了一下,他说这是因为一个编译选项忘了设置。结 ...


要用wimboot.i386这个文件吗?

试了,用这个文件可以了
回复

使用道具 举报

50#
 楼主| 发表于 2014-9-26 10:40:39 | 只看该作者
本帖最后由 我是神仙 于 2014-9-29 12:25 编辑

普通BIOS和32位EFI 64位EFI要分别用不同的iPXE版本才能启动。

如果想用同一个PXE服务器 同时适应pcibios 及 32位 和 64位 不同架构的网络启动,需要对DHCP服务作相应的配置。

如果是用的HanewinDHCP Server,可以多建几个配置profile.  (Option > manage profiles > add)

并用Vendor Class作为条件
PXEClient:Arch:00000 则指向 ipxe/pcibios/ipxe.pxe
PXEClient:Arch:00006 则指向 ipxe/efi.i386/ipxe.efi
PXEClient:Arch:00007 则指向 ipxe/efi.x86_64/ipxe.efi
PXEClient:Arch:00009 则指向 ipxe/default.ipxe
...

PXEClient:Arch:00000这个也可以就用默认的 for Interface IP Address作为条件就行了

回复

使用道具 举报

51#
 楼主| 发表于 2014-9-29 12:28:22 | 只看该作者
本帖最后由 我是神仙 于 2014-9-29 12:30 编辑

启动基本过程:

1 dhcp discover: 此为client开始DHCP过程中的第一个请求报文 arch:00007

2 dhcp offer   : 此为server 对dhcpdiscover 报文的响应

3 dhcp request  : 此为client 对dihcpoffer 报文的响应

4 dhcp ack     : server对 dhcprequest 报文的响应,client收到此报文后才真正获得了IP地址和相关配置信息。

5 检测是否有proxcy dhcp server

6 加载ipxe

7 dhcp discover: 此为client开始DHCP过程中的第一个请求报文  arch:00009

8 dhcp offer   : 此为server 对dhcpdiscover 报文的响应

9 dhcp request  : 此为client 对dihcpoffer 报文的响应

10 dhcp ack     : server对 dhcprequest 报文的响应,client收到此报文后才真正获得了IP地址和相关配置信息。

11 检测是否有proxcy dhcp server, 有的话再从proxcy dhcp server得到启动的文件名

12 开始启动脚本

如果把第7步开始的后续的二次DHCP过程省略了 可以加快启动
如果把第11步检测proxcy dhcp server的过程省略了的话 也可以加快启动

不过 过快了也不好 特别是要连接iscsi等的时候 即使加快了 也往往需要人为的等待几秒钟 加个sleep 3秒命令才能成功连接。所以太快也不一定好。一般就用默认的dhcp过程就好了
回复

使用道具 举报

52#
发表于 2014-9-30 18:05:01 | 只看该作者
前来学习一下
回复

使用道具 举报

53#
发表于 2014-10-31 13:15:33 | 只看该作者
学习下,谢谢楼主高人分享!!!!
回复

使用道具 举报

54#
发表于 2014-11-26 21:16:15 | 只看该作者
IPXE在 cONFIG网卡的时候出错,提示No more network devices是啥问题?
回复

使用道具 举报

55#
发表于 2015-1-10 18:26:17 | 只看该作者

来支持一下楼主,辛苦啦~~~
回复

使用道具 举报

56#
发表于 2015-1-13 11:45:20 | 只看该作者
这个速度是很快,但有个问题,就是不论TFTP还是HTTP,一次一个文件只能被一台客户机器读取。
tiny pxe server提示: 另一个程序正在使用此文件,进程无法访问。
客户端提示:no sunch file或者file no found
这样就相当与单线程了,效率不高。
不知道是否可以请作者改一下呢?
回复

使用道具 举报

57#
发表于 2015-2-28 15:36:00 | 只看该作者
本帖最后由 北斗 于 2015-2-28 15:38 编辑

请教大家一下,技嘉H61M-DS2实机,瑞昱8111F网卡,用hanewin加载顶楼附件的64位ipxe.efi或snponly.efi的时候,卡在ipxe initialising devices无响应,是什么原因?

是ipxe.efi不支持8111F,还是其他的什么原因呢?

另外ipxe.efi的默认菜单路径是ipxe/default.ipxe,我想指定自定义的菜单脚本,菜单的路径应该在哪里指定?

谢谢~
回复

使用道具 举报

58#
发表于 2015-4-10 20:59:22 来自手机 | 只看该作者
好东西,谢谢
回复

使用道具 举报

59#
发表于 2015-6-7 00:09:21 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

60#
发表于 2015-6-7 12:27:49 | 只看该作者
我也出现过,后来发现将它设置为第一启动就不会。原先,是将其它启动设在前面,然后进入启动菜单,再选择网启。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 09:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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