--- releng/urls.py | 5 ++ releng/views.py | 4 ++ sitestatic/netboot/arch.dsk | Bin 0 -> 368128 bytes sitestatic/netboot/arch.ipxe | 5 ++ sitestatic/netboot/arch.iso | Bin 0 -> 1048576 bytes sitestatic/netboot/arch.lkrn | Bin 0 -> 370433 bytes sitestatic/netboot/arch.pxe | Bin 0 -> 369140 bytes sitestatic/netboot/arch_text.dsk | Bin 0 -> 368128 bytes sitestatic/netboot/arch_text.ipxe | 5 ++ sitestatic/netboot/arch_text.iso | Bin 0 -> 1048576 bytes sitestatic/netboot/arch_text.lkrn | Bin 0 -> 370431 bytes sitestatic/netboot/arch_text.pxe | Bin 0 -> 369139 bytes templates/releng/netboot.html | 112 ++++++++++++++++++++++++++++++++++++++ 13 files changed, 131 insertions(+) create mode 100644 sitestatic/netboot/arch.dsk create mode 100644 sitestatic/netboot/arch.ipxe create mode 100644 sitestatic/netboot/arch.iso create mode 100644 sitestatic/netboot/arch.lkrn create mode 100644 sitestatic/netboot/arch.pxe create mode 100644 sitestatic/netboot/arch_text.dsk create mode 100644 sitestatic/netboot/arch_text.ipxe create mode 100644 sitestatic/netboot/arch_text.iso create mode 100644 sitestatic/netboot/arch_text.lkrn create mode 100644 sitestatic/netboot/arch_text.pxe create mode 100644 templates/releng/netboot.html diff --git a/releng/urls.py b/releng/urls.py index 76c3634..be94404 100644 --- a/releng/urls.py +++ b/releng/urls.py @@ -20,9 +20,14 @@ 'release_torrent', {}, 'releng-release-torrent'), ) +netboot_patterns = patterns('releng.views', + (r'^$', 'netboot_info', {}, 'releng-netboot-info'), +) + urlpatterns = patterns('', (r'^feedback/', include(feedback_patterns)), (r'^releases/', include(releases_patterns)), + (r'^netboot/', include(netboot_patterns)), ) # vim: set ts=4 sw=4 et: diff --git a/releng/views.py b/releng/views.py index b1c76a4..e3a58bb 100644 --- a/releng/views.py +++ b/releng/views.py @@ -238,4 +238,8 @@ def release_torrent(request, version): response['Content-Disposition'] = 'attachment; filename=%s' % filename return response + +def netboot_info(request): + return render(request, "releng/netboot.html", None) + # vim: set ts=4 sw=4 et: diff --git a/sitestatic/netboot/arch.dsk b/sitestatic/netboot/arch.dsk new file mode 100644 index 0000000..9e881d2 Binary files /dev/null and b/sitestatic/netboot/arch.dsk differ diff --git a/sitestatic/netboot/arch.ipxe b/sitestatic/netboot/arch.ipxe new file mode 100644 index 0000000..198e7cc --- /dev/null +++ b/sitestatic/netboot/arch.ipxe @@ -0,0 +1,5 @@ +#!ipxe +dhcp +set 209:string pxelinux_vesa.cfg +set 210:string http://www.archlinux.org/releng/netboot/ +chain ${210:string}pxelinux.0 diff --git a/sitestatic/netboot/arch.iso b/sitestatic/netboot/arch.iso new file mode 100644 index 0000000..5ea82c7 Binary files /dev/null and b/sitestatic/netboot/arch.iso differ diff --git a/sitestatic/netboot/arch.lkrn b/sitestatic/netboot/arch.lkrn new file mode 100644 index 0000000..fc13c3d Binary files /dev/null and b/sitestatic/netboot/arch.lkrn differ diff --git a/sitestatic/netboot/arch.pxe b/sitestatic/netboot/arch.pxe new file mode 100644 index 0000000..ba5f542 Binary files /dev/null and b/sitestatic/netboot/arch.pxe differ diff --git a/sitestatic/netboot/arch_text.dsk b/sitestatic/netboot/arch_text.dsk new file mode 100644 index 0000000..0b216c4 Binary files /dev/null and b/sitestatic/netboot/arch_text.dsk differ diff --git a/sitestatic/netboot/arch_text.ipxe b/sitestatic/netboot/arch_text.ipxe new file mode 100644 index 0000000..8b781b2 --- /dev/null +++ b/sitestatic/netboot/arch_text.ipxe @@ -0,0 +1,5 @@ +#!ipxe +dhcp +set 209:string pxelinux_text.cfg +set 210:string http://www.archlinux.org/releng/netboot/ +chain ${210:string}pxelinux.0 diff --git a/sitestatic/netboot/arch_text.iso b/sitestatic/netboot/arch_text.iso new file mode 100644 index 0000000..8d13235 Binary files /dev/null and b/sitestatic/netboot/arch_text.iso differ diff --git a/sitestatic/netboot/arch_text.lkrn b/sitestatic/netboot/arch_text.lkrn new file mode 100644 index 0000000..76044c7 Binary files /dev/null and b/sitestatic/netboot/arch_text.lkrn differ diff --git a/sitestatic/netboot/arch_text.pxe b/sitestatic/netboot/arch_text.pxe new file mode 100644 index 0000000..1054cad Binary files /dev/null and b/sitestatic/netboot/arch_text.pxe differ diff --git a/templates/releng/netboot.html b/templates/releng/netboot.html new file mode 100644 index 0000000..61fc75c --- /dev/null +++ b/templates/releng/netboot.html @@ -0,0 +1,112 @@ +{% extends "base.html" %} + +{% block title %}Arch Linux - Netboot Live System{% endblock %} + +{% block content %} +<div id="arch-downloads" class="box"> + +<h2>Arch Linux Netboot Live System</h2> + +<p>The Arch Linux netboot environment allows booting Arch Linux live + media directly over the network. It will boot into a menu where you + can choose from a list of available mirrors. The image will be + downloaded into memory. +</p> + +<p><strong>Requirements:</strong> A computer that connects to the internet via LAN and DHCP.</p> + +<p>If your ethernet NIC is not supported by iPXE, you must use your NIC's netboot capabilities. + This is only possible if you select "Boot from network" in the BIOS and + configure your DHCP server to <a href="#undi_pxeimage">load the PXE image provided below</a>. + In this case, the UNDI driver will be used for downloads until Linux is booted. The first + stage of the download can be <strong>extremely</strong> + slow. +</p> + +<h3>Test netboot with qemu</h3> + +<p>Download an iPXE kernel image.</p> +<ul> + <li><a href="{% static "/netboot/arch.lkrn" %}">ipxe.lkrn</a> Graphical Menu</li> + <li><a href="{% static "/netboot/arch_text.lkrn" %}">ipxe_text.lkrn</a> Text Menu</li> +</ul> +<p>Run qemu with the kernel image:</p> +<pre>qemu -m 1G -kernel ipxe.lkrn</pre> + +<h3><a name="kernelimage">Boot with any Linux bootloader</a></h3> + +<p>Download an iPXE kernel image to <i>/boot</i>.</p> +<ul> + <li><a href="{% static "/netboot/arch.lkrn" %}">ipxe.lkrn</a> Graphical Menu</li> + <li><a href="{% static "/netboot/arch_text.lkrn" %}">ipxe_text.lkrn</a> Text Menu</li> +</ul> +<p>Add the image to your bootloader configuration:</p> + +<p>GRUB 2:</p> +<pre>menuentry 'Arch Linux Netboot Environment' { + set root='(hd0,1)' + linux16 /ipxe.lkrn +}</pre> + +<p>Syslinux:</p> +<pre>LABEL archnetboot +MENU LABEL Arch Linux Netboot Environment +KERNEL /ipxe.lkrn</pre> + +<p>GRUB Legacy:</p> +<pre>title Arch Linux Netboot Environment +kernel (hd0,0)/ipxe.lkrn</pre> + +<h3>Boot from USB</h3> + +<p>Install a bootloader (e.g. GRUB or syslinux) onto the USB drive and use the <i>.lkrn</i> file + <a href="#kernelimage">as described above</a>.</p> + +<h3>Boot from Floppy</h3> + +<p>Download an iPXE floppy image.</p> +<ul> + <li><a href="{% static "/netboot/arch.dsk" %}">ipxe.dsk</a> Graphical Menu</li> + <li><a href="{% static "/netboot/arch_text.dsk" %}">ipxe_text.dsk</a> Text Menu</li> +</ul> +<p>Write the image to your floppy:</p> +<pre>dd if=ipxe.dsk of=/dev/fd0</pre> + +<h3>Boot from CD</h3> + +<p>Download an iPXE ISO image and write it to a CD.</p> +<ul> + <li><a href="{% static "/netboot/arch.iso" %}">ipxe.iso</a> Graphical Menu</li> + <li><a href="{% static "/netboot/arch_text.iso" %}">ipxe_text.iso</a> Text Menu</li> +</ul> + +<h3>Boot from the network</h3> + +There are two ways to do this: + +<h4><a name="undi_pxeimage">Using an iPXE image</a></h4> + +<p>Download an iPXE PXE image into your TFTP root.</p> +<ul> + <li><a href="{% static "/netboot/arch.pxe" %}">ipxe.pxe</a> Graphical Menu</li> + <li><a href="{% static "/netboot/arch_text.pxe" %}">ipxe_text.pxe</a> Text Menu</li> +</ul> + +<p>Set the PXE filename to <i>ipxe.pxe</i> (using the <i>filname</i> option in dhcpd or the <i>-M</i> option in dnsmasq).</p> + +<p>This method is recommended, as it will always work - if iPXE lacks a native NIC driver, the UNDI driver will be used.</p> + +<h4>Flashing your boot ROM</h4> + +<p>You can build a custom iPXE images and flash it to your boot ROM. +You must include one of the following iPXE scripts:</p> + +<ul> + <li><a href="{% static "/netboot/arch.ipxe" %}">arch.ipxe</a> Graphical Menu</li> + <li><a href="{% static "/netboot/arch_text.ipxe" %}">arch_text.ipxe</a> Text Menu</li> +</ul> + +<p><strong>If you do this, your computer will always boot the Arch netboot environment when you netboot your computer.</strong></p> + +</div> +{% endblock %} -- 1.8.3.1