无忧启动论坛

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

[分享] 国庆快乐,分享一个自编译的ipxe

  [复制链接]
跳转到指定楼层
#
发表于 2019-10-1 11:49:29 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 chenall 于 2019-10-3 10:13 编辑

现在由于工作关系很少发贴和回复了,但是还是会经常上来看看

最近为了方便使用修改了ipxe的一些代码重新编译了一个(使用github上的最新源码修改编译的)


相对于默认编译额外开启了以下功能

FTP NFS COMBOOT HTTPS

ipxe1.zip 的开启了更多的功能. 像CONSOLE_CMD POWEROFF PING等

增加的功能
对于脚本或goto 增加了参数变量, 可以简化ipxe菜单的写法

比如启动命令 chain boot.ipxe aa bb cc dd

在boot.ipxe脚本里面就可以使用  ${%0} ${%1} 这些变量
其中 %0 就是boot.ipxe %1 第一个参数 %n 第n个参数 最多是 %9

goto 命令也是一样
比如:
goto winpe bootmgr.exe winpe.wim

在winpe标签下就可以使用${%1} bootmgr.exe

注: 使用了比较直接而且暴力的方式 简单的把参数设为变量,所以....你懂的.

附后使用wimboot启动各种PE的例子.
  1. #!ipxe
  2. #bootmgr启动文件判断
  3. iseq "${platform}" "pcbios" && set bootmgr bootmgr.exe || set bootmgr bootx64.efi
  4. iseq "${platform}_${buildarch}" "efi_i386" && set bootmgr bootia32.efi ||

  5. :menu
  6. menu Windows Preinstallation Environment
  7. item --gap -- -------Windows Preinstallation Environment-----------------------------
  8. item ljycslg/pe32.wim  Windows 10 PE x86 with Network (by ljycslg)
  9. iseq ${buildarch} i386 || item ljycslg/pe64.wim  Windows 10 PE x64 with Network (by ljycslg)
  10. item WEPE/WePE_32_V2.0.WIM Windows 10 PE x86 (WePe v2.0 2017-03-21)
  11. iseq ${buildarch} i386 || item WEPE/WePE_64_V2.0.WIM Windows 10 PE x64 (WePe v2.0 2017-03-21)
  12. iseq ${buildarch} i386 || item WEPE/WePE_64_V2.0_mod.WIM  Windows 10 PE x64 (WePe v2.0 mod by 027sun 2019-09-27)
  13. item --gap -- ------------------------------ Advanced ---------------------------------
  14. item shell Drop to iPXE shell
  15. item exit  Exit or Return
  16. choose --timeout 5000 MENU.SELECT
  17. ${MENU.SELECT} || goto wimboot ${MENU.SELECT}
  18. goto menu

  19. :wimboot
  20. imgfree
  21. kernel -a wimboot
  22. #附加文件会存放到 windows/system32 目录下
  23. initrd -n ${next-server}.cmd pxeautorun.txt ${next-server}.cmd ||
  24. initrd -n custom.7z custom/${ip}.7z custom.7z ||
  25. initrd -n custom.cmd custom/${ip}.cmd custom.cmd ||
  26. #pe wimboot启动通用文件
  27. initrd -n boot.sdi pxe/boot.sdi boot.sdi
  28. initrd -n ${bootmgr} pxe/${bootmgr} ${bootmgr}
  29. initrd -n bcd pxe/bcd bcd
  30. #PE WIM文件
  31. initrd -n boot.wim ${%1} boot.wim
  32. boot || prompt Boot failure press any key to continue
  33. goto menu
复制代码

ipxe.zip

1.18 MB, 下载次数: 149, 下载积分: 无忧币 -2

基础功能

ipxe1.zip

1.57 MB, 下载次数: 117, 下载积分: 无忧币 -2

大部份功能

评分

参与人数 4无忧币 +16 收起 理由
tocjc0 + 1 赞一个!
a1379388505 + 5 求教你这个配置文件是用什么文件名或者怎么.
江南一根葱 + 5 666
freesoft00 + 5

查看全部评分

41#
发表于 2020-10-9 00:35:19 | 只看该作者
太强啦,我收获很大
回复

使用道具 举报

40#
发表于 2020-4-22 22:02:29 | 只看该作者
期待更好的作品,卤煮好厉害
回复

使用道具 举报

39#
发表于 2020-2-10 13:02:19 | 只看该作者
用什么 工具编译?想要学习下
回复

使用道具 举报

38#
发表于 2020-2-6 15:54:30 | 只看该作者
我安装了Linux,下载了源码,就是编译不成功,不知哪里出了问题
回复

使用道具 举报

37#
发表于 2020-2-3 12:41:12 | 只看该作者
表哥威武,牛牛牛。。。。。。。。。。。
回复

使用道具 举报

36#
发表于 2020-1-26 20:13:51 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

35#
发表于 2020-1-6 10:52:16 | 只看该作者
终于能够自己编译了。安装了ubuntukylin-19.04,一通升级,又出现LZMA.h找不到的错误,又找原因。
回复

使用道具 举报

34#
发表于 2020-1-5 19:46:05 | 只看该作者
谢谢,最近正在学着这个。
回复

使用道具 举报

33#
发表于 2020-1-5 15:37:59 | 只看该作者

好东西啊,下了。
回复

使用道具 举报

32#
发表于 2020-1-5 15:00:20 | 只看该作者
啟發到靈感!謝謝!
回复

使用道具 举报

31#
发表于 2020-1-3 22:34:35 | 只看该作者
请问一下  编译后的ipxe.efi文件在哪里呢  找了一圈没找到
回复

使用道具 举报

30#
发表于 2020-1-3 11:54:32 | 只看该作者
hhh333 发表于 2020-1-3 11:38
这些好像都添加了,难道要到真linux环境下编译

虚拟一个好了,启livecd就可以编译
回复

使用道具 举报

29#
发表于 2020-1-3 11:38:08 | 只看该作者
江南一根葱 发表于 2020-1-3 11:22
You will need to have at least the following packages installed in order to build iPXE:
  • gcc (v ...

  • 这些好像都添加了,难道要到真linux环境下编译

    点评

    虚拟一个好了,启livecd就可以编译  详情 回复 发表于 2020-1-3 11:54
    回复

    使用道具 举报

    28#
    发表于 2020-1-3 11:22:36 | 只看该作者
    hhh333 发表于 2020-1-3 11:14
    在Cygwin下用 make bin-i386-efi/ipxe32.efi EMBED=efirom32.txt命令
    编译出错了,不知啥情况
    /tmp/ccx2v ...

    You will need to have at least the following packages installed in order to build iPXE:
    • gcc (version 3 or later)
    • binutils (version 2.18 or later)
    • make
    • perl
    • liblzma or xz header files
    • mtools
    • mkisofs (needed only for building .iso images)
    • syslinux (for isolinux, needed only for building .iso images)


    点评

    这些好像都添加了,难道要到真linux环境下编译  详情 回复 发表于 2020-1-3 11:38
    回复

    使用道具 举报

    27#
    发表于 2020-1-3 11:14:53 | 只看该作者
    在Cygwin下用 make bin-i386-efi/ipxe32.efi EMBED=efirom32.txt命令
    编译出错了,不知啥情况
    /tmp/ccx2vTtr.s: Assembler messages:
    /tmp/ccx2vTtr.s:15: 错误:junk at end of line, first unrecognized character is `,'
    /tmp/ccx2vTtr.s:31: 错误:unknown pseudo-op: `.previous'
    /tmp/ccx2vTtr.s:66: 错误:junk at end of line, first unrecognized character is `,'
    /tmp/ccx2vTtr.s:82: 错误:unknown pseudo-op: `.previous'
    /tmp/ccx2vTtr.s:104: 错误:junk at end of line, first unrecognized character is `,'
    /tmp/ccx2vTtr.s:120: 错误:unknown pseudo-op: `.previous'
    /tmp/ccx2vTtr.s:168: 错误:can't resolve `.einfo' {.einfo section} - `LFB108' {.text$null_san_hook section}
    /tmp/ccx2vTtr.s:184: 错误:can't resolve `.einfo' {.einfo section} - `LFB110' {.text$null_san_boot section}
    /tmp/ccx2vTtr.s:192: 错误:can't resolve `.einfo' {.einfo section} - `LFB111' {.text$null_san_describe section}
    /tmp/ccx2vTtr.s:3826: 错误:can't resolve `.einfo' {.einfo section} - `LFB111' {.text$null_san_describe section}
    /tmp/ccx2vTtr.s:3835: 错误:can't resolve `.einfo' {.einfo section} - `LFB110' {.text$null_san_boot section}
    /tmp/ccx2vTtr.s:3876: 错误:can't resolve `.einfo' {.einfo section} - `LFB108' {.text$null_san_hook section}
    /tmp/ccx2vTtr.s:4502: 错误:can't resolve `.einfo' {.einfo section} - `LFB108' {.text$null_san_hook section}
    /tmp/ccx2vTtr.s:4506: 错误:can't resolve `.einfo' {.einfo section} - `LFB110' {.text$null_san_boot section}
    /tmp/ccx2vTtr.s:4508: 错误:can't resolve `.einfo' {.einfo section} - `LFB111' {.text$null_san_describe section}
    make: *** [Makefile.housekeeping:946:bin-i386-efi/null_sanboot.o] 错误 1

    点评

    You will need to have at least the following packages installed in order to build iPXE: [*]gcc (version 3 or later) [*]binutils (version 2.18 or later) [*]make [*]perl [*]liblzma or xz he  详情 回复 发表于 2020-1-3 11:22
    回复

    使用道具 举报

    26#
    发表于 2020-1-3 00:45:45 | 只看该作者
    大佬能否给个网盘链接   信任下载不了
    回复

    使用道具 举报

    25#
    发表于 2019-12-16 23:27:33 | 只看该作者
    好东东啊,下了。
    回复

    使用道具 举报

    24#
    发表于 2019-11-24 21:11:39 | 只看该作者
    cckp 发表于 2019-11-24 16:14
    本来就没问题的。他看的那个贴子,当天就有人在二楼回复了方法的,哪来的"问题有好长时间了" "恢复"之类的 ...

    试了下是可以,又可以愉快地装B了
    回复

    使用道具 举报

    23#
    发表于 2019-11-24 20:30:47 | 只看该作者
    hkkitlee 发表于 2019-11-24 19:07
    編譯有沒有錯誤提示?
    還是dhcp175等待腳本?

    去年还是前年试是不行的,都没什么错误提示,编译是成功的,难道已经修好了。
    n久没试了。。。
    回复

    使用道具 举报

    22#
    发表于 2019-11-24 19:07:39 | 只看该作者
    江南一根葱 发表于 2019-11-23 21:37
    efi版离线编译嵌入脚本无效啊。。。
    在线编译才能嵌入,头疼,撸者让我们自己用docker镜像。

    編譯有沒有錯誤提示?
    還是dhcp175等待腳本?

    你也可試一試tinycore來編譯,我用沒問題

    点评

    去年还是前年试是不行的,都没什么错误提示,编译是成功的,难道已经修好了。 n久没试了。。。  详情 回复 发表于 2019-11-24 20:30
    回复

    使用道具 举报

    21#
    发表于 2019-11-24 14:48:33 来自手机 | 只看该作者
    我在虚拟机中安装Ubuntu,然后搭建ipxe编译环境,从来未发现嵌入脚本出问题
    回复

    使用道具 举报

    20#
    发表于 2019-11-24 14:31:05 | 只看该作者
    cckp 发表于 2019-11-24 11:04
    玩笑开大了吧?真的是“efi版离线编译嵌入脚本无效”的话,那你发现了一个很大的Bug
    据我所知是 ...

    不嵌入的话用chainloader ipxe.efi dhcp &&这种方式么?
    回复

    使用道具 举报

    19#
    发表于 2019-11-24 14:30:11 | 只看该作者
    cckp 发表于 2019-11-24 11:04
    玩笑开大了吧?真的是“efi版离线编译嵌入脚本无效”的话,那你发现了一个很大的Bug
    据我所知是 ...

    难道已经修复了?
    https://forum.ipxe.org/showthread.php?tid=10083
    这问题有好长时间了
    回复

    使用道具 举报

    18#
    发表于 2019-11-23 21:37:22 | 只看该作者
    cckp 发表于 2019-11-23 17:38
    你觉得你说自己不会编译ipxe不会嵌入脚本有人会信吗

    efi版离线编译嵌入脚本无效啊。。。
    在线编译才能嵌入,头疼,撸者让我们自己用docker镜像。

    点评

    編譯有沒有錯誤提示? 還是dhcp175等待腳本? 你也可試一試tinycore來編譯,我用沒問題  详情 回复 发表于 2019-11-24 19:07
    回复

    使用道具 举报

    17#
    发表于 2019-11-23 11:44:18 | 只看该作者
    请教现在本地编译ipxe.efi如何嵌入ipxe脚本,在线编译貌似房租到期倒闭了
    回复

    使用道具 举报

    16#
    发表于 2019-11-16 04:18:48 | 只看该作者
    chenall 发表于 2019-11-1 10:40
    文件名是随意的.
    脚本文件最主要的是开头的#!ipxe的标识符.

    好的 懂了 另外请问启动iscsi中UEFI的安装的win系统命令是怎么写的 我用传统引导的命令中途启动失败
    sanboot iscsi:10.0.0.2:::1:iqn.acer2

    这样启动到一半说检测不到磁盘了
    回复

    使用道具 举报

    15#
     楼主| 发表于 2019-11-1 10:40:23 | 只看该作者
    a1379388505 发表于 2019-11-1 03:17
    配置文件怎么加载或者使用什么文件名

    文件名是随意的.
    脚本文件最主要的是开头的#!ipxe的标识符.

    chain xxxx 就行了
    回复

    使用道具 举报

    14#
    发表于 2019-11-1 03:17:16 | 只看该作者
    配置文件怎么加载或者使用什么文件名

    点评

    文件名是随意的. 脚本文件最主要的是开头的#!ipxe的标识符. chain xxxx 就行了  详情 回复 发表于 2019-11-1 10:40
    回复

    使用道具 举报

    13#
    发表于 2019-10-12 18:29:36 | 只看该作者
    真好~
    回复

    使用道具 举报

    12#
    发表于 2019-10-7 11:16:28 | 只看该作者
    cckp 发表于 2019-10-7 10:58
    p2p支持几年前就有了 是微软的新协议。搜一下“ipxe p2p”可以发现好像是和https://2pintsoftware.com/商 ...

    https://github.com/multun/ipxe-bt
    这个看上去很屌,有没有研究过
    回复

    使用道具 举报

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

    本版积分规则

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

    闽公网安备 35020302032614号

    GMT+8, 2024-11-15 12:05

    Powered by Discuz! X3.3

    © 2001-2017 Comsenz Inc.

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