captain_g 发表于 2017-10-18 16:45:22

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

yigeren 发表于 2018-11-24 14:41:07

本帖最后由 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

q8155128 发表于 2017-10-18 17:22:10

这是个好东西啦...

大家快点下载哈...

2010sya 发表于 2017-10-18 21:55:55

好工具,谢谢分享。。。

freecat 发表于 2017-10-19 01:39:02

下来学习一下 谢谢了

JCDN 发表于 2017-10-19 07:15:57

谢谢分享 下载备用

captain_g 发表于 2017-10-19 16:37:10

本帖最后由 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:02

好工具,谢谢分享。。。下来学习一下

xhtaizi 发表于 2017-12-12 16:36:43

這個好用,我試過了,可以用,就是不知道穩定不,托個30臺機子沒問題吧,請老板指教下,我沒試過。

JCDN 发表于 2017-12-12 17:07:06

谢谢 学习

青青草 发表于 2017-12-19 21:03:11

谢谢分享
页: [1] 2 3 4 5 6 7
查看完整版本: iPXE-UEFI网启小工具