diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-12-11 17:23:42 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-12-11 17:23:42 -0500 |
commit | 58fc4756e9822d39f224a8773209e306349146e0 (patch) | |
tree | d326c593a6b859c8344410778c9e5cd3df436ebf /templates | |
parent | 2f35bd492629a52f4849c379f02030c1efb2495c (diff) | |
parent | 422aaee026c57b65dda81b78b6a0f49263c6dd1e (diff) |
Merge branch 'archweb-generic'lukeshu/netboot
# Conflicts:
# AUTHORS
# Makefile
# public/views.py
# settings.py
# templates/public/donate.html
# templates/public/download.html
# templates/public/index.html
Diffstat (limited to 'templates')
-rw-r--r-- | templates/releng/archlinux.ipxe | 157 | ||||
-rw-r--r-- | templates/releng/netboot.html | 54 |
2 files changed, 211 insertions, 0 deletions
diff --git a/templates/releng/archlinux.ipxe b/templates/releng/archlinux.ipxe new file mode 100644 index 00000000..4945868c --- /dev/null +++ b/templates/releng/archlinux.ipxe @@ -0,0 +1,157 @@ +#!ipxe +{% regroup mirrorurls by country as mirrors_by_country %} + +# 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 {{ releases.0 }} +set mirrorurl +set extrabootoptions ip=dhcp net.ifnames=0 +set countrycode + +:main +menu Arch Linux 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 Arch Linux || item --gap Boot Arch Linux +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 Arch Linux 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 Arch Linux Netboot: Select Release +item back back +item +item --gap Available releases: +{% for release in releases %}item {{ release }} {{ release }} +{% endfor %} +choose selected || goto main +iseq ${selected} back && goto main || +set release ${selected} +goto main + +:set_mirror +goto select_mirror_country + +:select_mirror_country +menu Arch Linux Netboot: Select Mirror +item back back +item +item --gap Custom Configuration: +item custom Enter mirror URL +item +item --gap Select Mirror By Country: +{% for mirrorgroup in mirrors_by_country %} +{% if mirrorgroup.grouper == '' %} +item 00 Global +{% else %} +item {{ mirrorgroup.grouper }} {{ mirrorgroup.grouper.name }} +{% endif %} +{% endfor %} +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 + +{% for mirrorgroup in mirrors_by_country %} +{% if mirrorgroup.grouper == '' %} +:select_mirror_url_00 +set countryname Global +{% else %} +:select_mirror_url_{{ mirrorgroup.grouper }} +set countryname {{ mirrorgroup.grouper.name }} +{% endif %} +menu Arch Linux Netboot: Select Mirror +item back back +item +item --gap Available mirrors in ${countryname} +{% for mirror in mirrorgroup.list %}item {{ mirror.url }} {{ mirror.mirror.name }} +{% endfor %} +choose selected || goto select_mirror_country +iseq ${selected} back && goto select_mirror_country || +set mirrorurl ${selected} +goto main +{% endfor %} + +:set_options +echo -n Boot options: ${} && read extrabootoptions || +goto main + +:boot +echo Booting Arch Linux ${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/intel_ucode.img || goto failed_download +imgverify intel_ucode.img ${mirrorurl}iso/${release}/arch/boot/intel_ucode.img.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=intel_ucode.img 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 diff --git a/templates/releng/netboot.html b/templates/releng/netboot.html new file mode 100644 index 00000000..36404588 --- /dev/null +++ b/templates/releng/netboot.html @@ -0,0 +1,54 @@ +{% extends "base.html" %} +{% load staticfiles %} + +{% block title %}Arch Linux - Netboot{% endblock %} + +{% block content %} +<div id="arch-netboot" class="box"> + +<h2>Arch Linux Netboot</h2> + +<h3>About Netboot</h3> + +<p>Netboot images are small (<1MB) images that can be used to download the latest Arch Linux release on the fly upon system boot. +It is unnecessary to update the netboot image, the newest release will be available automatically.</p> + +<p>Netboot uses customized <a href="http://ipxe.org">iPXE</a> builds. +The Linux kernel, initramfs and squashfs files for the live system are downloaded from an Arch Linux mirror. +The integrity of all downloaded files is verified with cryptographic signatures.</p> + +<h3>Requirements</h3> + +<p>To use netboot, the following requirements must be met: + +<ul> +<li>Wired (ethernet) internet connection with DHCP autoconfiguration</li> +<li>Sufficient memory to store and run the live system</li> +</ul> + +</p> + +<h3>Download</h3> + +<h4>BIOS</h4> + +<ul> +<li><a href="{% static "netboot/ipxe.lkrn" %}">ipxe.lkrn</a> (<a href="{% static "netboot/ipxe.lkrn.sig" %}">PGP signature</a>) - Linux kernel-like image that can be started with any Linux bootloader</li> +<li><a href="{% static "netboot/ipxe.pxe" %}">ipxe.pxe</a> (<a href="{% static "netboot/ipxe.pxe.sig" %}">PGP signature</a>) - PXE image for chainloading from a PXE environment</li> +</ul> + +<h4>UEFI</h4> + +<ul> +<li><a href="{% static "netboot/ipxe.efi" %}">ipxe.efi</a> (<a href="{% static "netboot/ipxe.efi.sig" %}">PGP signature</a>) - x86_64 UEFI executable</li> +</ul> + +<p>You can build your own iPXE images compatible with netboot. +For details, check out the <a href="https://aur.archlinux.org/packages/ipxe-netboot">ipxe-netboot AUR package</a>.</p> + +<h3>More information</h3> + +<p>For detailed usage instructions, check out the <a href="https://wiki.archlinux.org/index.php/Netboot">netboot wiki page</a>. + +</div> +{% endblock %} |