无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 14382|回复: 38
打印 上一主题 下一主题

[发布] 8.4更新。IPXE启动文件,启动快速!!含源码,

  [复制链接]
跳转到指定楼层
1#
发表于 2019-8-1 12:34:19 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 huaqingyuan 于 2019-8-7 17:31 编辑

8.7更新
1.添加next-server完全不能获取时候使用DHCP服务器
2,细微调整,启动不成功添加菜单

undionlyOK.7z (66.9 KB, 下载次数: 254)

8.4再次更新

1.还是启用next-server变量,这样大多数情况下不用再去编辑启动菜单文件
2.不成功情况下添加快捷键n,手动设置服务器IP
3.添加了等待按键时候的倒计时
undionly1.7z (66.25 KB, 下载次数: 42)

8.1
测试了各种DHCP环境,均能正确启动IPXE.TXT
注意IPXE.TXT中,使用${bs}代替${next-server}
启动顺序是1.proxydhcp服务器,2.第一次获取启动文件服务器,3,获取到的next-server

undionly.7z (66.09 KB, 下载次数: 45)

欢迎测试

评分

参与人数 2无忧币 +10 收起 理由
freesoft00 + 5
2012FuckTheCPC + 5 赞一个!

查看全部评分

2#
 楼主| 发表于 2019-8-1 12:38:38 | 显示全部楼层
这是特意不放启动文件的图!

回复

使用道具 举报

3#
 楼主| 发表于 2019-8-1 12:42:12 | 显示全部楼层
next-server修改为BS代替


回复

使用道具 举报

4#
 楼主| 发表于 2019-8-2 21:55:51 | 显示全部楼层


使用PXE服务。也就是DHCP使用路由器的,仍然成功获取到IPXE.TXT



回复

使用道具 举报

5#
 楼主| 发表于 2019-8-4 17:35:00 | 显示全部楼层

8.4更新

1.还是启用next-server变量,这样大多数情况下不用再去编辑启动菜单文件
2.不成功情况下天降快捷键n,手动设置服务器IP

undionly1.7z (66.16 KB, 下载次数: 12)
回复

使用道具 举报

6#
 楼主| 发表于 2019-8-4 19:49:48 | 显示全部楼层
8.4再次更新

1.还是启用next-server变量,这样大多数情况下不用再去编辑启动菜单文件
2.不成功情况下添加快捷键n,手动设置服务器IP
3.添加了等待按键时候的倒计时
回复

使用道具 举报

7#
 楼主| 发表于 2019-8-7 11:33:51 | 显示全部楼层
本帖最后由 huaqingyuan 于 2019-8-7 11:42 编辑

我比较追求快速启动成功,所以我一般不能成功才出菜单,或者等待按键:
我的脚本你可以参考一下!




#!ipxe
isset ${next-server} && set bs ${next-server} || set bs ${dhcp-server} || set error next-server
isset ${dhcp-server} && set ds ${dhcp-server} || set error ${error}+dhcp-server
isset ${hostname} && set hn ${hostname} || set error ${error}+hostname
isset ${root-path} && set rt ${root-path} || set error ${error}+rt
set priority 1
:retry
dhcp || goto retry
set keep-san 1
isset ${next-server} && set ns ${next-server}
isset ${hn} && set hostname ${hn} || set error ${error}+hn
isset ${rt} && set root-path ${rt} || set error ${error}+rt
echo next-server=${next-server} ip=${ip} mac=${mac}
isset ${proxydhcp/next-server} && set next-server ${proxydhcp/next-server} && echo boot from ${next-server}/ipxe.txt && chain tftp://${next-server}/ipxe.txt ||
isset ${bs} && set next-server ${bs} && echo boot from ${next-server}/ipxe.txt && chain tftp://${next-server}/ipxe.txt ||
isset ${ns} && set next-server ${ns} && echo boot from ${next-server}/ipxe.txt && chain tftp://${next-server}/ipxe.txt || set idx:int32 5
:lp1
iseq ${idx} 0 && goto lp1_done ||
prompt --key n --timeout 1000 Press 'n' input next-server...${idx} && echo -n Please enter next-server: && read next-server && chain tftp://
${next-server}/ipxe.txt && set idx:int32 4 ||
inc idx -1 && goto lp1
:lp1_done
set idx:int32 5
:lp2
iseq ${idx} 0 && goto lp2_done ||
prompt --key 0x02 --timeout 1000 Press Ctrl-B for the iPXE command line...${idx} && shell && set idx:int32 5 ||
inc idx -1 && goto lp2
:lp2_done
reboot
有些文字修饰符可能不能显示,但不影响阅读!

回复

使用道具 举报

8#
 楼主| 发表于 2019-8-7 11:35:33 | 显示全部楼层
DHCP之前的信息往往是对的,所以在之前我保留了很多变量。
回复

使用道具 举报

9#
 楼主| 发表于 2019-8-7 17:31:46 | 显示全部楼层

8.7更新
1.添加next-server完全不能获取时候使用DHCP服务器
2,细微调整,启动不成功添加菜单
undionlyOK.7z (66.9 KB, 下载次数: 11)

用我这个测试一下!

回复

使用道具 举报

10#
 楼主| 发表于 2019-8-7 23:47:43 来自手机 | 显示全部楼层
测试环境建议打开路由dHCP或者多开几个DHCP
回复

使用道具 举报

11#
 楼主| 发表于 2019-8-9 09:34:31 | 显示全部楼层
本帖最后由 huaqingyuan 于 2019-8-9 10:07 编辑
江南一根葱 发表于 2019-8-9 09:01
isset ${next-server} || set next-server ${dhcp-server}
isset ${proxydhcp/next-server} || set proxyd ...


isset ${proxydhcp/next-server} || set proxydhcp/next-server ${proxydhcp/dhcp-server},这行一看就有问题吧!
感觉{proxydhcp/next-server}大多数情况是对的,我觉得你可以这样写:


isset  ${proxydhcp/next-server} && set next-server  ${proxydhcp/next-server} || isset  ${next-server} || set next-server ${dhcp-server}


顺序:proxydhcp/next-server , next-server , dhcp-server,谁存在用谁!
回复

使用道具 举报

12#
 楼主| 发表于 2019-8-9 10:33:12 | 显示全部楼层
本帖最后由 huaqingyuan 于 2019-8-9 10:35 编辑
hkkitlee 发表于 2019-8-9 10:13
PXE NBPs
PXE NBPs such as Windows Deployment Service's wdsnbp.com or pxelinux.0 will attempt to ret ...


是的,所以还是觉得引入BS 变量,作为启动服务器比较好,服务器的其他变量都还在。但是如果要使用别人的菜单文件,就要做小修改了!

isset  ${proxydhcp/next-server} && set bs ${proxydhcp/next-server} || isset  ${bs}  &&  set  bs ${next-server}  || set bs ${dhcp-server}

点评

我的簡單思路,未測: chain tftp://${proxydhcp/next-server}/ipxe.txt || chain tftp://${next-server}/ipxe.txt || shell 應該無需加入dhcp server,因為此腳本由pxe啟動的話,iPXE是由next server傳給客  详情 回复 发表于 2019-8-9 12:18
回复

使用道具 举报

13#
 楼主| 发表于 2019-8-9 12:36:42 | 显示全部楼层
hkkitlee 发表于 2019-8-9 12:18
我的簡單思路,未測:

chain tftp://${proxydhcp/next-server}/ipxe.txt ||

经过判断明显有优势,你这样${proxydhcp/next-server}不存在时候,客户机器会去尝试tftp:///ipxe.txt,耗时很久!

点评

收到,謝測 真的未有機器試  详情 回复 发表于 2019-8-9 12:41
回复

使用道具 举报

14#
 楼主| 发表于 2019-8-9 12:46:04 | 显示全部楼层
江南一根葱 发表于 2019-8-9 11:03
我在dnsmasq下默认配置不存在next-server,自然也不存在proxydhcp/next-server,所以不存在就从dhcp-server ...

用原版的IPXE启动文件!在DHCP之前到命令行,然后查看next-server,试试有没有值!

点评

pxe启动,没有的,不过我给dhcp-option后是有了,但还是加了dhcp-server以防万一 这么一想,tinypxe的next-server原来可以设定成别的值,也就是别的启动器由pxe启动后也许没有这个值  详情 回复 发表于 2019-8-9 13:21
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-13 01:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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