|
本帖最后由 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
内容见下载文件 |
评分
-
查看全部评分
|