Files
keru/installer-walkthrough.html
T
Astral 4a32fab414
Deploy website to GitHub Pages / deploy (push) Failing after 3s
migrate website from KeruOS web to its own repo
2026-09-01 12:06:36 +02:00

113 lines
5.6 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Installer walkthrough — Keru OS</title>
<meta name="description" content="A detailed walkthrough of the Keru installer: every menu, every choice, the network gate, the stability check, and the build.">
<link rel="stylesheet" href="assets/css/style.css">
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>ける</text></svg>">
</head>
<body>
<nav class="top" data-nav></nav>
<header class="pagehead">
<p class="crumbs"><a href="index.html">home</a> / <a href="install.html">install</a> / walkthrough</p>
<h1>Installer walkthrough</h1>
<p>Every screen, in order, with the logic behind it.</p>
</header>
<section>
<div class="wrap">
<div class="prose">
<h3>0 — Boot</h3>
<p>The live init starts <code>installer/install.sh</code> automatically on the console. If the installer ever exits (say you decline to build), it drops you into an emergency shell rather than stranding you.</p>
<h3>1 — Network gate</h3>
<p>Because the ISO carries only the installer, connectivity is checked first. The probe hits a few hosts (<code>1.1.1.1</code>, <code>github.com</code>) with ping; if ping isn't there, it falls back to a TCP connect via <code>nc</code>.</p>
<div class="terminal">
<div class="tbar"><span class="dot r"></span><span class="dot y"></span><span class="dot g"></span><span class="t">keru@live:~$</span></div>
<pre>[ keru ] network: connected <span class="c">← online, straight to choices</span>
<span class="p">or, if offline:</span>
[ keru ] warning: network: not connected
Connect to the network now (runs nmtui)? [Y/n] <span class="k">y</span>
<span class="p">(nmtui opens; you connect; press ok)</span>
[ keru ] network: connected</pre>
</div>
<p>If you press <kbd>n</kbd> at the prompt, the installer exits with <code>a network connection is required to install Keru</code>. If you run <code>nmtui</code> and don't actually connect, the loop simply asks again — it never fakes success.</p>
<h3>2 — Choose your system</h3>
<p>Each swappable is presented as a numbered menu. Pressing enter keeps the default; typing a number picks the option.</p>
<div class="terminal">
<div class="tbar"><span class="dot r"></span><span class="dot y"></span><span class="dot g"></span><span class="t">keru@live:~$</span></div>
<pre>[ keru ] Keru OS — craft your system
== Init system ==
1) runit
2) s6
3) openrc
4) systemd
5) busybox-init
6) sysvinit
7) dinit
8) shepherd
Select [runit]: </pre>
</div>
<p>The same pattern repeats for C library, filesystem, kernel, privilege elevation, and network tools.</p>
<h3>3 — Stability check</h3>
<p>After the last pick, known-risky combinations are flagged. This is a warning, never a block — the philosophy of <a href="stability.html">stable-on-what's-offered, never-lock-you-out</a>.</p>
<div class="terminal">
<div class="tbar"><span class="dot r"></span><span class="dot y"></span><span class="dot g"></span><span class="t">keru@live:~$</span></div>
<pre>[ keru ] warning: uclibc-ng + runit: not yet proven to build and boot together
[ keru ] warning: this combination is unstable. Keru won't stop you — build at your own risk.</pre>
</div>
<h3>4 — make.conf</h3>
<p>Your selections are written to a profile and shown back to you before anything builds:</p>
<div class="terminal">
<div class="tbar"><span class="dot r"></span><span class="dot y"></span><span class="dot g"></span><span class="t">keru@live:~$</span></div>
<pre>[ keru ] writing /tmp/keru/make.conf
[ keru ] profile complete:
# Generated by keru-install — hand-tune then rebuild if you like.
INIT=runit
LIBC=glibc
TARGET_FS=btrfs
KERNEL=linux
SUDO=doas
NET=nmtui
LICENSE_ACCEPT=(*)
Build now? [y/N] <span class="k">y</span></pre>
</div>
<h3>5 — Build</h3>
<p>Confirming hands the profile to the build pipeline, which runs in three stages:</p>
<ol>
<li><strong>Stage 0 — bootstrap.</strong> <code>binutils</code>, <code>gcc</code>, your chosen <code>libc</code>, then the <code>toolchain</code> package. This is the from-scratch toolchain.</li>
<li><strong>Stage 1 — base system.</strong> The <code>BASE_PACKAGES</code> set from your <code>make.conf</code>.</li>
<li><strong>Stage 2 — the swappables.</strong> Kernel, init, sudo-alternative, and network tools — exactly the ones you picked.</li>
<li><strong>Stage 3 — finalize.</strong> <code>mkfs-root.sh</code> writes the chosen filesystem to the target root.</li>
</ol>
<div class="callout ok"><strong>Result:</strong> a rootfs at <code>/tmp/keru/root</code> matching your profile, ready to boot. Fixed at first boot — the system you designed.</div>
<p><a href="install.html">← Back to install overview</a> · <a href="build-pipeline.html">The build pipeline in full</a></p>
</div>
</div>
</section>
<footer data-footer></footer>
<noscript><div style="text-align:center;padding:16px">See the <a href="sitemap.html">sitemap</a> for all pages.</div></noscript>
<script src="assets/js/include.js" data-base="."></script>
</body>
</html>