Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
actions-user committed Aug 1, 2024
1 parent f6f538b commit 93e79b2
Show file tree
Hide file tree
Showing 6 changed files with 150 additions and 149 deletions.
2 changes: 1 addition & 1 deletion docs/v4.5.x/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 46a82930aa27e8dc7a2c4bccf6897d7f
config: e0466d9775a7e5b2280ab7869634cd4c
tags: 645f666f9bcd5a90fca523b33c5a78b7
151 changes: 76 additions & 75 deletions docs/v4.5.x/_sources/contents/boot-management.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,81 +32,6 @@ Booting with iPXE
ipxe_cfg->kernel[ltail=cluster0,label="http"];
}

Booting with dracut
-------------------

Some systems, typically due to limitations in their BIOS or EFI
firmware, are unable to load container image of a certain size
directly with a traditional bootloader, either iPXE or GRUB. As a
workaround for such systems, Warewulf can be configured to load a
dracut initramfs from the container and to use that initramfs to load
the full container image.

Warewulf provides a dracut module to configure the dracut initramfs to
load the container image. This module is available in the
``warewulf-dracut`` subpackage, which must be installed in the
container image.

With the ``warewulf-dracut`` package installed, you can build an
initramfs inside the container.

.. code-block:: shell
dnf -y install warewulf-dracut
dracut --force --no-hostonly --add wwinit --kver $(ls /lib/modules | head -n1)
Set the node's iPXE template to ``dracut`` to direct iPXE to fetch the
node's initramfs image and boot with dracut semantics, rather than
booting the node image directly.

.. note::

Warewulf iPXE templates are located at ``/etc/warewulf/ipxe/`` when
Warewulf is installed via official packages. You can learn more
about how dracut booting works by inspecting its iPXE template at
``/etc/warewulf/ipxe/dracut.ipxe``.

.. code-block:: shell
wwctl node set wwnode1 --ipxe dracut
.. note::

The iPXE template may be set at the node or profile level.

Alternatively, to direct GRUB to fetch the node's initramfs image and boot with
dracut semantics, set a ``GrubMenuEntry`` tag for the node.

.. note::

Warewulf configures GRUB with a template located at
``/etc/warewulf/grub/grub.cfg.ww``. Inspect the template to learn more about
the dracut booting process.

.. code-block:: shell
wwctl node set wwnode1 --tagadd GrubMenuEntry=dracut
.. note::

The ``GrubMenuEntry`` variable may be set at the node or profile level.

During boot, ``warewulfd`` will detect and dynamically serve an
initramfs from a node's container image in much the same way that it
can serve a kernel from a container image. This image is loaded by
iPXE (or GRUB) which directs dracut to fetch the node's container image
during boot.

The wwinit module provisions to tmpfs. By default, tmpfs is permitted
to use up to 50% of physical memory. This size limit may be adjustd
using the kernel argument `wwinit.tmpfs.size`. (This parameter is
passed to the `size` option during tmpfs mount. See ``tmpfs(5)`` for
more details.)

.. warning::

Kernel overrides are not currently fully supported during dracut initramfs boot.

Booting with GRUB
=================

Expand Down Expand Up @@ -214,3 +139,79 @@ is the following:

Warewulf delivers the initial `shim.efi` and `grub.efi` via http as taken
directly from the node's assigned container.

Booting with dracut
===================

Some systems, typically due to limitations in their BIOS or EFI
firmware, are unable to load container image of a certain size
directly with a traditional bootloader, either iPXE or GRUB. As a
workaround for such systems, Warewulf can be configured to load a
dracut initramfs from the container and to use that initramfs to load
the full container image.

Warewulf provides a dracut module to configure the dracut initramfs to
load the container image. This module is available in the
``warewulf-dracut`` subpackage, which must be installed in the
container image.

With the ``warewulf-dracut`` package installed, you can build an
initramfs inside the container.

.. code-block:: shell
dnf -y install warewulf-dracut
dracut --force --no-hostonly --add wwinit --kver $(ls /lib/modules | head -n1)
Set the node's iPXE template to ``dracut`` to direct iPXE to fetch the
node's initramfs image and boot with dracut semantics, rather than
booting the node image directly.

.. note::

Warewulf iPXE templates are located at ``/etc/warewulf/ipxe/`` when
Warewulf is installed via official packages. You can learn more
about how dracut booting works by inspecting its iPXE template at
``/etc/warewulf/ipxe/dracut.ipxe``.

.. code-block:: shell
wwctl node set wwnode1 --ipxe dracut
.. note::

The iPXE template may be set at the node or profile level.

Alternatively, to direct GRUB to fetch the node's initramfs image and boot with
dracut semantics, set a ``GrubMenuEntry`` tag for the node.

.. note::

Warewulf configures GRUB with a template located at
``/etc/warewulf/grub/grub.cfg.ww``. Inspect the template to learn more about
the dracut booting process.

.. code-block:: shell
wwctl node set wwnode1 --tagadd GrubMenuEntry=dracut
.. note::

The ``GrubMenuEntry`` variable may be set at the node or profile level.

During boot, ``warewulfd`` will detect and dynamically serve an
initramfs from a node's container image in much the same way that it
can serve a kernel from a container image. This image is loaded by
iPXE (or GRUB) which directs dracut to fetch the node's container image
during boot.

The wwinit module provisions to tmpfs. By default, tmpfs is permitted
to use up to 50% of physical memory. This size limit may be adjustd
using the kernel argument `wwinit.tmpfs.size`. (This parameter is
passed to the `size` option during tmpfs mount. See ``tmpfs(5)`` for
more details.)

.. warning::

Kernel overrides are not currently fully supported during dracut initramfs boot.

7 changes: 4 additions & 3 deletions docs/v4.5.x/_static/searchtools.js
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ const Search = {

htmlToText: (htmlString, anchor) => {
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
for (const removalQuery of [".headerlinks", "script", "style"]) {
for (const removalQuery of [".headerlink", "script", "style"]) {
htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
}
if (anchor) {
Expand Down Expand Up @@ -328,13 +328,14 @@ const Search = {
for (const [title, foundTitles] of Object.entries(allTitles)) {
if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
for (const [file, id] of foundTitles) {
let score = Math.round(100 * queryLower.length / title.length)
const score = Math.round(Scorer.title * queryLower.length / title.length);
const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
normalResults.push([
docNames[file],
titles[file] !== title ? `${titles[file]} > ${title}` : title,
id !== null ? "#" + id : "",
null,
score,
score + boost,
filenames[file],
]);
}
Expand Down
136 changes: 67 additions & 69 deletions docs/v4.5.x/contents/boot-management.html
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,14 @@
<li class="toctree-l1"><a class="reference internal" href="containers.html">Container Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="kernel.html">Kernel Management</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Boot Management</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#booting-with-ipxe">Booting with iPXE</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#booting-with-dracut">Booting with dracut</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#booting-with-ipxe">Booting with iPXE</a></li>
<li class="toctree-l2"><a class="reference internal" href="#booting-with-grub">Booting with GRUB</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#secure-boot">Secure boot</a></li>
<li class="toctree-l3"><a class="reference internal" href="#install-shim-and-efi">Install shim and efi</a></li>
<li class="toctree-l3"><a class="reference internal" href="#http-boot">http boot</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#booting-with-dracut">Booting with dracut</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="nodeconfig.html">Node Configuration</a></li>
Expand Down Expand Up @@ -149,71 +147,6 @@ <h2>Booting with iPXE<a class="headerlink" href="#booting-with-ipxe" title="Link
kernel [shape=record label=&quot;{kernel|ramdisk (root fs)|wwinit overlay}|extracted from node container&quot;];
ipxe_cfg-&gt;kernel[ltail=cluster0,label=&quot;http&quot;];
}" class="graphviz" /></div>
<section id="booting-with-dracut">
<h3>Booting with dracut<a class="headerlink" href="#booting-with-dracut" title="Link to this heading"></a></h3>
<p>Some systems, typically due to limitations in their BIOS or EFI
firmware, are unable to load container image of a certain size
directly with a traditional bootloader, either iPXE or GRUB. As a
workaround for such systems, Warewulf can be configured to load a
dracut initramfs from the container and to use that initramfs to load
the full container image.</p>
<p>Warewulf provides a dracut module to configure the dracut initramfs to
load the container image. This module is available in the
<code class="docutils literal notranslate"><span class="pre">warewulf-dracut</span></code> subpackage, which must be installed in the
container image.</p>
<p>With the <code class="docutils literal notranslate"><span class="pre">warewulf-dracut</span></code> package installed, you can build an
initramfs inside the container.</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>dnf<span class="w"> </span>-y<span class="w"> </span>install<span class="w"> </span>warewulf-dracut
dracut<span class="w"> </span>--force<span class="w"> </span>--no-hostonly<span class="w"> </span>--add<span class="w"> </span>wwinit<span class="w"> </span>--kver<span class="w"> </span><span class="k">$(</span>ls<span class="w"> </span>/lib/modules<span class="w"> </span><span class="p">|</span><span class="w"> </span>head<span class="w"> </span>-n1<span class="k">)</span>
</pre></div>
</div>
<p>Set the node’s iPXE template to <code class="docutils literal notranslate"><span class="pre">dracut</span></code> to direct iPXE to fetch the
node’s initramfs image and boot with dracut semantics, rather than
booting the node image directly.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Warewulf iPXE templates are located at <code class="docutils literal notranslate"><span class="pre">/etc/warewulf/ipxe/</span></code> when
Warewulf is installed via official packages. You can learn more
about how dracut booting works by inspecting its iPXE template at
<code class="docutils literal notranslate"><span class="pre">/etc/warewulf/ipxe/dracut.ipxe</span></code>.</p>
</div>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>wwctl<span class="w"> </span>node<span class="w"> </span><span class="nb">set</span><span class="w"> </span>wwnode1<span class="w"> </span>--ipxe<span class="w"> </span>dracut
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The iPXE template may be set at the node or profile level.</p>
</div>
<p>Alternatively, to direct GRUB to fetch the node’s initramfs image and boot with
dracut semantics, set a <code class="docutils literal notranslate"><span class="pre">GrubMenuEntry</span></code> tag for the node.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Warewulf configures GRUB with a template located at
<code class="docutils literal notranslate"><span class="pre">/etc/warewulf/grub/grub.cfg.ww</span></code>. Inspect the template to learn more about
the dracut booting process.</p>
</div>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>wwctl<span class="w"> </span>node<span class="w"> </span><span class="nb">set</span><span class="w"> </span>wwnode1<span class="w"> </span>--tagadd<span class="w"> </span><span class="nv">GrubMenuEntry</span><span class="o">=</span>dracut
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <code class="docutils literal notranslate"><span class="pre">GrubMenuEntry</span></code> variable may be set at the node or profile level.</p>
</div>
<p>During boot, <code class="docutils literal notranslate"><span class="pre">warewulfd</span></code> will detect and dynamically serve an
initramfs from a node’s container image in much the same way that it
can serve a kernel from a container image. This image is loaded by
iPXE (or GRUB) which directs dracut to fetch the node’s container image
during boot.</p>
<p>The wwinit module provisions to tmpfs. By default, tmpfs is permitted
to use up to 50% of physical memory. This size limit may be adjustd
using the kernel argument <cite>wwinit.tmpfs.size</cite>. (This parameter is
passed to the <cite>size</cite> option during tmpfs mount. See <code class="docutils literal notranslate"><span class="pre">tmpfs(5)</span></code> for
more details.)</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Kernel overrides are not currently fully supported during dracut initramfs boot.</p>
</div>
</section>
</section>
<section id="booting-with-grub">
<h2>Booting with GRUB<a class="headerlink" href="#booting-with-grub" title="Link to this heading"></a></h2>
Expand Down Expand Up @@ -302,6 +235,71 @@ <h3>http boot<a class="headerlink" href="#http-boot" title="Link to this heading
directly from the node’s assigned container.</p>
</section>
</section>
<section id="booting-with-dracut">
<h2>Booting with dracut<a class="headerlink" href="#booting-with-dracut" title="Link to this heading"></a></h2>
<p>Some systems, typically due to limitations in their BIOS or EFI
firmware, are unable to load container image of a certain size
directly with a traditional bootloader, either iPXE or GRUB. As a
workaround for such systems, Warewulf can be configured to load a
dracut initramfs from the container and to use that initramfs to load
the full container image.</p>
<p>Warewulf provides a dracut module to configure the dracut initramfs to
load the container image. This module is available in the
<code class="docutils literal notranslate"><span class="pre">warewulf-dracut</span></code> subpackage, which must be installed in the
container image.</p>
<p>With the <code class="docutils literal notranslate"><span class="pre">warewulf-dracut</span></code> package installed, you can build an
initramfs inside the container.</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>dnf<span class="w"> </span>-y<span class="w"> </span>install<span class="w"> </span>warewulf-dracut
dracut<span class="w"> </span>--force<span class="w"> </span>--no-hostonly<span class="w"> </span>--add<span class="w"> </span>wwinit<span class="w"> </span>--kver<span class="w"> </span><span class="k">$(</span>ls<span class="w"> </span>/lib/modules<span class="w"> </span><span class="p">|</span><span class="w"> </span>head<span class="w"> </span>-n1<span class="k">)</span>
</pre></div>
</div>
<p>Set the node’s iPXE template to <code class="docutils literal notranslate"><span class="pre">dracut</span></code> to direct iPXE to fetch the
node’s initramfs image and boot with dracut semantics, rather than
booting the node image directly.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Warewulf iPXE templates are located at <code class="docutils literal notranslate"><span class="pre">/etc/warewulf/ipxe/</span></code> when
Warewulf is installed via official packages. You can learn more
about how dracut booting works by inspecting its iPXE template at
<code class="docutils literal notranslate"><span class="pre">/etc/warewulf/ipxe/dracut.ipxe</span></code>.</p>
</div>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>wwctl<span class="w"> </span>node<span class="w"> </span><span class="nb">set</span><span class="w"> </span>wwnode1<span class="w"> </span>--ipxe<span class="w"> </span>dracut
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The iPXE template may be set at the node or profile level.</p>
</div>
<p>Alternatively, to direct GRUB to fetch the node’s initramfs image and boot with
dracut semantics, set a <code class="docutils literal notranslate"><span class="pre">GrubMenuEntry</span></code> tag for the node.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Warewulf configures GRUB with a template located at
<code class="docutils literal notranslate"><span class="pre">/etc/warewulf/grub/grub.cfg.ww</span></code>. Inspect the template to learn more about
the dracut booting process.</p>
</div>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>wwctl<span class="w"> </span>node<span class="w"> </span><span class="nb">set</span><span class="w"> </span>wwnode1<span class="w"> </span>--tagadd<span class="w"> </span><span class="nv">GrubMenuEntry</span><span class="o">=</span>dracut
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <code class="docutils literal notranslate"><span class="pre">GrubMenuEntry</span></code> variable may be set at the node or profile level.</p>
</div>
<p>During boot, <code class="docutils literal notranslate"><span class="pre">warewulfd</span></code> will detect and dynamically serve an
initramfs from a node’s container image in much the same way that it
can serve a kernel from a container image. This image is loaded by
iPXE (or GRUB) which directs dracut to fetch the node’s container image
during boot.</p>
<p>The wwinit module provisions to tmpfs. By default, tmpfs is permitted
to use up to 50% of physical memory. This size limit may be adjustd
using the kernel argument <cite>wwinit.tmpfs.size</cite>. (This parameter is
passed to the <cite>size</cite> option during tmpfs mount. See <code class="docutils literal notranslate"><span class="pre">tmpfs(5)</span></code> for
more details.)</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Kernel overrides are not currently fully supported during dracut initramfs boot.</p>
</div>
</section>
</section>


Expand Down
1 change: 1 addition & 0 deletions docs/v4.5.x/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ <h1>User Guide<a class="headerlink" href="#user-guide" title="Link to this headi
<li class="toctree-l1"><a class="reference internal" href="contents/boot-management.html">Boot Management</a><ul>
<li class="toctree-l2"><a class="reference internal" href="contents/boot-management.html#booting-with-ipxe">Booting with iPXE</a></li>
<li class="toctree-l2"><a class="reference internal" href="contents/boot-management.html#booting-with-grub">Booting with GRUB</a></li>
<li class="toctree-l2"><a class="reference internal" href="contents/boot-management.html#booting-with-dracut">Booting with dracut</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="contents/nodeconfig.html">Node Configuration</a><ul>
Expand Down
2 changes: 1 addition & 1 deletion docs/v4.5.x/searchindex.js

Large diffs are not rendered by default.

0 comments on commit 93e79b2

Please sign in to comment.