无忧启动论坛

标题: iPXE-UEFI网启小工具 [打印本页]

作者: captain_g    时间: 2017-10-18 16:45
标题: iPXE-UEFI网启小工具
本帖最后由 captain_g 于 2018-11-21 14:05 编辑

# BOOT文件夹(请解压到磁盘、分区根目录下):

boot.sdi——取自64位WIN8;
bootmgfw.efi——取自64位WIN8;
ipxe.efi——下载自IPXE官网;
wimboot——下载自IPXE官网;
tinypxesrv.exe——网启服务器1.0.0.21;

wimboot.ipxe——纯文本配置文件(ANSI,可自行修改内容):

#!ipxe
set boot-url http://${dhcp-server}
kernel ${boot-url}/BOOT/wimboot
initrd ${boot-url}/BOOT/bootmgfw.efi bootmgfw.efi
initrd ${boot-url}/EFI/MICROSOFT/BOOT/BCD BCD
initrd ${boot-url}/BOOT/BOOT.SDI BOOT.SDI
initrd ${boot-url}/BOOT/BOOT.WIM BOOT.WIM
boot

BOOT.WIM——支持UEFI启动的64位PE核心文件;

# EFI文件夹(请解压到磁盘、分区根目录下):

取自微软64位WIN8原版光盘(只在BCD中禁用了数字签名验证,其他不动);

# 为使用方便:

启用网启服务端iPXE-UEFI.CMD(需与BOOT、EFI文件夹在同一磁盘、分区);

# 请关闭“安全启动”选项;

# 条件有限,只在64位机器上测试通过UEFI网启!


https://pan.baidu.com/s/19Sn4L1XZ4CRk8jLvdAgL8Q 密码:slwm

iPXE-UEFI网启.7z

1.34 MB, 下载次数: 1811, 下载积分: 无忧币 -2


作者: q8155128    时间: 2017-10-18 17:22
这是个好东西啦...

大家快点下载哈...
作者: 2010sya    时间: 2017-10-18 21:55
好工具,谢谢分享。。。
作者: freecat    时间: 2017-10-19 01:39
下来学习一下 谢谢了
作者: JCDN    时间: 2017-10-19 07:15
谢谢分享 下载备用
作者: captain_g    时间: 2017-10-19 16:37
本帖最后由 captain_g 于 2017-10-21 09:16 编辑

根据官网介绍:

# wimboot自己会自行提取wim文件中的启动管理器,如bootmgr.exe(BIOS)或bootmgfw.efi(UEFI),有些

网友制作的PE中可能精简掉了这些文件,会导致网启失败,所以在配置脚本中予以指定并在外部提供相

应文件,可以避免因找不到文件而导致的失败,如1楼的:

initrd ${boot-url}/BOOT/bootmgfw.efi bootmgfw.efi

又,如系BIOS启动,类似的可以写成initrd ${boot-url}/BOOT/bootmgr bootmgr (从bootmgr中提取bootmgr.exe);

或者 initrd ${boot-url}/BOOT/bootmgr.exe bootmgr.exe

# wimboot在使用BCD文件时自己会在虚拟内存环境中“修补”BCD的内部配置,如果用的是BIOS启动的

BCD,则wimboot在UEFI启动时,会将BCD内部的字串.exe改成.efi,就是说,假如根下目录结构与微软的

一致,可以直接用原版的BCD(禁用数字签名验证除外);

# wimboot执行后在内存中创建虚拟文件系统,该系统使得在下列多个位置调用BCD、BOOT.SDI、BOOT.WIM

成为可能:

\
\Boot
\Boot\Fonts
\Boot\Resources
\Sources
\EFI
\EFI\Boot
\EFI\Microsoft
\EFI\Microsoft\Boot

BCD最好用原名,因为bootmgr.exe只简单搜索\Boot\BCD;

BCD中指定的BOOT.SDI、BOOT.WIM路径必须是上面几种并互相匹配,以boot.wim为例,\boot.wim或

\Boot\boot.wim或\Sources\boot.wim以及上面列举的子目录等都行,但不支持像\Image\boot.wim这样

的路径(因为Image并非认可的子目录);

E文水平有限,难免理解错误,请查阅官网,或参靠比较论坛前辈们的配置文件;

作者: 2010DOS622    时间: 2017-10-29 05:46
好工具,谢谢分享。。。下来学习一下
作者: xhtaizi    时间: 2017-12-12 16:36
這個好用,我試過了,可以用,就是不知道穩定不,托個30臺機子沒問題吧,請老板指教下,我沒試過。
作者: JCDN    时间: 2017-12-12 17:07
谢谢 学习
作者: 青青草    时间: 2017-12-19 21:03
谢谢分享
作者: jinke    时间: 2018-4-19 10:59
下载看看
作者: txh0714    时间: 2018-4-19 21:22
学习了,谢谢分享,希望大师指导一下gho文件放在哪,实现自动网络克隆!
作者: captain_g    时间: 2018-4-25 20:45
本帖最后由 captain_g 于 2018-4-25 20:48 编辑
txh0714 发表于 2018-4-19 21:22
学习了,谢谢分享,希望大师指导一下gho文件放在哪,实现自动网络克隆!


“大师”不敢当!弄这个东西纯粹是为了好玩。

不知道你的网络环境究竟如何,也不知道在网启后准备克隆一台电脑还是若干台电脑一起克。

论坛内网启、网克工具很多,这个主要是针对UEFI网启的,没有想过用它进行网克,简单说几点:

1、假如网启用的PE不带网络功能或网络功能不正常,且GHO文件不大,可以考虑将它封在BOOT.WIM中;自己编写一个批处理脚本,让它在PE启动后自动运行,调用

Ghost64.exe(Ghost32.exe),从而实现自动克隆,但这个批处理脚本只能适用于特定的已知情形,这种实际上属于网启后的“本地”克隆。

2、假如网启用的PE带网络功能而且网络功能正常,即客户端(网启,使用PE系统的)电脑与服务端(运行本工具,使用正常Windows的)电脑可以互联:

1)在服务端上退出本网启小工具。在服务端上运行Symantec GhostCast Server(Ghostsrv.exe),在客户端(需要克隆的)电脑上运行Ghost64.exe(Ghost32.exe),

服务端、客户端经过一番设置即可进行“多播”多机克隆,这种情况GHO文件放在服务端即可,但很难做到“自动”克隆;

2)在服务端上退出本网启小工具。事先已将服务端上GHO文件所在的文件夹设为“共享”文件夹,在客户端可以通过批处理脚本:a.先将前述共享文件夹“映射”为

“网络驱动器”;b.调用Ghost64.exe(Ghost32.exe),从而实现自动克隆,但这个批处理脚本同样也只能适用于特定的已知情形。还有一点,Windows下共享文件的共

享连接数很有限。

3、根据个人经验,要想实现网启后自动进行克隆,很难,有很多先决条件需要满足!换一个说法,如果不是特定已知情形,则很危险!


作者: txh0714    时间: 2018-4-26 10:37
谢谢大师的耐心指导!我受教了。像您这样的大师现在很少了,因为您没有这样的义务。再次谢谢了!
作者: hpf1225    时间: 2018-5-11 20:33
正在找winboot文件,用grub引导win7.wim文件,好东西下载看看,应该能用!
作者: aoshiwushuang    时间: 2018-6-16 01:15
感谢分享~
作者: liuzhaoyzz    时间: 2018-7-9 15:33
谢谢分享!
作者: 2010thingsfly    时间: 2018-8-7 15:43
好工具,谢谢分享。。。
作者: peihong998    时间: 2018-8-21 15:36
下载试试,谢谢。
作者: westo    时间: 2018-10-29 12:06
下载学学,多谢分享.
作者: hanzsim    时间: 2018-10-29 17:02
captain_g 发表于 2018-4-25 20:45
“大师”不敢当!弄这个东西纯粹是为了好玩。

不知道你的网络环境究竟如何,也不知道在网启后准备克 ...

可以做到半自动。PE打好网卡驱动,去掉图形界面,pecmd.ini加一句:
exec =ghost.exe -clone,src=@MCDeploy,dst=1 -rb -sure
服务器启动ghostsrv,会话名称为Deploy,选择镜像,输入数量,接受客户机,连接够数了自动开始。
配合菜单,客户机重启后可以自动关机。可以回家睡觉了😊
作者: hanzsim    时间: 2018-10-29 17:20
哎,我折腾了好几天,uefi ipxe通过http启动wim总是bcd错误。TFTP方式一点问题也没有,除了慢的令人怀疑人生。下了你这个想学习一下,结果还是一样的错误。
作者: captain_g    时间: 2018-10-29 17:43
hanzsim 发表于 2018-10-29 17:20
哎,我折腾了好几天,uefi ipxe通过http启动wim总是bcd错误。TFTP方式一点问题也没有,除了慢的令人怀疑人 ...

从一楼下载的压缩包要解压到分区、磁盘根目录下,即BOOT文件夹、批处理要在分区、磁盘根目录下。

另外,其他都(如BCD)不要动它,直接将你的PE核心WIM重命名为BOOT.WIM放在BOOT文件夹中就行了。

还有,压缩包里的bootmgfw.efi提取自WIN8,可以要换成WIN10的,最后确保WIM文件中最好也要包含这个文件。
作者: captain_g    时间: 2018-10-29 18:14
hanzsim 发表于 2018-10-29 17:20
哎,我折腾了好几天,uefi ipxe通过http启动wim总是bcd错误。TFTP方式一点问题也没有,除了慢的令人怀疑人 ...

“uefi ipxe通过http启动wim总是bcd错误”

究竟是什么问题?BCD没传过去,还是找不到BOOT.WIM?

客户端有没有成功读取5个文件;

wimboot + ipxe UEFI 网络启动时,不支持WIM文件改成其他名称,只能是BOOT.WIM,如果没改过BCD;

但wimboot + ipxe BIOS 网络启动时,WIM文件是可以改其他名称的,即不改BCD的情况下:

BIOS: initrd ${boot-url}/BOOT/WXYZ.WIM BOOT.WIM,没问题;

UEFI: initrd ${boot-url}/BOOT/WXYZ.WIM BOOT.WIM,不可以!
作者: captain_g    时间: 2018-10-29 18:22
网络UEFI启动不止一个WIM,去这里看看:

下载链接:

https://pan.baidu.com/s/19Sn4L1XZ4CRk8jLvdAgL8Q 密码:slwm
作者: hanzsim    时间: 2018-10-29 19:51
captain_g 发表于 2018-10-29 17:43
从一楼下载的压缩包要解压到分区、磁盘根目录下,即BOOT文件夹、批处理要在分区、磁盘根目录下。

另外 ...

我看了你的批处理了,是调整web路径的,我用IIS,不影响。除了wim用的自己的,别的用的都是你的文件。
文件传输完了。载入efi文件时,出的0xc000000f错误
作者: hanzsim    时间: 2018-10-29 19:55
我做的是U盘BIOS、uefi双启是成功的,网启不用uefi也是成功的。用uefi直接用x64.efi做启动文件也成功了,就是全TFTP太慢了。换用ipxe启动就出这个0xc000000f
作者: captain_g    时间: 2018-10-29 20:04
hanzsim 发表于 2018-10-29 19:55
我做的是U盘BIOS、uefi双启是成功的,网启不用uefi也是成功的。用uefi直接用x64.efi做启动文件也成功了,就 ...

严格按下面的做:
#!ipxe
set boot-url http://${dhcp-server}
kernel ${boot-url}/BOOT/wimboot
initrd ${boot-url}/BOOT/bootmgfw.efi bootmgfw.efi
initrd ${boot-url}/EFI/MICROSOFT/BOOT/BCD BCD
initrd ${boot-url}/BOOT/BOOT.SDI BOOT.SDI
initrd ${boot-url}/BOOT/BOOT.WIM BOOT.WIM
boot
什么都不动,文件都是原版的,除了WIM是自己的,但必须文件名必须是BOOT.WIM。
根据这个配置,wimboot + ipxe.efi网络启动,不使用bootx64.efi
作者: captain_g    时间: 2018-10-29 20:06
还有服务器上proxydhcp勾或不勾分别试一试
作者: hanzsim    时间: 2018-10-29 20:59
感谢给了我思路,我的问题解决了。就是如你说的,文件名的问题。起因是我web服务用的是IIS,性能高了很多。而IIS默认的没有扩展名的文件是不能下载的。这样,wimboot,bcd都没办法走http。担心微软的不好搞,就给他们加了扩展名。结果出了这问题。现在经过测试,不止是wim文件,bcd也是,文件名错了不能正常启动。而这在legacy下完全不会出问题的。所以现在所有的wim都只能有一个名字了。还好放在其它文件夹中还是可以的。
多谢
作者: hanzsim    时间: 2018-10-29 21:22
wim保证文件名正确就行,放在其它路径下。bcd我直接用boot下的,也可以。文件名正确,文件名正确,文件名正确
作者: zclin    时间: 2018-10-30 10:07
请问需要被启动
机器的网卡驱动吗?
作者: captain_g    时间: 2018-10-30 13:32
被启动机器=客户端机器,不需要网卡驱动;
只要主板支持并设置好相应网络启动项目即可;
BIOS与UEFI网络启动不一样,开机时一般按可按F12键选择;
BIOS网启(ipxe):wimboot + undionly.kpxe + 启动配置文件(menubios.ipxe)
如果启不来可改用:wimboot + ipxe.pxe(带驱动) + 启动配置文件(menubios.ipxe)
UEFI网启(ipxe)用:wimboot + ipxe.efi + 启动配置文件(menuuefi.ipxe)
UEFI网启只支持64架构系统;
网启只支持有线连接;
#1下载的只含UEFI网启;
#25下载的BIOS/UEFI网启两者都有;
作者: captain_g    时间: 2018-10-30 13:33
zclin 发表于 2018-10-30 10:07
请问需要被启动
机器的网卡驱动吗?

请看楼上
作者: faly    时间: 2018-11-23 20:14
你好,最近在用ipxe测试网络启动,请教下如果是tiny pxe server的话,怎么配置可以识别客户机的启动方式(bios,uefi等),进而通告不同的nbp?
作者: captain_g    时间: 2018-11-23 20:52
本帖最后由 captain_g 于 2018-11-23 20:58 编辑
faly 发表于 2018-11-23 20:14
你好,最近在用ipxe测试网络启动,请教下如果是tiny pxe server的话,怎么配置可以识别客户机的启动方式(bi ...


在TPS的配置文件CONFIG.INI中实现;

在[arch]部分加条目
00000 对应 Intel x86PC
00001 对应 NEC/PC98
00002 对应 EFI Itanium
00003 对应 DEC Alpha
00004 对应 Arc x86
00005 对应 Intel Lean Client
00006 对应 EFI IA32
00007 对应 EFI BC
00008 对应 EFI Xscale
00009 对应 EFI x86-64

E文好的看这里

http://mistyrebootfiles.altervis ... s/pxesrv_config.htm
作者: captain_g    时间: 2018-11-23 20:53
本帖最后由 captain_g 于 2018-11-23 21:01 编辑

Note that the architecture information is sent by the client system - it's extracted from dhcp option 60 - usually in the form PXEClient:Arch:0000X:UNDI:XXXXXXX. If the [arch] section is missing, or if the client architecture is not specified in the [arch] section, then Tiny PXE Server will use the information set in the filename parameter (or opt67).

主要0000,00006,0007三项
作者: faly    时间: 2018-11-23 21:28
captain_g 发表于 2018-11-23 20:52
在TPS的配置文件CONFIG.INI中实现;

在[arch]部分加条目

ok 多谢,一会测试下。 作者为什么不把这些东西做到ui里面呢,坛子里的大神呢。。。。。。做一个tiny pxe配置文件编辑器多好。。。
作者: captain_g    时间: 2018-11-24 12:13
faly 发表于 2018-11-23 21:28
ok 多谢,一会测试下。 作者为什么不把这些东西做到ui里面呢,坛子里的大神呢。。。。。。做一个tiny pxe ...

UI应该限于界面,不适宜放太多东西;

有些配置只能放在INI文件中,UI上没有。

UI上勾选或取消勾选后,应先OFFLINE,然后再ONLINE,否者不生效。
作者: yigeren    时间: 2018-11-24 14:41
本帖最后由 yigeren 于 2018-11-24 14:43 编辑

提供一个菜单文件自动识别BIOS和EFI启动
#!ipxe
#check platform (pcbios or efi)
echo Platform: ${platform}
set menu-timeout 20000
dhcp
isset ${next-server} || set next-server 192.168.1.2  #自行指定服务器ip
iseq ${platform} pcbios && set start BIOS_MENU || set start EFI_MENU
goto ${start}

:BIOS_MENU
set menu-default win10pe
menu iPXE BIOS Boot Menu
#item win2003                0.Yigeren Win2003PE
item --key 1 win7pe        1.Yigeren Win7PE
item --key 2 win8pe        2.Yigeren Win8PE
item --key 3 win8x64        3.Yigeren Win8x64PE
item --key 4 win10pe        4.Yigeren Win10x64PE
item --key 5 maxdos        5.MAXDOS9.3PLUS
item --key 6 diskgen        6.DISKGEN
item --key 7 hddreg        7.HDDREG
item --key h hddboot        H.HDDBOOT
item --key r reboot        R.ReBoot Computer

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

:hddboot
sanboot --no-describe --drive 0x80

:maxdos
initrd http://${next-server}/img/MAXDOS.IMG
chain http://${next-server}/memdisk || goto failed

:diskgen
initrd http://${next-server}/img/DISKGEN.img
chain http://${next-server}/memdisk || goto failed

:hddreg
initrd http://${next-server}/img/HDDREG.IMG
chain http://${next-server}/memdisk || goto failed

#:win2003
#kernel http://${next-server}/STARTROM.0
#boot || goto failed

:win7pe
kernel http://${next-server}/wimboot
initrd http://${next-server}/boot/bootmgr.exe                bootmgr.exe
initrd http://${next-server}/boot/BCD                                  BCD
initrd http://${next-server}/boot/boot.sdi                        boot.sdi
initrd http://${next-server}/boot/Win7PE.wim                Win7PE.wim
boot || goto failed

:win8pe
kernel http://${next-server}/wimboot
initrd http://${next-server}/boot/bootmg8.exe                bootmgr.exe
initrd http://${next-server}/boot/BC8                                BC8
initrd http://${next-server}/boot/boot.sdi                        boot.sdi
initrd http://${next-server}/boot/Win8PE.wim                Win8PE.wim
boot || goto failed

:win8x64
kernel http://${next-server}/wimboot
initrd http://${next-server}/boot/boot864.exe                bootmgr.exe
initrd http://${next-server}/boot/864                                864
initrd http://${next-server}/boot/boot.sdi                        boot.sdi
initrd http://${next-server}/boot/Win864PE.wim                Win864PE.wim
boot || goto failed

:win10pe
kernel http://${next-server}/wimboot
initrd http://${next-server}/boot/boot164.exe                bootmgr.exe
initrd http://${next-server}/boot/164                                164
initrd http://${next-server}/boot/boot.sdi                        boot.sdi
initrd http://${next-server}/boot/Win10x64.wim                Win10x64.wim
boot || goto failed
goto start


:EFI_MENU
set menu-default win10efi
menu iPXE EFI Boot Menu
item win8efi                1.Yigeren Win8x64PE
item win10efi                2.Yigeren Win10x64PE
item reboot                3.ReBoot Computer

choose --timeout ${menu-timeout} --default ${menu-default} selected
goto ${selected}

:win8efi
kernel http://${next-server}/wimboot
initrd http://${next-server}/boot/bootx64.efi                                        bootx64.efi
initrd http://${next-server}/boot/boot864.exe                                bootmgr.exe
initrd http://${next-server}/efi/microsoft/boot/864                                864
initrd http://${next-server}/efi/microsoft/boot/fonts/chs_boot.ttf        chs_boot.ttf
initrd http://${next-server}/efi/microsoft/boot/fonts/wgl4_boot.ttf        wgl4_boot.ttf
initrd http://${next-server}/boot/boot.sdi                                        boot.sdi
initrd http://${next-server}/boot/Win864PE.wim                                Win864PE.wim
boot || goto failed

:win10efi
kernel http://${next-server}/wimboot
initrd http://${next-server}/efi/boot/bootx64.efi                                bootx64.efi
initrd http://${next-server}/boot/boot164.exe                                bootmgr.exe
initrd http://${next-server}/efi/microsoft/boot/BCD                        BCD
initrd http://${next-server}/efi/microsoft/boot/fonts/chs_boot.ttf        chs_boot.ttf
initrd http://${next-server}/efi/microsoft/boot/fonts/wgl4_boot.ttf        wgl4_boot.ttf
initrd http://${next-server}/boot/boot.sdi                                        boot.sdi
initrd http://${next-server}/boot/Win10x64.wim                                Win10x64.wim
boot || goto failed
goto start  
作者: captain_g    时间: 2018-11-24 17:29
yigeren 发表于 2018-11-24 14:41
提供一个菜单文件自动识别BIOS和EFI启动
#!ipxe
#check platform (pcbios or efi)

多谢分享,收藏下来学习下。
作者: captain_g    时间: 2018-11-24 20:43
yigeren 发表于 2018-11-24 14:41
提供一个菜单文件自动识别BIOS和EFI启动
#!ipxe
#check platform (pcbios or efi)

关于这个菜单,想请教一下,懒得自己去摸索了。

如果用这个菜单,服务端用那个启动文件undionly.kpxe(ipxe.pxe)或ipxe.efi?

正常理解,客户端PXE启动后,要先取得相对应的启动文件,然后才是配置、菜单文件,如果服务端给错了网器启动文件,网启就会失败。

不知理解得对不对。
作者: yigeren    时间: 2018-11-24 21:25
本帖最后由 yigeren 于 2018-11-24 21:40 编辑
captain_g 发表于 2018-11-24 20:43
关于这个菜单,想请教一下,懒得自己去摸索了。

如果用这个菜单,服务端用那个启动文件undionly.kpxe( ...


Tiny PXE的配置文件config.ini里找到[arch]字段,在下面添加
00007=ipxe.efi

提供的菜单文件在虚拟机和实机上都测试通过的,自己在用的,使用很久了
ipxe.pxe是启动BIOS,ipxe.efi是启动UEFI的,不管客户机是用什么模式启动,服务端会自动识别调用相应的启动文件
参考图片

ipxe.png (49.32 KB, 下载次数: 408)

ipxe

ipxe

ipxe.rar

399.02 KB, 下载次数: 67, 下载积分: 无忧币 -2

ipxe.efi


作者: captain_g    时间: 2018-11-25 07:55
yigeren 发表于 2018-11-24 21:25
Tiny PXE的配置文件config.ini里找到[arch]字段,在下面添加
00007=ipxe.efi

感谢赐教,这样太方便了。
作者: faly    时间: 2018-11-25 16:22
captain_g 发表于 2018-11-25 07:55
感谢赐教,这样太方便了。

什么情况,昨天我才在你的指引下研究arch字段,让tiny pxe server自动识别客户机启动方式,再通告相应的NBP,怎么你今天又来请教别人。。。。
作者: faly    时间: 2018-11-25 16:25
yigeren 发表于 2018-11-24 21:25
Tiny PXE的配置文件config.ini里找到[arch]字段,在下面添加
00007=ipxe.efi

你的菜单文件就只有一个ipxemenu.text,无论bios还是uefi,对吧? 我一会准备也这样弄下省得BIOS,UEFI各弄一个菜单
作者: faly    时间: 2018-11-25 17:09
yigeren 发表于 2018-11-24 21:25
Tiny PXE的配置文件config.ini里找到[arch]字段,在下面添加
00007=ipxe.efi

有两个问题请问下:
1我用的ipxe启动文件都是下载的别人的不是自己编译的,在altfilename=menu.all 想共用一个菜单 ,可是好像没有效果ipxe好像忽略altfilename=menu.all,寻找menu.ipxe(bios下)和menu.efi(uefi下),就会出错?

2.ipxe的poweroff命令在bios和uefi下都没法使用,不知道是我下载的别人的版本问题还是怎么回事?
作者: faly    时间: 2018-11-25 17:44
yigeren 发表于 2018-11-24 21:25
Tiny PXE的配置文件config.ini里找到[arch]字段,在下面添加
00007=ipxe.efi

问题1解决了,应该是我下载的版本编译时内置了相应的脚本,换了你发的附件里的,ok了,按altfilename寻找菜单加载。 另外那个在线编译怎么不会用啊,找不到下一步
作者: yigeren    时间: 2018-11-25 20:18
faly 发表于 2018-11-25 17:44
问题1解决了,应该是我下载的版本编译时内置了相应的脚本,换了你发的附件里的,ok了,按altfilename寻找 ...

POWEROFF命令在IPXE菜单是无效的,只有重启:reboot
没去用什么在线编译的,直接在这下载现成的:http://boot.ipxe.org/

作者: captain_g    时间: 2018-11-25 20:42
faly 发表于 2018-11-25 16:22
什么情况,昨天我才在你的指引下研究arch字段,让tiny pxe server自动识别客户机启动方式,再通告相应的N ...

我就是要确认一下,这个菜单还是必须要配合TPS的CONFIG.INI中的[arch]使用的。
作者: captain_g    时间: 2018-11-25 20:44
faly 发表于 2018-11-25 17:44
问题1解决了,应该是我下载的版本编译时内置了相应的脚本,换了你发的附件里的,ok了,按altfilename寻找 ...

如果有内置脚本,altfilename这项空着应该就行。
作者: faly    时间: 2018-11-25 21:32
yigeren 发表于 2018-11-25 20:18
POWEROFF命令在IPXE菜单是无效的,只有重启:reboot
没去用什么在线编译的,直接在这下载现成的:http://bo ...

ipxe菜单支持背景吗,看你发的地址里有一个Ipxe.png
作者: yigeren    时间: 2018-11-26 11:42
faly 发表于 2018-11-25 21:32
ipxe菜单支持背景吗,看你发的地址里有一个Ipxe.png


下载的IPXE.PXE是没有console这个命令的,所以不支持,你可以自己去编译一个有支持console这个命令的版本
用法:console --picture http://${next-server}/ipxe.png
IPXE还可以设置需要用户和密码登录的,但不清楚要怎么指定用户名和密码登录
命令:login
作者: yigeren    时间: 2018-11-28 19:57
到官方论坛找到了可以设置用户名和密码录登的方法了,嘿嘿
在ipxe启动文件最前面添加如下:
login
iseq ${username} yigeren || goto reboot                #登录用户名:yigeren
iseq ${password} wuyou || goto reboot                #登录密码:wuyou


这样登录时需要输入正确的用户名和密码才能进引导菜单界面,用户名或密码输错电脑会重启,也可单独对某一条菜单行加密码
作者: captain_g    时间: 2018-11-29 10:35
yigeren 发表于 2018-11-28 19:57
到官方论坛找到了可以设置用户名和密码录登的方法了,嘿嘿
在ipxe启动文件最前面添加如下:
login

感谢分享!

关于您分享的那个菜单:

判断客户端为EFI平台后,配置直接跳转到是64位启动配置部分;

针对客户端是32位EFI平台,在TPS的INI中您用了00006=efi\boot\bootia32.efi,貌似用了微软的文件,这个是不需要菜单的,但是速度明显慢很多;

还有如果是原版的bootia32.efi,相应的fonts和resources文件夹中的文件不能完全删除;

去iPXE官网看了一下 platform 的介绍,因E文一般理解可能有误,似乎只能区分客户端是EFI还是PCBIOS,好像不能区分客户端是32还是64位EFI?

不知您是如何解决32位EFI启动配置问题的?尽管实际中遇到的可能性很小。

学习了H3大的全套网启文件,他搞了BIOS的、EFI的配置文件各一个,在EFI配置中,似乎是有64位或32位选择的(可能理解得不对):

cpuid --ext 29 && set x64 Y || set x32 Y,用了 isset ${x32} && set ......

也去iPXE官网看了一下 cpuid 的介绍,个人理解,就目前个人电脑在用到CPU,应该都是29吧?

最近在论坛内无意中发现并下载到了“不知”编译的32位的ipxe.efi,想弄个配置,但不知道如何“合三为一”供自动调用,烦请支招!

为了根据客户端类型自动配置,目前只好在TPS的INI文件中,对altfilename这项用了以@arch为前缀的文件名。
作者: yigeren    时间: 2018-11-29 11:02
本帖最后由 yigeren 于 2018-11-29 11:03 编辑

32EFI我是直接用了微软的bootia32efi文件,加载后直接读取BOOT\BCD菜单引导的,用的TFTP协议肯定会慢了点,不过测试了下速度还能接受
也因为32EFI的平台我几乎碰不到,所以没再去弄配置菜单了,所以直接用了微软的省事,BCD直接加载引导,呵呵
有空我研究下三合一菜单的^_^
还有你检查下BCD文件,看下添加这2个参数没,速度会快一点
RamdiskTftpBlockSize
参数值为:20480
RamdiskTftpWindowSize
参数值为10
作者: captain_g    时间: 2018-11-29 11:08
yigeren 发表于 2018-11-29 11:02
32EFI我是直接用了微软的bootia32efi文件,加载后直接读取BOOT\BCD菜单引导的,用的TFTP协议肯定会慢了点, ...

多谢指点!
作者: yigeren    时间: 2018-11-29 15:55
captain_g 发表于 2018-11-29 11:08
多谢指点!

嘿,BIOS,X64EFI,X86EFI三合一菜单搞定,在虚拟机测试通过,能自动引导相应的菜单界面
在我上面提供的菜单中找到:
iseq ${platform} pcbios && set start BIOS_MENU || set start EFI_MENU
goto ${start}

替换为:
iseq ${platform} pcbios && set start BIOS_MENU || set start EFI        #(pcbios && efi)
goto ${start}
:EFI
iseq ${buildarch} x86_64 && set start EFI_MENU || set start x86EFI_MENU                #(x64EFI && x86EFI)
goto ${start}


去试试看看吧^_^
作者: yigeren    时间: 2018-11-29 15:55
本帖最后由 yigeren 于 2018-11-29 15:59 编辑
captain_g 发表于 2018-11-29 11:08
多谢指点!


嘿,BIOS,X64EFI,X86EFI三合一菜单搞定,在虚拟机测试通过,能自动引导相应的菜单界面
在我上面提供的菜单中找到:
iseq ${platform} pcbios && set start BIOS_MENU || set start EFI_MENU
goto ${start}

替换为:
iseq ${platform} pcbios && set start BIOS_MENU || set start EFI        #(pcbios && efi)
goto ${start}
:EFI
iseq ${buildarch} x86_64 && set start EFI_MENU || set start x86EFI_MENU                #(x64EFI && x86EFI)
goto ${start}


去试试看看吧^_^
对了,你自己要添加一个:x86EFI_MENU菜单的,config配置文件[arch]添加00006=ipxe32.efi

作者: captain_g    时间: 2018-11-29 16:30
yigeren 发表于 2018-11-29 15:55
嘿,BIOS,X64EFI,X86EFI三合一菜单搞定,在虚拟机测试通过,能自动引导相应的菜单界面
在我上面提供的菜 ...

非常感谢热心相助!

这个设置参数在官网也学习过,由于是业余的没专业知识,理解不透。

官网只是简单地说:i386 指 32-bit x86 CPU;x86_64 指 64-bit x86 CPU;

看来理解上有偏差,难道32EFI平台的电脑,都是用的32-bit的CPU啊?

这个还真不清楚呢,如果是这样,问题确实没以前想的复杂了。
作者: captain_g    时间: 2018-11-29 16:36
yigeren 发表于 2018-11-29 11:02
32EFI我是直接用了微软的bootia32efi文件,加载后直接读取BOOT\BCD菜单引导的,用的TFTP协议肯定会慢了点, ...

以前是在服务端WIFI连接的情况下测试的,感觉很慢。

按你的指点动了下BCD,刚刚在服务端网线连接的情况下测试了一下,

所有文件包括150M的WIM文件读取完毕用时不到20秒,这个网启速度应该不错了。

再次感谢!
作者: yigeren    时间: 2018-11-29 16:50
captain_g 发表于 2018-11-29 16:30
非常感谢热心相助!

这个设置参数在官网也学习过,由于是业余的没专业知识,理解不透。


在32EFI平台的电脑一样是用64位的CPU,只是我们需要改变下逻辑变通下来达到我们的目的
在32EFI的平台下,TPS是不是会自动调用config配置里00006=ipxe32.efi的文件,对吧
然后咱们先引导IPXE32.efi到SHELL里面,也就是命令行状态,通过输入此命令:echo ${buildarch}
32EFI平台下显示为i386,而在64EFI平台下显示为X86_64
这样就能通过判断系统是处于什么状态下,然后自己去引导相应的菜单界面
作者: captain_g    时间: 2018-11-29 16:54
本帖最后由 captain_g 于 2018-11-29 16:57 编辑
yigeren 发表于 2018-11-29 16:50
在32EFI平台的电脑一样是用64位的CPU,只是我们需要改变下逻辑变通下来达到我们的目的
在32EFI的平台下 ...


这下理解了,多谢。

当时没注意这句话:Specifies the CPU architecture for which this version of iPXE was compiled. Possible values are:
作者: yigeren    时间: 2018-11-29 17:00
captain_g 发表于 2018-11-29 16:54
这下理解了,多谢。

当时没注意这句话:Specifies the CPU architecture for which this version of ...

其实那些英文我也看不懂,呵呵
作者: 2012huguoliang    时间: 2018-11-30 14:31
老大 我想NAS里弄PXE启动 麻烦出个教程呗
作者: captain_g    时间: 2018-11-30 14:48
2012huguoliang 发表于 2018-11-30 14:31
老大 我想NAS里弄PXE启动 麻烦出个教程呗

问错人喽,我只是入门爱好者啊!

网启区大神都大隐了!
作者: brook    时间: 2019-3-16 14:59
本帖最后由 brook 于 2019-3-16 15:08 编辑

大神还在吗?
        想请教一下关于grub4dos启动WIM的PE的问题。我在一个完整的PE里,想加入比如微PE的64位的WIM,我把WEPE64.WIM复制到sources的文件夹下,把WEPE.SDI  wimboot(http://ipxe.org/wimboot下载的)和B64三个文件复制到boot文件夹下,BOOTMGR直接放在根目录下,B64用BOOTICE修改过了,然后MENU.LS的内容修改如下:
Ttitle        启动WEPE64
kernel /boot/wimboot
initrd @bcd=/boot/B64 @boot.sdi=/boot/WEPE.SDI @bootmgr=/BOOTMGR @boot.wim=/sources/WEPE64.WIM
boot
但是这样无法启动,不知什么原因,如果把WEPE64.WIM直接改名为原本的PE里的WIM的同名取代,则直接用下面菜单就启动了:
title 启动Windows PE 系统
chainloader/BOOTMGR

B64:

作者: brook    时间: 2019-3-16 15:09
是菜单命令不对吗?还是哪里问题,求教了,谢谢
作者: 2010DOS622    时间: 2019-3-30 20:29
谢谢分享
作者: dawnstar    时间: 2019-4-23 13:22

请教一下朋友们为什么不能启动成功,出现如图错误提示,是什么原因呢?
作者: btwhy    时间: 2019-7-17 12:46
多谢分享,收藏下来学习下
作者: shamoyu    时间: 2019-8-31 14:46
谢谢楼主指导,很好的教程。
作者: lzanmm    时间: 2019-9-30 15:02
我想修改IPXE菜单的背景,需要添加什么参数?能否给个示例,谢谢
作者: 12240771    时间: 2019-9-30 15:37
测试
作者: liuzhaoyzz    时间: 2019-12-24 13:37
谢谢楼主分享!
作者: kanas.li    时间: 2019-12-25 12:23
感谢分享。谢谢。
作者: 时光凉了年少梦    时间: 2020-1-1 10:13
回复  收藏备用
作者: duanyan    时间: 2020-1-5 12:07
感谢楼主分享
作者: okookooko    时间: 2020-2-6 16:03
多谢了
作者: 2012masterasia    时间: 2020-5-11 09:33
win10 支持安装到sanboot,并启动吗?
作者: cybing    时间: 2020-5-13 00:01
不错。。。。感谢一下
作者: diabloc3    时间: 2020-5-13 19:48
学习下,谢谢分享
作者: kleist    时间: 2020-11-4 15:29
点点滴滴滴滴答对对对等等等等
作者: luo591    时间: 2020-11-7 22:32
感谢分享
作者: dawnstar    时间: 2020-11-14 22:32
赞一个。。。。谢谢分享。
作者: dawnstar    时间: 2020-11-15 17:54
请教一下呢分享的网络硬盘里面,哪一个才是mbr和uefi自动识别?试验过uefi没有启动成功
作者: captain_g    时间: 2020-11-15 19:21
本帖最后由 captain_g 于 2020-11-15 19:23 编辑
dawnstar 发表于 2020-11-15 17:54
请教一下呢分享的网络硬盘里面,哪一个才是mbr和uefi自动识别?试验过uefi没有启动成功

文件名中有UEFI的支持UEFI网络启动;

传统网启、UEFI网启不成功的原因有很多;

MBR/UEFI网启,客户端机器BIOS中的设置是不一样的;
还有一点,PE本身要支持UEFI启动,位数也要对应;

作者: dawnstar    时间: 2020-11-16 13:39
LAN-TPS-UEFI  我运行的是这个,mbr格式可以启动,而同一台电脑的UEFI不能启动。PE支持的。PXE中可以进行选择PE的界面的,但选择以后就是卡界面。
作者: captain_g    时间: 2020-11-16 13:51
dawnstar 发表于 2020-11-16 13:39
LAN-TPS-UEFI  我运行的是这个,mbr格式可以启动,而同一台电脑的UEFI不能启动。PE支持的。PXE中可以进行选 ...

LAN-TPS-UEFI-MS.7z

这个里面除了TPS,其他都是微软的,试一下看看;

看看TPS说什么
作者: cchessbd    时间: 2020-11-16 19:44
这个模板不太好用啊,而且bios、uefi不能通用
作者: cchessbd    时间: 2020-11-16 19:46
captain_g 发表于 2018-10-29 18:14
“uefi ipxe通过http启动wim总是bcd错误”

究竟是什么问题?BCD没传过去,还是找不到BOOT.WIM?

换用bootx64.efi,我实际测了,可以改wim文件名。就是不能中文,
作者: captain_g    时间: 2020-11-17 08:26
cchessbd 发表于 2020-11-16 19:46
换用bootx64.efi,我实际测了,可以改wim文件名。就是不能中文,

中文肯定是用不了的;

至于UEFI网启WIM文件改名,测试当时发现是不能该的,变通的方法就是同步改BCD配置;

不能改是指直接配合使用复制粘贴过来微软ISO中的BCD;

也许是更新过的WIMBOOT支持改WIM文件名了(BIOS/MBR一直是支持改名的);
作者: cchessbd    时间: 2020-11-19 10:43
captain_g 发表于 2020-11-17 08:26
中文肯定是用不了的;

至于UEFI网启WIM文件改名,测试当时发现是不能该的,变通的方法就是同步改BCD配 ...

不需要改bcd。直接改了菜单对应的.wim就行了,wimboot可以启动
作者: bfgxp    时间: 2020-11-26 18:08
cchessbd 发表于 2020-11-19 10:43
不需要改bcd。直接改了菜单对应的.wim就行了,wimboot可以启动

实模式(bios模式)可以
efi不行
作者: 江南一根葱    时间: 2020-11-27 13:24
bfgxp 发表于 2020-11-26 18:08
实模式(bios模式)可以
efi不行

改名一直可以啊,我不是有发示例
作者: bfgxp    时间: 2020-11-27 15:06
江南一根葱 发表于 2020-11-27 13:24
改名一直可以啊,我不是有发示例

看了,原来可以用 initrd -n boot.wim
-n这个参数改名啊。
另外BCD是可以通用的。 BCD.zip (3.33 KB, 下载次数: 9)





作者: zzwqw    时间: 2020-12-3 17:42
感谢楼主分享,正好用上了,这帖子三年不沉,说明有用,再次感谢!
作者: AISICAO    时间: 2020-12-6 01:06
感谢大佬分享
作者: wuyouman01    时间: 2021-1-14 22:07
无线网启可以吗?
作者: zhen2714068    时间: 2021-2-1 12:59
又学到了一样好方法




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3