[arch-projects] [archweb] [RFCv2 1/2] releng: Add netboot information to archweb.

Thomas Bächler thomas at archlinux.org
Thu Jun 27 11:01:38 EDT 2013


---
 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



More information about the arch-projects mailing list