rampage 发表于 2016-2-8 19:27:05

iPXE开启FTP NFS新版160208+Tiny Pxe TFTP HTTP免配置傻瓜包Sanboot无需预读直接秒启

本帖最后由 rampage 于 2016-2-8 20:11 编辑

祝大家新春愉快!

iPXE开启FTP NFS新版160208+Tiny Pxe TFTP HTTP免配置傻瓜包Sanboot无需预读直接秒启
git e2b11

FTP启用

NFS启用

Debug信息启用 DEBUG=device:3,undi:3,dhcp:3,efi_init:3,efi_snp,realtek:3,rtl818x:3,3c5x9,scsi,iscsi,ath9k,ath5k

//======================================
傻瓜包使用说明
下载傻瓜包解压缩
https://yunpan.cn/cxAzyiMIGKqx8访问密码 167c

如需以FTP方式将文件完全下载到本地内存后,memdisk模拟ISO启动,把你的iso放在 mypes/memdisk-ftp.iso 即可

如需以http方式将文件完全下载到本地内存后,memdisk模拟ISO启动,把你的iso放在 mypes/memdisk-http.iso 即可

如需以sanboot( ISO Over Http Sanboot)方式直接秒启,不预加载文件,使用到什么读取什么文件,把你的文件放在 mypes/sanboot-http.iso即可
(速度快, 只占用需要的本地内存而不是把整个ISO都下载到本地内存中,缺点是论坛上的PE系统,不是每一个的结构都适合这个方式启动)
支持Sanboot启动方式的PE系统,请到以下帖子集中报告,统一收集统计:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=375198

如需以ftp下载文件,wimboot启动wim文件,把你的文件放在 mypes/wimboot-ftp.wim 即可

如需以http下载文件,wimboot启动wim文件,把你的文件放在 mypes/wimboot-http.wim 即可

0PE,放在mypes/0PE.ISO 会以sanboot方式启动
需要注意的是,0PE必须使用老版本,启动后Grub4Dos画面花屏的版本,才支持这个快速启动方式
不花屏的grldr文件,无法使用sanboot,提示Missing Helper,应该是不花屏的grldr使用了什么高级的扩展功能
这里启动0PE,grub4dos菜单下,需要按空格键,才能以sanboot方式启动XP PE
这里启动0PE,grub4dos菜单下,需要按空格键,才能以sanboot方式启动03 PE



双击 TinyPxeSrv.exe 开启服务器
Tiny Pxe Server启动文件选择
默认选 undionly.kpxe(适合UNDI一类的网卡,文件较小)或者ipxe.pxe

当服务器online以后,就可以在客户机处启动了

//======================================
启动流程控制
undionly.kpxe/ipxe.pxe
-> 编译时内嵌脚本
->boot.ipxe一级启动文件
->加载变量配置文件boot.ipxe.cfg
->尝试启动网卡地址对应的启动菜单文件mac-{$macaddress}.ipxe
/如无网卡启动菜单,启动通用menu.ipxe

//======================================

常用启动方式
如需自己修改菜单请参照学习menu.ipxe

以FTP方式将文件完全下载到本地内存后,memdisk模拟ISO启动,把你的iso放在 mypes/memdisk-ftp.iso 即可

:memdisk-ftp
initrd ${ftp-url}/mypes/memdisk-ftp.iso
chain ${ftp-url}/memdisk iso raw || goto failed
goto start


以http方式将文件完全下载到本地内存后,memdisk模拟ISO启动,把你的iso放在 mypes/memdisk-http.iso 即可

:memdisk-http
initrd ${boot-url}/mypes/memdisk-http.iso
chain ${boot-url}/memdisk iso raw || goto failed
goto start


作为一个块设备,不下载,直接秒启,不遮盖本地内存
不需要预加载时间
执行到哪里选择到什么,才会把需要的文件下载到本地内存
不支持把ftp连接作为块设备,只能http
#4) Does not hold the ISO as a readable device once the ISO is loaded unless loaded into the iBFT.
以前的有关sanboot启动的讨论
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=327800
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=337134

把你的文件放在 mypes/sanboot-http.iso即可

:sanboot-http
sanboot --no-describe --keep ${boot-url}/mypes/sanboot-http.iso || goto failed
goto start


ftp下载文件,wimboot启动wim文件,把你的文件放在 mypes/wimboot-ftp.wim 即可

:wimboot-ftp
kernel ${ftp-url}/boot/wimboot
initrd ${ftp-url}/boot/bootmgx   bootmgr
initrd ${ftp-url}/boot/bbb         bcd
initrd ${ftp-url}/boot/boot.sdi    boot.sdi
initrd ${ftp-url}/mypes/wimboot-ftp.wim boot.wim
boot || goto failed
goto start


http下载文件,wimboot启动wim文件,把你的文件放在 mypes/wimboot-http.wim 即可

:wimboot-http
kernel ${boot-url}/boot/wimboot
initrd ${boot-url}/boot/bootmgx   bootmgr
initrd ${boot-url}/boot/bbb         bcd
initrd ${boot-url}/boot/boot.sdi    boot.sdi
initrd ${boot-url}/mypes/wimboot-http.wim boot.wim
boot || goto failed
goto start


0PE,将0PE.ISO放在 mypes/0PE.ISO

:0pe-sanboot
sanboot --no-describe --keep ${boot-url}/mypes/0PE.ISO || goto failed
goto start


Linux类型启动,以及直接http/ftp启动网站上的系统,请看menu.ipxe

//================================
更多细节,延伸阅读

启动文件内嵌脚本:

#!ipxe
:retry
echo trying dhcp...
dhcp || goto retry
chain boot.ipxe || exit


脚本执行后尝试加载服务器上的boot.ipxe, 读取boot.ipxe.cfg内的变量设置
如果服务器上有客户机网卡地址相匹配的mac-{$网卡地址}.ipxe,则启动之,如果没有,则启动通用 menu.ipxe

boot.ipxe文件内容

#!ipxe
#this was boot.ipxe loaded by embendded ipxe.pxe
echo next-server is ${next-server} (^ ^;)

prompt --key 0x02 --timeout 6500 Press Ctrl-B for iPXE shell or wait for chain loading next node ... && shell ||

# Global variables used by all other iPXE scripts
echo reading config from boot.ipxe.cfg
chain --autofree boot.ipxe.cfg ||

# Boot <boot-url>/<boot-dir>/hostname-<hostname>.ipxe
# if hostname DHCP variable is set and script is present

#isset ${hostname} && chain --replace --autofree ${boot-dir}hostname-${hostname}.ipxe ||

# Boot <boot-url>/<boot-dir>/uuid-<UUID>.ipxe
# if SMBIOS UUID variable is set and script is present

#isset ${uuid} && chain --replace --autofree ${boot-dir}uuid-${uuid}.ipxe ||

# Boot <boot-url>/<boot-dir>/mac-010203040506.ipxe if script is present
echo trying to chain loading ${boot-url}/${boot-dir}mac-${mac:hexraw}.ipxe
chain --replace --autofree ${boot-url}/${boot-dir}mac-${mac:hexraw}.ipxe ||

# Boot <boot-url>/<boot-dir>/pci-8086100e.ipxe if one type of
# PCI Intel adapter is present and script is present

#chain --replace --autofree ${boot-dir}pci-${pci/${busloc}.0.2}${pci/${busloc}.2.2}.ipxe ||

# Boot <boot-url>/<boot-dir>/chip-82541pi.ipxe if one type of
# PCI Intel adapter is present and script is present

#chain --replace --autofree ${boot-dir}chip-${chip}.ipxe ||

# Boot <boot-url>/menu.ipxe script if all other options have been exhausted

echo now chain loading ${boot-url}/menu.ipxe
#chain --replace --autofree ${menu-url} ||
chain --replace --autofree ${boot-url}/menu.ipxe ||


boot.ipxe.cfg 变量设置文件

#!ipxe
# OPTIONAL: NFS server used for menu files and other things
# Must be specified as IP, as some distros don't do proper name resolution
set nfs-server ${next-server}
set nfs-root /raid/boot/
set cifs-server //${next-server}

# OPTIONAL: Base URL used to resolve most other resources
# Should always end with a slash
#if use http server
set boot-url http://${next-server}
#if use nfs server
#set boot-url nfs://${nfs-server}${nfs-root}

set ftp-url ftp://${next-server}

# OPTIONAL: What URL to use when sanbooting
# Usually ${boot-url} is used, but required until NFS supports block device API
# Should always end with a slash
set sanboot-url http://${next-server}

# OPTIONAL: Relative directory to boot.ipxe used to
# override boot script for specific clients
set boot-dir boot/

# REQUIRED: Absolute URL to the menu script, used by boot.ipxe
# and commonly used at the end of simple override scripts
# in ${boot-dir}.
set menu-url ${boot-url}/menu.ipxe

# OPTIONAL: iSCSI server location and iSCSI IQNs
# Must be specified as an IP, some clients have issues with name resolution
# Initiator IQN is also calculated to use hostname, if present
set iscsi-server ${next-server}

set base-iqn iqn.2011-02.lan.smidsrod
set base-iscsi iscsi:${iscsi-server}::::${base-iqn}
isset ${hostname} && set initiator-iqn ${base-iqn}:${hostname} || set initiator-iqn ${base-iqn}:${mac}

# OPTIONAL: Hashed password used by some distros, e.g. SmartOS
set root-shadow $1$RKvIqeyXXXXXS6F3WAeQCWk.

# OPTIONAL: URL to report memtest results to
set memtest-report-url http://${next-server}/memtest-report.cgi

# OPTIONAL: Where to store the OpenELEC configuration and database
# and version number
set openelec-version 3.2.2
set openelec-storage-dir ${nfs-server}:/raid/misc/openelec-storage/

# OPTIONAL: TinyCore customizable information
set tc-version 4.7.6

# OPTIONAL: CoreOS customizable information
set coreos-version 94.0.0
set coreos-sshkey ssh-dss AAAAB3NzaC1kXXXXXz636QEs3kA9jPVI8qcCOkgDAf2BwiUIawbRTWvncJMAp315VhYY= robin@server

# OPTIONAL: Macrium Reflect customizable information
set macrium-version 5.2

# OPTIONAL: Firefly Solaris recovery environment customizable information
set firefly-version 0613

# OPTIONAL: SpinRite customizable information
set spinrite-version 6.0

# OPTIONAL: SystemRescueCD customizable information
set sysrcd-version 3.8.0

# OPTIONAL: HDT customizable information
set hdt-version 0.5.2


接下来启动menu.ipxe
内容见下载文件

rampage 发表于 2016-2-8 19:42:56

本帖最后由 rampage 于 2016-2-8 19:56 编辑

如果你只是需要支持FTP的iPXE文件:
压缩包下载

https://yunpan.cn/cxADCzqq8np6T访问密码 0082

ipxe.ISO
ipxe.krn
ipxe.pxe
undionly.kpxe

使用:

启动文件可选undionly.kpxe或者ipxe.pxe, 需要放在服务器根目录
ipxe.krn实际的ipxe文件,需要放在服务器根目录

这个编译文件,启动后是尝试读取服务器上的boot.ipxe菜单文件


git e2b1140

FTP启用

NFS启用

Debug信息启用 DEBUG=device:3,undi:3,dhcp:3,efi_init:3,efi_snp,realtek:3,rtl818x:3,3c5x9,scsi,iscsi,ath9k,ath5k

qq1064990473 发表于 2016-2-15 11:40:07


为何我启动后是这样的,麻烦了~

hdlan 发表于 2016-2-21 10:50:10

用什么软件编译的 我打开是乱码

sucon 发表于 2016-2-23 16:39:55

也遇到 Operation not supported 错误,不知何因

wln 发表于 2017-2-4 18:44:08

下载链接能再给一个吗?谢谢!

2013aygj1412 发表于 2017-3-5 14:02:58

完全看不懂系列。。。

2010czcry 发表于 2017-3-10 08:57:42

我也很晕,哈哈,感谢楼主分享。

shengbang 发表于 2017-3-25 09:57:16

谢谢分享,正试着做个服务器、

shengbang 发表于 2017-3-25 09:58:37

来下载了,下载文件呢。

bnsgj 发表于 2017-4-9 09:43:12

求下载地址啊?!!

oob 发表于 2017-4-23 15:21:24

亲 下载地址打不开了~~

bnsgj 发表于 2017-5-2 16:29:12

楼主能给一份吗?1557387881@qq.com

xuyishun 发表于 2017-6-2 14:28:02

360 空间已经关闭了,有人提供 一下新的下载吗?楼主还在关注吗?

2130425301 发表于 2017-6-28 14:34:38

谢谢分享

2130425301 发表于 2017-6-28 14:34:40

谢谢分享

xyxb 发表于 2017-8-3 19:55:48

很给力!

qq8899399 发表于 2017-11-15 18:39:22

下载不了了

zxz1155 发表于 2017-11-19 22:40:18

谢谢楼主分享

awnuitfk 发表于 2018-5-12 08:33:29

下载不了呀!!!

312439374 发表于 2018-5-18 00:04:11

你好,链接挂了,,能不能发我一份邮箱谢谢.
312439374@qq.com

papago 发表于 2018-10-18 15:10:22

iPXE开启FTP NFS新版160208+Tiny Pxe TFTP HTTP免配置傻瓜包Sanboot无需预读直接秒启

感谢r大,看起来正式我需要的 pxe 启动 iso的方法

papago 发表于 2018-10-18 15:27:05

0PE,放在mypes/0PE.ISO 会以sanboot方式启动 需要注意的是,0PE必须使用老版本,启动后Grub4Dos画面花屏的版本,才支持这个快速启动方式 不花屏的grldr文件,无法使用sanboot,提示Missing Helper,应该是不花屏的grldr使用了什么高级的扩展功能 这里启动0PE,grub4dos菜单下,需要按空格键,才能以sanboot方式启动XP PE 这里启动0PE,grub4dos菜单下,需要按空格键,才能以sanboot方式启动03 PE

papago 发表于 2018-10-18 15:27:07

0PE,放在mypes/0PE.ISO 会以sanboot方式启动 需要注意的是,0PE必须使用老版本,启动后Grub4Dos画面花屏的版本,才支持这个快速启动方式 不花屏的grldr文件,无法使用sanboot,提示Missing Helper,应该是不花屏的grldr使用了什么高级的扩展功能 这里启动0PE,grub4dos菜单下,需要按空格键,才能以sanboot方式启动XP PE 这里启动0PE,grub4dos菜单下,需要按空格键,才能以sanboot方式启动03 PE

papago 发表于 2018-10-18 15:27:35

0PE,放在mypes/0PE.ISO 会以sanboot方式启动
需要注意的是,0PE必须使用老版本,启动后Grub4Dos画面花屏的版本,才支持这个快速启动方式
不花屏的grldr文件,无法使用sanboot,提示Missing Helper,应该是不花屏的grldr使用了什么高级的扩展功能
这里启动0PE,grub4dos菜单下,需要按空格键,才能以sanboot方式启动XP PE
这里启动0PE,grub4dos菜单下,需要按空格键,才能以sanboot方式启动03 PE

xingwuzhe 发表于 2021-7-18 03:13:57

求 这个程序谁有哇

xingwuzhe 发表于 2021-8-16 05:10:08

求链接求链接求链接求链接求链接求链接求链接

xingwuzhe 发表于 2021-9-11 02:01:54


你好,链接挂了,,能不能发我一份邮箱谢谢.
258851420@qq.com

xingwuzhe 发表于 2022-1-9 16:34:01

你好,链接挂了,,能不能发我一份邮箱谢谢.
258851420@qq.com
求链接求链接求链接求链接求链接求链接求链接

xingwuzhe 发表于 2022-1-25 22:24:37

你好,链接挂了,,能不能发我一份邮箱谢谢.
258851420@qq.com
求链接求链接求链接求链接求链接求链接求链接
页: [1] 2
查看完整版本: iPXE开启FTP NFS新版160208+Tiny Pxe TFTP HTTP免配置傻瓜包Sanboot无需预读直接秒启