mirror of
https://github.com/netbootxyz/netboot.xyz.git
synced 2026-01-23 02:34:26 +00:00
Initial commit
This commit is contained in:
commit
da8e7fe0b3
20 changed files with 874 additions and 0 deletions
21
README.md
Normal file
21
README.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
## netboot.xyz
|
||||
|
||||
### What is netboot.xyz?
|
||||
|
||||
netboot.xyz is a collection of iPXE scripts that allow you to rapidly network boot Operating Systems,
|
||||
Utilities and other tools very easily. It allows you the flexibility of booting installations without
|
||||
having to go track down and download installation media. It's especially useful for remote access
|
||||
environments when you don't want to utilize remote attach CD in a Dell DRAC, HP iLO or some other type
|
||||
of remote tool.
|
||||
|
||||
Check out the new netboot.xyz documentation hosted at ReadTheDocs:
|
||||
* [http://netbootxyz.readthedocs.org/en/latest/](http://netbootxyz.readthedocs.org/en/latest/)
|
||||
|
||||
Grab these bootloaders and drop them in Fusion/VirtualBox/DRAC/iLO to get started:
|
||||
|
||||
* [ISO](http://netboot.xyz/ipxe/netboot.xyz-main.iso)
|
||||
* [Floppy/USB](http://netboot.xyz/ipxe/netboot.xyz-main.dsk)
|
||||
|
||||
#### Feedback
|
||||
|
||||
Feel free to open up an issue on github or contact me at antony@mes.ser.li
|
||||
12
boot/archlinux.ipxe
Normal file
12
boot/archlinux.ipxe
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#!ipxe
|
||||
|
||||
# ArchLinux Operating System
|
||||
# http://www.archlinux.org
|
||||
|
||||
menu ArchLinux
|
||||
item ipxe ArchLinux Graphical Menu
|
||||
item ipxe_text ArchLinux Text Menu
|
||||
choose version || exit
|
||||
|
||||
chain http://releng.archlinux.org/pxeboot/${version}.pxe
|
||||
exit
|
||||
10
boot/boot.cfg
Normal file
10
boot/boot.cfg
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
#!ipxe
|
||||
|
||||
# set boot domain
|
||||
set boot_domain netboot.xyz
|
||||
|
||||
# set mirror domain
|
||||
set mirror mirror.rackspace.com
|
||||
|
||||
# set location of memdisk
|
||||
set memdisk http://${boot_domain}/memdisk
|
||||
40
boot/bsd.ipxe
Normal file
40
boot/bsd.ipxe
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#!ipxe
|
||||
|
||||
goto ${menu} ||
|
||||
|
||||
:bsd_menu
|
||||
|
||||
menu BSD Operating Systems - Current Selected Architecture [ ${arch} ]
|
||||
iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
|
||||
|
||||
# BSD based systems
|
||||
item --gap BSD Based Operating Systems
|
||||
item openbsd ${space} OpenBSD
|
||||
item freebsd ${space} FreeBSD
|
||||
|
||||
# Options
|
||||
item --gap Options:
|
||||
iseq ${arch} x86_64 && set bits 64 || set bits 32
|
||||
item changebits ${space} Architecture: ${arch} (${bits}bit)
|
||||
choose menu || goto bsd_exit
|
||||
|
||||
echo ${cls}
|
||||
goto ${menu} ||
|
||||
chain ${menu}.ipxe || goto error
|
||||
goto bsd_exit
|
||||
|
||||
:bsd_exit
|
||||
clear menu
|
||||
chain menu.ipxe
|
||||
|
||||
:changebits
|
||||
iseq ${arch} x86_64 && set arch i386 || set arch x86_64
|
||||
goto bsd_menu
|
||||
|
||||
:openbsd
|
||||
chain openbsd.ipxe
|
||||
goto bsd_menu
|
||||
|
||||
:freebsd
|
||||
chain freebsd.ipxe
|
||||
goto bsd_menu
|
||||
73
boot/centos.ipxe
Normal file
73
boot/centos.ipxe
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
#!ipxe
|
||||
|
||||
# CentOS Operating System
|
||||
# http://www.centos.org
|
||||
|
||||
goto ${menu} ||
|
||||
|
||||
:centos
|
||||
clear osversion
|
||||
set os CentOS
|
||||
set ksdevice eth0
|
||||
iseq ${manufacturer} Xen && set netcfg ip=${netX/ip} netmask=${netX/netmask} gateway=${netX/gateway} dns=${dns} ||
|
||||
menu ${os} ${arch}
|
||||
item 7.1.1503 ${os} 7.1
|
||||
item 7.0.1406 ${os} 7.0
|
||||
item 6.7 ${os} 6.7
|
||||
item other Choose other version [o]
|
||||
isset ${osversion} || choose osversion || goto linux_menu
|
||||
iseq ${osversion} other || goto centos_skip_read_osversion
|
||||
echo ${cls}
|
||||
echo -n Enter version: ${} && read osversion
|
||||
:centos_skip_read_osversion
|
||||
set dir ${menu}/${osversion}/os/${arch}
|
||||
set repo http://${mirror}/${dir}
|
||||
goto boottype
|
||||
|
||||
:boottype
|
||||
set ova ${os} ${osversion}
|
||||
menu ${os} ${arch} boot type
|
||||
item graphical ${ova} graphical installer
|
||||
item text ${ova} text based installer
|
||||
item rescue ${ova} rescue
|
||||
item kickstart ${ova} set kickstart url [ ${ksurl} ]
|
||||
item kickstart_device ${ova} set ksdevice [ ${ksdevice} ]
|
||||
isset ${bt} || choose bt || goto centos
|
||||
echo ${cls}
|
||||
iseq ${bt} text && goto text ||
|
||||
iseq ${bt} rescue && goto rescue ||
|
||||
iseq ${bt} kickstart && goto kickstart ||
|
||||
iseq ${bt} kickstart_device && goto kickstart_device ||
|
||||
goto bootos_images
|
||||
|
||||
:text
|
||||
set params text ||
|
||||
goto bootos_images
|
||||
|
||||
:rescue
|
||||
set params rescue ||
|
||||
goto bootos_images
|
||||
|
||||
:kickstart
|
||||
echo -n Specify kickstart URL for ${os} ${osversion}: && read ksurl
|
||||
set params ks=${ksurl} ksdevice=${ksdevice} ||
|
||||
clear bt
|
||||
goto boottype
|
||||
|
||||
:kickstart_device
|
||||
echo -n Specify ksdevice param for ${os} ${osversion}: && read ksdevice
|
||||
set ksdevice ${ksdevice} ||
|
||||
clear bt
|
||||
goto boottype
|
||||
|
||||
:bootos_images
|
||||
imgfree
|
||||
kernel http://${mirror}/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${netcfg}
|
||||
initrd http://${mirror}/${dir}/images/pxeboot/initrd.img
|
||||
boot
|
||||
goto linux_menu
|
||||
|
||||
:linux_menu
|
||||
clear menu
|
||||
chain linux.ipxe
|
||||
exit 0
|
||||
66
boot/debian.ipxe
Normal file
66
boot/debian.ipxe
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
#!ipxe
|
||||
|
||||
# Debian Operating System
|
||||
# http://www.debian.org
|
||||
|
||||
goto ${menu}
|
||||
|
||||
:debian
|
||||
set os debian
|
||||
iseq ${manufacturer} Xen && set netcfg netcfg/get_ipaddress=${netX/ip} netcfg/get_netmask=${netX/netmask} netcfg/get_gateway=${netX/gateway} netcfg/get_nameservers=${dns} netcfg/confirm_static=true netcfg/choose_interface=eth0 netcfg/disable_autoconfig=true ||
|
||||
|
||||
menu Debian ${arch_a}
|
||||
item jessie Debian 8.0 (jessie)
|
||||
item wheezy Debian 7.0 (wheezy)
|
||||
item squeeze Debian 6.0 (squeeze)
|
||||
item stretch Debian stretch (testing)
|
||||
item sid Debian sid (unstable)
|
||||
choose version || goto debian_exit
|
||||
set mirrorcfg mirror/suite=${version} mirror/country=manual mirror/http/hostname=${mirror} mirror/http/directory=/${os}
|
||||
|
||||
:deb_boot_type
|
||||
set dir ${os}/dists/${version}/main/installer-${arch_a}/current/images/netboot/
|
||||
|
||||
menu ${os} boot parameters
|
||||
item text ${os} text based install
|
||||
item graphical ${os} graphical based install
|
||||
item rescue ${os} rescue mode
|
||||
item expert ${os} expert install
|
||||
item preseed ${os} specify preseed url
|
||||
choose --default ${type} type || goto debian
|
||||
|
||||
echo ${cls}
|
||||
goto deb_${type}
|
||||
|
||||
:deb_rescue
|
||||
set install_params rescue/enable=true
|
||||
goto deb_text
|
||||
|
||||
:deb_expert
|
||||
set install_params priority=low
|
||||
goto deb_text
|
||||
|
||||
:deb_preseed
|
||||
echo -n Specify preseed URL for ${os} ${version}: && read preseedurl
|
||||
set install_params auto=true priority=critical preseed/url=${preseedurl}
|
||||
goto deb_text
|
||||
|
||||
:deb_text
|
||||
set dir ${dir}${menu}-installer/${arch_a}
|
||||
goto deb_boot
|
||||
|
||||
:deb_graphical
|
||||
set dir ${dir}gtk/${menu}-installer/${arch_a}
|
||||
set install_params vga=788
|
||||
goto deb_boot
|
||||
|
||||
:deb_boot
|
||||
imgfree
|
||||
echo Boot parameters: ${install_params} -- quiet ${params}
|
||||
kernel http://${mirror}/${dir}/linux ${install_params} ${netcfg} ${mirrorcfg} -- quiet ${params} initrd=initrd.gz
|
||||
initrd http://${mirror}/${dir}/initrd.gz
|
||||
boot
|
||||
|
||||
:debian_exit
|
||||
clear menu
|
||||
chain linux.ipxe
|
||||
35
boot/experimental.ipxe
Normal file
35
boot/experimental.ipxe
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#!ipxe
|
||||
|
||||
menu Experimental Operating Systems
|
||||
item --gap Experimental:
|
||||
item boot2docker ${space} boot2docker v1.0.0
|
||||
item coreos-current ${space} CoreOS Stable Channel
|
||||
|
||||
choose --default ${menu} menu || goto experimental_exit
|
||||
echo ${cls}
|
||||
goto ${menu} ||
|
||||
chain ${menu}.ipxe || goto error
|
||||
goto experimental_exit
|
||||
|
||||
:boot2docker
|
||||
kernel ${memdisk} iso raw
|
||||
initrd http://boot.rackspace.com/distros/boot2docker/v1.0.0/boot2docker.iso
|
||||
boot
|
||||
goto experimental_exit
|
||||
|
||||
:coreos-current
|
||||
set base-url http://stable.release.core-os.net/amd64-usr/current
|
||||
echo This will currently autologin into tty1 on the console.
|
||||
echo From there you can su to root and install CoreOS to disk using:
|
||||
echo coreos-install -d /dev/sda -C stable
|
||||
echo You will probably need to chroot into /dev/sda9 to configure accounts.
|
||||
echo More info @ http://coreos.com/docs/running-coreos/bare-metal/installing-to-disk/
|
||||
kernel ${base-url}/coreos_production_pxe.vmlinuz coreos pxe demo console=tty1 coreos.autologin=tty1
|
||||
initrd ${base-url}/coreos_production_pxe_image.cpio.gz
|
||||
boot
|
||||
goto experimental_exit
|
||||
|
||||
:experimental_exit
|
||||
clear menu
|
||||
chain menu.ipxe
|
||||
exit 0
|
||||
71
boot/fedora.ipxe
Normal file
71
boot/fedora.ipxe
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
#!ipxe
|
||||
|
||||
# Fedora Operating System
|
||||
# http://wwww.fedora.org
|
||||
|
||||
goto ${menu} ||
|
||||
|
||||
:fedora
|
||||
clear osversion
|
||||
clear sku_type
|
||||
clear ova
|
||||
set os Fedora
|
||||
menu Fedora ${arch}
|
||||
iseq ${manufacturer} Xen && set netcfg ip=${netX/ip} netmask=${netX/netmask} gateway=${netX/gateway} dns=${dns} ksdevice=eth0 ||
|
||||
item 22 ${os} 22
|
||||
item 21 ${os} 21
|
||||
item 20 ${os} 20
|
||||
isset ${osversion} || choose osversion || goto linux_menu
|
||||
set ova ${os} ${osversion}
|
||||
iseq ${osversion} 20 && goto legacy_sku ||
|
||||
iseq ${osversion} 19 && goto legacy_sku ||
|
||||
iseq ${osversion} 18 && goto legacy_sku ||
|
||||
goto product_sku
|
||||
|
||||
:product_sku
|
||||
menu ${os} ${arch} sku type
|
||||
item Cloud_Atomic ${ova} Cloud Atomic
|
||||
item Server ${ova} Server
|
||||
item Workstation ${ova} Workstation
|
||||
isset ${sku_type} || choose sku_type || goto fedora
|
||||
set dir fedora/releases/${osversion}/${sku_type}/${arch}/os
|
||||
set ova ${ova} ${sku_type}
|
||||
echo ${cls}
|
||||
goto boottype
|
||||
|
||||
:legacy_sku
|
||||
set dir fedora/releases/${osversion}/${os}/${arch}/os
|
||||
goto boottype
|
||||
|
||||
:boottype
|
||||
set repo http://${mirror}/${dir}
|
||||
menu ${os} ${arch} boot type
|
||||
item normal ${ova}
|
||||
item rescue ${ova} rescue
|
||||
item kickstart ${ova} specify kickstart url
|
||||
isset ${bt} || choose bt || goto fedora
|
||||
echo ${cls}
|
||||
iseq ${bt} rescue && goto rescue ||
|
||||
iseq ${bt} kickstart && goto kickstart ||
|
||||
goto bootos_images
|
||||
|
||||
:rescue
|
||||
set params rescue ||
|
||||
goto bootos_images
|
||||
|
||||
:kickstart
|
||||
echo -n Specify kickstart URL for ${os} ${osversion}: && read ksurl
|
||||
set params ks=${ksurl} ||
|
||||
goto bootos_images
|
||||
|
||||
:bootos_images
|
||||
imgfree
|
||||
kernel http://${mirror}/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${netcfg} initrd=initrd.img
|
||||
initrd http://${mirror}/${dir}/images/pxeboot/initrd.img
|
||||
boot
|
||||
goto linux_menu
|
||||
|
||||
:linux_menu
|
||||
clear menu
|
||||
chain linux.ipxe
|
||||
exit 0
|
||||
41
boot/freebsd.ipxe
Normal file
41
boot/freebsd.ipxe
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
#!ipxe
|
||||
|
||||
# FreeBSD Operating System
|
||||
# http://www.freebsd.org
|
||||
|
||||
:freebsd_menu
|
||||
menu Please pick a FreeBSD version
|
||||
item 10.1 FreeBSD 10.1
|
||||
item 10.0 FreeBSD 10.0
|
||||
choose ver || goto freebsd_exit
|
||||
|
||||
iseq ${ver} 10.1 && set image_ver 10.1-RELEASE ||
|
||||
iseq ${ver} 10.0 && set image_ver 10.0-RELEASE ||
|
||||
|
||||
iseq ${arch} x86_64 && goto freebsd_x64 ||
|
||||
set freebsd_arch i386
|
||||
goto boot_freebsd
|
||||
|
||||
:freebsd_x64
|
||||
set freebsd_arch amd64
|
||||
goto boot_freebsd
|
||||
|
||||
:boot_freebsd
|
||||
set src http://${boot_domain}/distros/freebsd/${ver}/FreeBSD-${image_ver}-${freebsd_arch}-bootonly-mfsbsd.hd
|
||||
imgfree
|
||||
echo This loads an mfsbsd installer (http://mfsbsd.vx.sk/).
|
||||
echo Root password for all images: mfsroot
|
||||
echo You'll need to configure networking manually for the installer disk as
|
||||
echo it uses dhcp by default:
|
||||
echo ifconfig xn0 inet <public ip> netmask 255.255.255.0
|
||||
echo route delete default; route add default <public ip x.x.x.1>
|
||||
echo echo "nameserver x.x.x.x" > /etc/resolv.conf
|
||||
echo Once network is configured, you can launch the usual installer:
|
||||
echo bsdinstall
|
||||
initrd ${src}
|
||||
chain ${memdisk} harddisk raw
|
||||
exit
|
||||
|
||||
:freebsd_exit
|
||||
clear menu
|
||||
chain bsd.ipxe
|
||||
31
boot/gentoo.ipxe
Normal file
31
boot/gentoo.ipxe
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
#!ipxe
|
||||
|
||||
# Gentoo Operating System
|
||||
# http://www.gentoo.org
|
||||
|
||||
# Note: in order to boot Gentoo via iPXE, the method at http://blog.dastrup.com/?p=12 has been utilized to
|
||||
# to allow for the Gentoo minimal disk to boot. I've regenerated the latest boot disks and have put
|
||||
# them on ${boot_domain} so that you can boot into the live cd
|
||||
|
||||
goto ${menu}
|
||||
|
||||
:gentoo
|
||||
set os gentoo
|
||||
menu Gentoo ${arch_a}
|
||||
item 20140116 Gentoo minimal CD version - 20140116
|
||||
choose version || goto gentoo_exit
|
||||
goto ${version}
|
||||
|
||||
:20140116
|
||||
set gentoopath http://${boot_domain}/distros/gentoo/amd64/20140116
|
||||
echo Please note the gentoo ISO has been regenerated to work with iPXE
|
||||
echo using the method here: http://blog.dastrup.com/?p=12
|
||||
echo You will need to set up networking manually.
|
||||
kernel ${gentoopath}/gentoo initrd=gentoo.igz root=/dev/ram0 init=/linuxrc loop=/image.squashfs looptype=squashfs cdroot=1 real_root=/ dokeymap vga=791 nodhcp
|
||||
initrd ${gentoopath}/gentoo.igz
|
||||
boot
|
||||
goto gentoo
|
||||
|
||||
:gentoo_exit
|
||||
clear menu
|
||||
chain linux.ipxe
|
||||
58
boot/linux.ipxe
Normal file
58
boot/linux.ipxe
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
#!ipxe
|
||||
|
||||
goto ${menu} ||
|
||||
|
||||
:linux_menu
|
||||
menu Linux Operating Systems - Current Selected Architecture [ ${arch} ]
|
||||
iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
|
||||
item --gap Operating Systems:
|
||||
item archlinux ${space} ArchLinux
|
||||
item centos ${space} CentOS
|
||||
item debian ${space} Debian
|
||||
item fedora ${space} Fedora
|
||||
item gentoo ${space} Gentoo
|
||||
item opensuse ${space} openSUSE
|
||||
item scientific ${space} Scientific
|
||||
item ubuntu ${space} Ubuntu
|
||||
item tinycore ${space} TinyCoreLinux
|
||||
# Options
|
||||
item --gap Options:
|
||||
iseq ${arch} x86_64 && set bits 64 || set bits 32
|
||||
item changebits ${space} Architecture: ${arch} (${bits}bit)
|
||||
choose menu || goto linux_exit
|
||||
echo ${cls}
|
||||
goto ${menu} ||
|
||||
chain ${menu}.ipxe || goto error
|
||||
goto linux_exit
|
||||
|
||||
:linux_exit
|
||||
clear menu
|
||||
chain menu.ipxe
|
||||
|
||||
:changebits
|
||||
iseq ${arch} x86_64 && set arch i386 || set arch x86_64
|
||||
goto linux_menu
|
||||
|
||||
:fedora
|
||||
chain fedora.ipxe
|
||||
goto linux_menu
|
||||
|
||||
:centos
|
||||
chain centos.ipxe
|
||||
goto linux_menu
|
||||
|
||||
:debian
|
||||
chain debian.ipxe
|
||||
goto linux_menu
|
||||
|
||||
:ubuntu
|
||||
chain ubuntu.ipxe
|
||||
goto linux_menu
|
||||
|
||||
:opensuse
|
||||
chain opensuse.ipxe
|
||||
goto linux_menu
|
||||
|
||||
:scientific
|
||||
chain scientific.ipxe
|
||||
goto linux_menu
|
||||
106
boot/menu.ipxe
Normal file
106
boot/menu.ipxe
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
#!ipxe
|
||||
|
||||
:start
|
||||
|
||||
chain --autofree boot.cfg ||
|
||||
|
||||
iseq ${cls} serial && goto ignore_cls ||
|
||||
set cls:hex 1b:5b:4a # ANSI clear screen sequence - "^[[J"
|
||||
set cls ${cls:string}
|
||||
:ignore_cls
|
||||
|
||||
isset ${arch} && goto skip_arch_detect ||
|
||||
cpuid --ext 29 && set arch x86_64 || set arch i386
|
||||
:skip_arch_detect
|
||||
isset ${menu} && goto ${menu} ||
|
||||
|
||||
isset ${ip} || dhcp || echo DHCP failed
|
||||
|
||||
:main_menu
|
||||
clear menu
|
||||
set space:hex 20:20
|
||||
set space ${space:string}
|
||||
iseq ${arch} i386 && set arch5 i586 || set arch5 ${arch}
|
||||
iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
|
||||
menu ${boot_domain} [Local IP: ${netX/ip}]
|
||||
|
||||
item --gap Default:
|
||||
item local ${space} Boot from local hdd
|
||||
|
||||
item --gap Operating Systems:
|
||||
item linux ${space} Linux Operating Systems
|
||||
item bsd ${space} BSD Operating Systems
|
||||
item experimental ${space} Experimental Operating Systems
|
||||
|
||||
item --gap Tools:
|
||||
item utils ${space} Utilities
|
||||
item shell ${space} iPXE shell
|
||||
item netinfo ${space} Network card info
|
||||
|
||||
isset ${menu} && set timeout 0 || set timeout 300000
|
||||
choose --timeout ${timeout} --default ${menu} menu || goto local
|
||||
echo ${cls}
|
||||
goto ${menu} ||
|
||||
chain ${menu}.ipxe || goto error
|
||||
goto main_menu
|
||||
|
||||
:error
|
||||
echo Error occured, press any key to return to menu ...
|
||||
prompt
|
||||
goto main_menu
|
||||
|
||||
:local
|
||||
echo Booting from local disks ...
|
||||
exit 0
|
||||
|
||||
:reload
|
||||
echo Reloading menu.ipxe ...
|
||||
chain menu.ipxe
|
||||
|
||||
:netinfo
|
||||
menu Network info
|
||||
item --gap MAC:
|
||||
item mac ${space} ${netX/mac}
|
||||
item --gap IP/mask:
|
||||
item ip ${space} ${netX/ip}/${netX/netmask}
|
||||
item --gap Gateway:
|
||||
item gw ${space} ${netX/gateway}
|
||||
item --gap Domain:
|
||||
item domain ${space} ${netX/domain}
|
||||
item --gap DNS:
|
||||
item dns ${space} ${netX/dns}
|
||||
item --gap DHCP server:
|
||||
item dhcpserver ${space} ${netX/dhcp-server}
|
||||
item --gap Next-server:
|
||||
item nextserver ${space} ${next-server}
|
||||
item --gap Filename:
|
||||
item filename ${space} ${netX/filename}
|
||||
choose empty ||
|
||||
goto main_menu
|
||||
|
||||
:shell
|
||||
echo Type "exit" to return to menu.
|
||||
set menu main_menu
|
||||
shell
|
||||
goto main_menu
|
||||
|
||||
:changebits
|
||||
iseq ${arch} x86_64 && set arch i386 || set arch x86_64
|
||||
goto main_menu
|
||||
|
||||
# OS
|
||||
:linux
|
||||
chain linux.ipxe
|
||||
goto main_menu
|
||||
|
||||
:bsd
|
||||
chain bsd.ipxe
|
||||
goto main_menu
|
||||
|
||||
:experimental
|
||||
chain experimental.ipxe
|
||||
goto main_menu
|
||||
|
||||
:utils
|
||||
chain utils.ipxe
|
||||
goto main_menu
|
||||
32
boot/openbsd.ipxe
Normal file
32
boot/openbsd.ipxe
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#!ipxe
|
||||
|
||||
# OpenBSD Operating System
|
||||
# http://www.openbsd.org
|
||||
|
||||
:openbsd_menu
|
||||
menu Please pick an OpenBSD version
|
||||
item 5.7 OpenBSD 5.7
|
||||
item 5.6 OpenBSD 5.6
|
||||
choose ver || goto openbsd_exit
|
||||
|
||||
iseq ${ver} 5.7 && set image_ver 57 ||
|
||||
iseq ${ver} 5.6 && set image_ver 56 ||
|
||||
|
||||
iseq ${arch} x86_64 && goto openbsd_x64 ||
|
||||
set openbsd_arch i386
|
||||
goto boot_openbsd
|
||||
|
||||
:openbsd_x64
|
||||
set openbsd_arch amd64
|
||||
goto boot_openbsd
|
||||
|
||||
:boot_openbsd
|
||||
set src http://ftp.openbsd.org/pub/OpenBSD/${ver}/${openbsd_arch}/install${image_ver}.iso
|
||||
imgfree
|
||||
initrd ${src}
|
||||
chain ${memdisk} iso raw
|
||||
exit
|
||||
|
||||
:openbsd_exit
|
||||
clear menu
|
||||
chain bsd.ipxe
|
||||
30
boot/opensuse.ipxe
Normal file
30
boot/opensuse.ipxe
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
#!ipxe
|
||||
|
||||
# Novell OpenSUSE Operating System
|
||||
# http://opensuse.org
|
||||
|
||||
menu openSUSE ${arch}
|
||||
iseq ${manufacturer} Xen && set netcfg hostip=${netX/ip} netmask=${netX/netmask} gateway=${netX/gateway} nameserver=${dns} ||
|
||||
item 13.2 openSUSE 13.2
|
||||
item 13.1 openSUSE 13.1
|
||||
item 12.3 openSUSE 12.3
|
||||
item 12.2 openSUSE 12.2
|
||||
item 11.4 openSUSE 11.4
|
||||
item factory-tested openSUSE factory-tested
|
||||
item tumbleweed openSUSE tumbleweed
|
||||
choose version || goto opensuse_exit
|
||||
|
||||
set dir opensuse/distribution/${version}/repo/oss
|
||||
iseq ${version} tumbleweed && set mirror download.opensuse.org && set dir ${version}/repo/oss ||
|
||||
iseq ${version} factory-tested && set dir ${version}/repo/oss/ ||
|
||||
|
||||
imgfree
|
||||
kernel http://${mirror}/${dir}/boot/${arch}/loader/linux
|
||||
initrd http://${mirror}/${dir}/boot/${arch}/loader/initrd
|
||||
imgargs linux netsetup=dhcp install=http://${mirror}/${dir} ${params} ${netcfg}
|
||||
boot
|
||||
|
||||
:opensuse_exit
|
||||
clear menu
|
||||
chain linux.ipxe
|
||||
exit 0
|
||||
57
boot/scientific.ipxe
Normal file
57
boot/scientific.ipxe
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
#!ipxe
|
||||
|
||||
# Scientific Linux Operating System
|
||||
# https://www.scientificlinux.org/
|
||||
|
||||
goto ${menu} ||
|
||||
|
||||
:scientific
|
||||
clear osversion
|
||||
set os Scientific
|
||||
iseq ${manufacturer} Xen && set netcfg ip=${netX/ip} netmask=${netX/netmask} gateway=${netX/gateway} dns=${dns} ksdevice=eth0 ||
|
||||
menu ${os} ${arch}
|
||||
item 7.0 ${os} 7.0
|
||||
item 6.5 ${os} 6.5
|
||||
item other Choose other version [o]
|
||||
isset ${osversion} || choose osversion || goto linux_menu
|
||||
iseq ${osversion} other || goto scientific_skip_read_osversion
|
||||
echo ${cls}
|
||||
echo -n Enter version: ${} && read osversion
|
||||
:scientific_skip_read_osversion
|
||||
set dir linux/scientific/${osversion}/${arch}/os
|
||||
set repo http://ftp1.scientificlinux.org/${dir}
|
||||
|
||||
goto boottype
|
||||
|
||||
:boottype
|
||||
set ova ${os} ${osversion}
|
||||
menu ${os} ${arch} boot type
|
||||
item normal ${ova}
|
||||
item rescue ${ova} rescue
|
||||
item kickstart ${ova} specify kickstart url
|
||||
isset ${bt} || choose bt || goto scientific
|
||||
echo ${cls}
|
||||
iseq ${bt} rescue && goto rescue ||
|
||||
iseq ${bt} kickstart && goto kickstart ||
|
||||
goto bootos_images
|
||||
|
||||
:rescue
|
||||
set params rescue ||
|
||||
goto bootos_images
|
||||
|
||||
:kickstart
|
||||
echo -n Specify kickstart URL for ${os} ${osversion}: && read ksurl
|
||||
set params ks=${ksurl} ||
|
||||
goto bootos_images
|
||||
|
||||
:bootos_images
|
||||
imgfree
|
||||
kernel http://ftp1.scientificlinux.org/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${netcfg}
|
||||
initrd http://ftp1.scientificlinux.org/${dir}/images/pxeboot/initrd.img
|
||||
boot
|
||||
goto linux_menu
|
||||
|
||||
:linux_menu
|
||||
clear menu
|
||||
chain linux.ipxe
|
||||
exit 0
|
||||
23
boot/tinycore.ipxe
Normal file
23
boot/tinycore.ipxe
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
#!ipxe
|
||||
|
||||
# TinyCoreLinux
|
||||
# http://tinycorelinux.net/downloads.html
|
||||
# For now there is only one menu entry
|
||||
|
||||
set tmirror tinycorelinux.net
|
||||
|
||||
:tinycore_menu
|
||||
set dir 6.x/x86/release
|
||||
menu TinyCoreLinux
|
||||
item --key c Core Core (8 MB)
|
||||
choose version || goto tinycore_exit
|
||||
|
||||
echo ${cls}
|
||||
|
||||
kernel ${memdisk} iso raw ${params}
|
||||
initrd http://${tmirror}/${dir}/${version}-current.iso
|
||||
boot
|
||||
|
||||
:tinycore_exit
|
||||
clear menu
|
||||
chain linux.ipxe
|
||||
59
boot/ubuntu.ipxe
Normal file
59
boot/ubuntu.ipxe
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
#!ipxe
|
||||
|
||||
# Ubuntu Operating System
|
||||
# http://www.ubuntu.org
|
||||
|
||||
goto ${menu}
|
||||
|
||||
:ubuntu
|
||||
set os ubuntu
|
||||
iseq ${manufacturer} Xen && set netcfg netcfg/get_ipaddress=${netX/ip} netcfg/get_netmask=${netX/netmask} netcfg/get_gateway=${netX/gateway} netcfg/get_nameservers=${dns} netcfg/confirm_static=true netcfg/choose_interface=eth0 netcfg/disable_autoconfig=true ||
|
||||
|
||||
menu Ubuntu ${arch_a}
|
||||
item vivid Ubuntu 15.04 Vivid Vervet
|
||||
item utopic Ubuntu 14.10 Utopic Unicorn
|
||||
item trusty Ubuntu 14.04 LTS Trusty Tahr
|
||||
item saucy Ubuntu 13.10 Saucy Salamander
|
||||
item quantal Ubuntu 12.10 Quantal Quetzal
|
||||
item precise Ubuntu 12.04 LTS Precise Pangolin
|
||||
choose version || goto ubuntu_exit
|
||||
set mirrorcfg mirror/suite=${version} mirror/country=manual mirror/http/hostname=${mirror} mirror/http/directory=/${os}
|
||||
|
||||
:deb_boot_type
|
||||
set dir ${os}/dists/${version}-updates/main/installer-${arch_a}/current/images/netboot/
|
||||
|
||||
menu ${os} boot parameters
|
||||
item install ${os} install
|
||||
item rescue ${os} rescue mode
|
||||
item expert ${os} expert install
|
||||
item preseed ${os} specify preseed url
|
||||
choose --default ${type} type || goto ubuntu
|
||||
|
||||
echo ${cls}
|
||||
goto deb_${type}
|
||||
|
||||
:deb_rescue
|
||||
set install_params rescue/enable=true
|
||||
goto deb_boot
|
||||
|
||||
:deb_expert
|
||||
set install_params priority=low
|
||||
goto deb_boot
|
||||
|
||||
:deb_preseed
|
||||
echo -n Specify preseed URL for ${os} ${version}: && read preseedurl
|
||||
set install_params auto=true priority=critical preseed/url=${preseedurl}
|
||||
goto deb_boot
|
||||
|
||||
:deb_install
|
||||
:deb_boot
|
||||
set dir ${dir}${menu}-installer/${arch_a}
|
||||
imgfree
|
||||
echo Boot parameters: ${install_params} -- quiet ${params}
|
||||
kernel http://${mirror}/${dir}/linux ${install_params} ${netcfg} ${mirrorcfg} -- quiet ${params}
|
||||
initrd http://${mirror}/${dir}/initrd.gz
|
||||
boot
|
||||
|
||||
:ubuntu_exit
|
||||
clear menu
|
||||
chain linux.ipxe
|
||||
49
boot/utils.ipxe
Normal file
49
boot/utils.ipxe
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
#!ipxe
|
||||
|
||||
menu Utilities
|
||||
item --gap Utilities:
|
||||
item clonezilla ${space} Clonezilla
|
||||
item hdt ${space} Hardware Detection Tool
|
||||
item memtest ${space} MemTest86+
|
||||
choose --default ${menu} menu || goto utils_exit
|
||||
echo ${cls}
|
||||
goto ${menu} ||
|
||||
chain ${menu}.ipxe || goto error
|
||||
goto linux_exit
|
||||
|
||||
:hdt
|
||||
kernel ${memdisk} iso raw
|
||||
initrd http://www.hdt-project.org/raw-attachment/wiki/hdt-0.5.0/hdt-0.5.2.iso
|
||||
boot
|
||||
goto utils_exit
|
||||
|
||||
:clonezilla
|
||||
set version 2.2.3-25
|
||||
iseq ${arch} x86_64 && set cz_arch amd64 || set cz_arch i686-pae
|
||||
set project clonezilla
|
||||
set iso ${project}_live_stable/${version}/${project}-live-${version}-${cz_arch}.iso
|
||||
set czurl http://sourceforge.net/projects/clonezilla/files/${iso}/download
|
||||
kernel ${memdisk} iso raw ${params}
|
||||
:retry
|
||||
iseq ${try} xxxxx && exit ||
|
||||
set try ${try}x
|
||||
initrd ${czurl} || goto retry
|
||||
boot || goto utils_exit
|
||||
|
||||
:memtest
|
||||
chain utils/memtest.bin ${params} && goto main_menu ||
|
||||
echo MEMORY ERROR DETECTED! ${errno}
|
||||
echo Press any key to continue ...
|
||||
read a
|
||||
goto utils_exit
|
||||
|
||||
choose --timeout ${timeout} --default ${menu} menu || goto utils_exit
|
||||
echo ${cls}
|
||||
goto ${menu} ||
|
||||
chain ${menu}.ipxe || goto error
|
||||
goto linux_exit
|
||||
|
||||
:utils_exit
|
||||
clear menu
|
||||
chain menu.ipxe
|
||||
exit 0
|
||||
32
ipxe/netboot.xyz-main
Normal file
32
ipxe/netboot.xyz-main
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#!ipxe
|
||||
|
||||
:start
|
||||
set netboot_xyz_version 1
|
||||
echo netboot_xyz iPXE loader v${netboot_xyz_version}
|
||||
|
||||
:dhcp
|
||||
dhcp || goto static
|
||||
goto start
|
||||
|
||||
:static
|
||||
echo DHCP Server not found, enabling manual override:
|
||||
imgfree
|
||||
ifclose net0
|
||||
echo -n IP: && read net0/ip
|
||||
echo -n Subnet mask: && read net0/netmask
|
||||
echo -n Gateway: && read net0/gateway
|
||||
echo -n DNS: && read dns
|
||||
ifopen net0
|
||||
echo Attempting chainload of netboot.xyz...
|
||||
goto start || goto failsafe
|
||||
|
||||
:start
|
||||
chain http://cdn.netboot.xyz/boot.ipxe
|
||||
goto boot
|
||||
|
||||
:failsafe
|
||||
echo Attempt to load netboot.xyz failed... restarting...
|
||||
goto start
|
||||
|
||||
:boot
|
||||
sanboot --no-describe --drive 0x80
|
||||
28
ipxe/netboot.xyz-static
Normal file
28
ipxe/netboot.xyz-static
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!ipxe
|
||||
|
||||
:start
|
||||
set version 1
|
||||
echo netboot.xyz iPXE loader v${version}
|
||||
|
||||
:static
|
||||
echo Please enter in the networking information of your Cloud Server:
|
||||
imgfree
|
||||
ifclose net0
|
||||
echo -n IP: && read net0/ip
|
||||
echo -n Subnet mask: && read net0/netmask
|
||||
echo -n Gateway: && read net0/gateway
|
||||
echo -n DNS: && read dns
|
||||
ifopen net0
|
||||
echo Attempting chainload of netboot.xyz...
|
||||
goto start || goto failsafe
|
||||
|
||||
:start
|
||||
chain http://cdn.netboot.xyz/boot.ipxe
|
||||
goto boot
|
||||
|
||||
:failsafe
|
||||
echo Attempt to load netboot.xyz failed... restarting...
|
||||
goto start
|
||||
|
||||
:boot
|
||||
sanboot --no-describe --drive 0x80
|
||||
Loading…
Add table
Add a link
Reference in a new issue