#!ipxe # Figure out if client is 64-bit capable cpuid --ext 29 && set cpuarch x86_64 || set cpuarch i686 # allow only trusted images imgtrust # initial options set bootarch ${cpuarch} set release set extrabootoptions ip=dhcp net.ifnames=0 BOOTIF=01-${netX/mac} set countrycode :main menu Parabola GNU/Linux-libre Netboot item --gap Settings item set_architecture Architecture: ${bootarch} item set_release Release: ${release} isset ${mirrorurl} && item set_mirror Mirror: ${mirrorurl} || item set_mirror Choose a mirror item set_options Boot options: ${extrabootoptions} item isset ${mirrorurl} && item boot Boot Parabola GNU/Linux-libre || item --gap Boot Parabola GNU/Linux-libre item shell Drop to iPXE shell item reboot Reboot item exit Exit iPXE isset ${mirrorurl} && choose --default set_options selected || choose --default set_mirror selected || goto shell goto ${selected} || goto main :shell echo Type 'exit' to get the back to the menu shell goto main :reboot reboot :exit exit :set_architecture menu Parabola GNU/Linux-libre Netboot: Select Architecture item back back item item --gap Available architectures: iseq ${cpuarch} x86_64 && item x86_64 x64_64 || item i686 i686 choose selected || goto main iseq ${selected} back && goto main || set bootarch ${selected} goto main :set_release menu Parabola GNU/Linux-libre Netboot: Select Release item back back item item --gap Available releases: choose selected || goto main iseq ${selected} back && goto main || set release ${selected} goto main :set_mirror goto select_mirror_country :select_mirror_country menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Custom Configuration: item custom Enter mirror URL item item --gap Select Mirror By Country: item CA Canada item CN China item DK Denmark item FR France item DE Germany item HU Hungary item IS Iceland item JP Japan item NL Netherlands item RU Russia item SG Singapore item SE Sweden item TH Thailand item UA Ukraine item US United States isset ${countrycode} && choose --default ${countrycode} selected || choose selected || goto main iseq ${selected} back && goto main || iseq ${selected} custom && goto enter_mirror_url || set countrycode ${selected} goto select_mirror_url :enter_mirror_url set countrycode echo Enter the mirror URL including the trailing slash. echo Example: http://some.host/archlinux/ echo echo -n Mirror URL: ${} && read mirrorurl || goto select_mirror_country goto main :select_mirror_url goto select_mirror_url_${countrycode} || goto select_mirror_country :select_mirror_url_CA set countryname Canada menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://mirror.csclub.uwaterloo.ca/parabola/ uwaterloo.ca choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_CN set countryname China menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://mirror.nju.edu.cn/parabola/ nju.edu.cn choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_DK set countryname Denmark menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://mirrors.dotsrc.org/parabola/ dotsrc.org choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_FR set countryname France menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://mirror.cyberbits.eu/parabola/ cyberbits.eu choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_DE set countryname Germany menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://mirror.grapentin.org/parabola/ grapentin.org choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_HU set countryname Hungary menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://quantum-mirror.hu/mirrors/pub/parabola/ quantum-mirror.hu choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_IS set countryname Iceland menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://redirector.parabola.nu/ redirector.parabola.nu item http://repo.parabola.nu/ repo.parabola.nu choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_JP set countryname Japan menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://repo.jing.rocks/parabola/ jing.rocks choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_NL set countryname Netherlands menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://parabola.isacdaavid.info/ isacdaavid.info choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_RU set countryname Russia menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://mirror.yandex.ru/mirrors/parabola/ yandex.ru choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_SG set countryname Singapore menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://mirror.freedif.org/Parabola/ freedif.org choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_SE set countryname Sweden menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://ftpmirror1.infania.net/parabola/ infania.net item http://ftp.acc.umu.se/mirror/parabola.nu/ umu.se choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_TH set countryname Thailand menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://mirror.cyberbits.asia/parabola/ cyberbits.asia choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_UA set countryname Ukraine menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://parabola.ip-connect.info/ ip-connect.vn.ua choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :select_mirror_url_US set countryname United States menu Parabola GNU/Linux-libre Netboot: Select Mirror item back back item item --gap Available mirrors in ${countryname} item http://mirror.fsf.org/parabola/ fsf.org choose selected || goto select_mirror_country iseq ${selected} back && goto select_mirror_country || set mirrorurl ${selected} goto main :set_options echo -n Boot options: ${} && read extrabootoptions || goto main :boot echo Booting Parabola GNU/Linux-libre ${bootarch} ${release} from ${mirrorurl} echo kernel ${mirrorurl}iso/${release}/arch/boot/${bootarch}/vmlinuz || goto failed_download imgverify vmlinuz ${mirrorurl}iso/${release}/arch/boot/${bootarch}/vmlinuz.ipxe.sig || goto failed_verify initrd ${mirrorurl}iso/${release}/arch/boot/${bootarch}/archiso.img || goto failed_download imgverify archiso.img ${mirrorurl}iso/${release}/arch/boot/${bootarch}/archiso.img.ipxe.sig || goto failed_verify imgargs vmlinuz initrd=archiso.img archiso_http_srv=${mirrorurl}iso/${release}/ archisobasedir=arch verify=y ${extrabootoptions} boot || goto failed_boot :failed_download echo echo Failed to download a file. goto failed :failed_verify echo echo Failed to verify a file. goto failed :failed_boot echo echo Boot failed. goto failed :failed echo Press a key to return to the menu. prompt imgfree goto main