mirror of
https://github.com/nix-community/nixos-anywhere.git
synced 2024-09-11 08:35:24 +03:00
deploy: 9caf158d0b
This commit is contained in:
parent
22014eb592
commit
be40bc6e53
@ -1,2 +1,2 @@
|
||||
cp -r /nix/store/dmlq2d0kf1jsmq077jvl7lmg20x61q3y-source/* .
|
||||
cp -r /nix/store/rkmamjwyhjkmwpm6n1b51603j99h37bx-source/* .
|
||||
/nix/store/hrfzqg370iw27fskr9h2lypip815cr55-mdbook-0.4.28/bin/mdbook build --dest-dir "$out"
|
||||
|
2
404.html
2
404.html
@ -84,7 +84,7 @@
|
||||
|
||||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||||
<div class="sidebar-scrollbox">
|
||||
<ol class="chapter"><li class="chapter-item expanded "><a href="introduction.html"><strong aria-hidden="true">1.</strong> Introduction</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.1.</strong> What is nixos-anywhere?</a></li><li class="chapter-item expanded "><a href="quickstart.html"><strong aria-hidden="true">1.2.</strong> Quickstart</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.3.</strong> Getting Started</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.4.</strong> System Requirements</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.5.</strong> Support Matrix</a></li></ol></li><li class="chapter-item expanded "><a href="installation.html"><strong aria-hidden="true">2.</strong> Installation</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.1.</strong> Bare Metal Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.2.</strong> Virtualized Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.3.</strong> Cloud Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.4.</strong> Local Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.5.</strong> Single Board Computers</a></li></ol></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">3.</strong> Avanced Guides</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">4.</strong> Reference</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="cli.html"><strong aria-hidden="true">4.1.</strong> CLI</a></li></ol></li></ol>
|
||||
<ol class="chapter"><li class="chapter-item expanded affix "><a href="quickstart.html">Quickstart</a></li><li class="chapter-item expanded affix "><a href="requirements.html">System Requirements</a></li><li class="chapter-item expanded affix "><a href="howtos.html">How to Guide</a></li><li class="chapter-item expanded affix "><a href="supportmatrix.html">Support Matrix</a></li><li class="chapter-item expanded affix "><a href="reference.html">Reference</a></li></ol>
|
||||
</div>
|
||||
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
||||
</nav>
|
||||
|
6
env-vars
6
env-vars
@ -3,10 +3,10 @@ declare -x HOME="/homeless-shelter"
|
||||
declare -x HOST_PATH="/nix/store/ahkfdxq8mcpsb5kvdvgqr1wv8zjngbh4-coreutils-9.1/bin:/nix/store/4qrbfa42xyicny7vlgbbqxz07kcsjbx2-findutils-4.9.0/bin:/nix/store/6bcqajyagcc4s3azx0zqnb3rqxd7gdnv-diffutils-3.9/bin:/nix/store/gy82r5cf12hgkmhzifsyx3fp6cnf6j2l-gnused-4.9/bin:/nix/store/zrls4w5lxynqakh1jlrp03kg4bxzp9yi-gnugrep-3.7/bin:/nix/store/s3yl3l8na93v53k2cfsyz0jrb50bnk8n-gawk-5.2.1/bin:/nix/store/czy796d2241296bdy45w87cmaiig50zr-gnutar-1.34/bin:/nix/store/hdbb5ayyrz1b5hicbsb4am8vin0xxxg6-gzip-1.12/bin:/nix/store/hd573q7097cxj5q29pnc3z0rvakz7ga3-bzip2-1.0.8-bin/bin:/nix/store/nnis9ph3wj866bbs0lalbf22i5bq8yry-gnumake-4.4.1/bin:/nix/store/rhvbjmcfnkg8i2dxpzr114cp1ws7f667-bash-5.2-p15/bin:/nix/store/x4ckkjsxfl4ihl82v0bzsyxs4ay2d5b5-patch-2.7.6/bin:/nix/store/8xjzmhw6hgqmynb5f1v7aw2lvafij405-xz-5.4.3-bin/bin:/nix/store/lcjsmsxqwd4vkq2wj5mmbyjzny3i6k49-file-5.44/bin"
|
||||
declare -x NIX_BUILD_CORES="2"
|
||||
declare -x NIX_BUILD_TOP="/build"
|
||||
declare -x NIX_CFLAGS_COMPILE=" -frandom-seed=0pglw66az4"
|
||||
declare -x NIX_CFLAGS_COMPILE=" -frandom-seed=sjl7a12fjv"
|
||||
declare -x NIX_ENFORCE_NO_NATIVE="1"
|
||||
declare -x NIX_ENFORCE_PURITY="1"
|
||||
declare -x NIX_LDFLAGS="-rpath /nix/store/0pglw66az4hcl40siqm5l11vx6v5v821-nixos-anywhere-docs/lib64 -rpath /nix/store/0pglw66az4hcl40siqm5l11vx6v5v821-nixos-anywhere-docs/lib "
|
||||
declare -x NIX_LDFLAGS="-rpath /nix/store/sjl7a12fjvni5cxh89day180ajsx706l-nixos-anywhere-docs/lib64 -rpath /nix/store/sjl7a12fjvni5cxh89day180ajsx706l-nixos-anywhere-docs/lib "
|
||||
declare -x NIX_LOG_FD="2"
|
||||
declare -x NIX_SSL_CERT_FILE="/no-cert-file.crt"
|
||||
declare -x NIX_STORE="/nix/store"
|
||||
@ -46,7 +46,7 @@ declare -x enableParallelInstalling="1"
|
||||
declare -x mesonFlags=""
|
||||
declare -x name="nixos-anywhere-docs"
|
||||
declare -x nativeBuildInputs=""
|
||||
declare -x out="/nix/store/0pglw66az4hcl40siqm5l11vx6v5v821-nixos-anywhere-docs"
|
||||
declare -x out="/nix/store/sjl7a12fjvni5cxh89day180ajsx706l-nixos-anywhere-docs"
|
||||
declare -x outputs="out"
|
||||
declare -x passAsFile="buildCommand"
|
||||
declare -x patches=""
|
||||
|
@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<!-- Book generated using mdBook -->
|
||||
<meta charset="UTF-8">
|
||||
<title>Installation - nixos-anywhere - install NixOS everywhere</title>
|
||||
<title>How to Guide - nixos-anywhere - install NixOS everywhere</title>
|
||||
|
||||
|
||||
<!-- Custom HTML head -->
|
||||
@ -83,7 +83,7 @@
|
||||
|
||||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||||
<div class="sidebar-scrollbox">
|
||||
<ol class="chapter"><li class="chapter-item expanded "><a href="introduction.html"><strong aria-hidden="true">1.</strong> Introduction</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.1.</strong> What is nixos-anywhere?</a></li><li class="chapter-item expanded "><a href="quickstart.html"><strong aria-hidden="true">1.2.</strong> Quickstart</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.3.</strong> Getting Started</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.4.</strong> System Requirements</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.5.</strong> Support Matrix</a></li></ol></li><li class="chapter-item expanded "><a href="installation.html" class="active"><strong aria-hidden="true">2.</strong> Installation</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.1.</strong> Bare Metal Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.2.</strong> Virtualized Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.3.</strong> Cloud Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.4.</strong> Local Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.5.</strong> Single Board Computers</a></li></ol></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">3.</strong> Avanced Guides</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">4.</strong> Reference</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="cli.html"><strong aria-hidden="true">4.1.</strong> CLI</a></li></ol></li></ol>
|
||||
<ol class="chapter"><li class="chapter-item expanded affix "><a href="quickstart.html">Quickstart</a></li><li class="chapter-item expanded affix "><a href="requirements.html">System Requirements</a></li><li class="chapter-item expanded affix "><a href="howtos.html" class="active">How to Guide</a></li><li class="chapter-item expanded affix "><a href="supportmatrix.html">Support Matrix</a></li><li class="chapter-item expanded affix "><a href="reference.html">Reference</a></li></ol>
|
||||
</div>
|
||||
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
||||
</nav>
|
||||
@ -144,24 +144,112 @@
|
||||
|
||||
<div id="content" class="content">
|
||||
<main>
|
||||
<h1 id="installation"><a class="header" href="#installation">Installation</a></h1>
|
||||
<h1 id="how-to-guide-nixos-anywhere"><a class="header" href="#how-to-guide-nixos-anywhere">How To Guide: nixos-anywhere</a></h1>
|
||||
<p><strong><em>Install NixOS everywhere via ssh</em></strong></p>
|
||||
<img title="" src="https://raw.githubusercontent.com/numtide/nixos-anywhere/main/docs/logo.png" alt="" width="129">
|
||||
<p><a href="./INDEX.html">Documentation Index</a></p>
|
||||
<h2 id="contents"><a class="header" href="#contents">Contents</a></h2>
|
||||
<p><a href="#installing-on-a-machine-with-no-operating-system">Installing on a machine with no operating system</a></p>
|
||||
<p><a href="#using-your-own-kexec-image">Using your own kexec image</a></p>
|
||||
<p><a href="#using-nixos-anywhere-without-flakes">Using nixos-anywhere without flakes</a></p>
|
||||
<h2 id="installing-on-a-machine-with-no-operating-system"><a class="header" href="#installing-on-a-machine-with-no-operating-system">Installing on a machine with no operating system</a></h2>
|
||||
<p>If your machine doesn't currently have an operating system installed, you can
|
||||
still run <code>nixos-anywhere</code> remotely to automate the install. To do this, you
|
||||
would first need to boot the target machine from the standard NixOS installer.
|
||||
You can either boot from a USB or use <code>netboot</code>.</p>
|
||||
<p>The
|
||||
<a href="https://nixos.org/manual/nixos/stable/index.html#sec-booting-from-usb">NixOS installation guide</a>
|
||||
has detailed instructions on how to boot the installer.</p>
|
||||
<p>When you run <code>nixos-anywhere</code>, it will determine whether a NixOS installer is
|
||||
present by checking whether the <code>/etc/os-release</code> file contains the identifier
|
||||
<code>VARIANT=installer</code>. This identifier is available on releases NixOS 23.05 or
|
||||
later.</p>
|
||||
<p>If an installer is detected, <code>nixos-anywhere</code>will not attempt to <code>kexec</code> into
|
||||
its own image. This is particularly useful for targets that don't have enough
|
||||
RAM for <code>kexec</code> or don't support <code>kexec</code>.</p>
|
||||
<p>NixOS starts an SSH server on the installer by default, but you need to set a
|
||||
password in order to access it. To set a password for the <code>nixos</code> user, run the
|
||||
following command in a terminal on the NixOS machine:</p>
|
||||
<pre><code>passwd
|
||||
</code></pre>
|
||||
<p>If you don't know the IP address of the installer on your network, you can find
|
||||
it by running the following command:</p>
|
||||
<pre><code>$ ip addr
|
||||
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
|
||||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||
inet 127.0.0.1/8 scope host lo
|
||||
valid_lft forever preferred_lft forever
|
||||
inet6 ::1/128 scope host
|
||||
valid_lft forever preferred_lft forever
|
||||
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
|
||||
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
|
||||
altname enp0s3
|
||||
altname ens3
|
||||
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute eth0
|
||||
valid_lft 86385sec preferred_lft 75585sec
|
||||
inet6 fec0::5054:ff:fe12:3456/64 scope site dynamic mngtmpaddr noprefixroute
|
||||
valid_lft 86385sec preferred_lft 14385sec
|
||||
inet6 fe80::5054:ff:fe12:3456/64 scope link
|
||||
valid_lft forever preferred_lft forever
|
||||
</code></pre>
|
||||
<p>This will display the IP addresses assigned to your network interface(s),
|
||||
including the IP address of the installer. In the example output below, the
|
||||
installer's IP addresses are <code>10.0.2.15</code>, <code>fec0::5054:ff:fe12:3456</code>, and
|
||||
<code>fe80::5054:ff:fe12:3456%eth0</code>:</p>
|
||||
<p>To test if you can connect and your password works, you can use the following
|
||||
SSH command (replace the IP address with your own):</p>
|
||||
<pre><code>ssh -v nixos@fec0::5054:ff:fe12:3456
|
||||
</code></pre>
|
||||
<p>You can then use the IP address to run <code>nixos-anywhere</code> like this:</p>
|
||||
<pre><code>nix run github:numtide/nixos-anywhere -- --flake '.#myconfig' nixos@fec0::5054:ff:fe12:3456
|
||||
</code></pre>
|
||||
<p>This example assumes a flake in the curent directory containing a configuration
|
||||
named <code>myconfig</code>.</p>
|
||||
<h2 id="using-your-own-kexec-image"><a class="header" href="#using-your-own-kexec-image">Using your own kexec image</a></h2>
|
||||
<p>By default, <code>nixos-anywhere</code> downloads the kexec image from the
|
||||
<a href="https://github.com/nix-community/nixos-images#kexec-tarballs">NixOS images repository</a>.</p>
|
||||
<p>However, you can provide your own <code>kexec</code> image file if you need to use a
|
||||
different one. This is particularly useful for architectures other than
|
||||
<code>x86_64</code>, since they don't have a pre-build image.</p>
|
||||
<p>To do this, use the <code>--kexec</code> command line switch followed by the path to your
|
||||
image file. The image will be uploaded prior to execution.</p>
|
||||
<p>Here's an example command that demonstrates how to use a custom kexec image with
|
||||
<code>nixos-anywhere</code> for aarch64 instead of the default <code>x86_64</code> architecture:</p>
|
||||
<pre><code>nix run github:numtide/nixos-anywhere -- \
|
||||
--kexec "$(nix build --print-out-paths github:nix-community/nixos-images#packages.aarch64-linux.kexec-installer-noninteractive-nixos-unstable)/nixos-kexec-installer-noninteractive-aarch64-linux.tar.gz" \
|
||||
--flake 'github:your-user/your-repo#your-system' \
|
||||
root@yourip
|
||||
</code></pre>
|
||||
<p>Make sure to replace <code>github:your-user/your-repo#your-system</code> with the
|
||||
appropriate Flake URL representing your NixOS configuration.</p>
|
||||
<p>The example above assumes that your local machine can build for aarch64 in one
|
||||
of the following ways:</p>
|
||||
<ul>
|
||||
<li><a href="#">Bare Metal Platforms</a></li>
|
||||
<li><a href="#">Virtualized Platforms</a></li>
|
||||
<li><a href="#">Cloud Platforms</a></li>
|
||||
<li><a href="#">Local Platforms</a></li>
|
||||
<li><a href="#">Single Board Computers</a></li>
|
||||
<li>
|
||||
<p>Natively</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Through a remote builder</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>By emulating the architecture with qemu using the following NixOS
|
||||
configuration:</p>
|
||||
</li>
|
||||
</ul>
|
||||
<pre><code class="language-nix">{
|
||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
</main>
|
||||
|
||||
<nav class="nav-wrapper" aria-label="Page navigation">
|
||||
<!-- Mobile navigation buttons -->
|
||||
<a rel="prev" href="#.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<a rel="prev" href="requirements.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
|
||||
<a rel="next" href="#.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<a rel="next" href="supportmatrix.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
|
||||
@ -171,11 +259,11 @@
|
||||
</div>
|
||||
|
||||
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
||||
<a rel="prev" href="#.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<a rel="prev" href="requirements.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
|
||||
<a rel="next" href="#.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<a rel="next" href="supportmatrix.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
</nav>
|
157
index.html
157
index.html
@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<!-- Book generated using mdBook -->
|
||||
<meta charset="UTF-8">
|
||||
<title>Introduction - nixos-anywhere - install NixOS everywhere</title>
|
||||
<title>Quickstart - nixos-anywhere - install NixOS everywhere</title>
|
||||
|
||||
|
||||
<!-- Custom HTML head -->
|
||||
@ -83,7 +83,7 @@
|
||||
|
||||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||||
<div class="sidebar-scrollbox">
|
||||
<ol class="chapter"><li class="chapter-item expanded "><a href="introduction.html" class="active"><strong aria-hidden="true">1.</strong> Introduction</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.1.</strong> What is nixos-anywhere?</a></li><li class="chapter-item expanded "><a href="quickstart.html"><strong aria-hidden="true">1.2.</strong> Quickstart</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.3.</strong> Getting Started</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.4.</strong> System Requirements</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.5.</strong> Support Matrix</a></li></ol></li><li class="chapter-item expanded "><a href="installation.html"><strong aria-hidden="true">2.</strong> Installation</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.1.</strong> Bare Metal Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.2.</strong> Virtualized Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.3.</strong> Cloud Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.4.</strong> Local Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.5.</strong> Single Board Computers</a></li></ol></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">3.</strong> Avanced Guides</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">4.</strong> Reference</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="cli.html"><strong aria-hidden="true">4.1.</strong> CLI</a></li></ol></li></ol>
|
||||
<ol class="chapter"><li class="chapter-item expanded affix "><a href="quickstart.html" class="active">Quickstart</a></li><li class="chapter-item expanded affix "><a href="requirements.html">System Requirements</a></li><li class="chapter-item expanded affix "><a href="howtos.html">How to Guide</a></li><li class="chapter-item expanded affix "><a href="supportmatrix.html">Support Matrix</a></li><li class="chapter-item expanded affix "><a href="reference.html">Reference</a></li></ol>
|
||||
</div>
|
||||
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
||||
</nav>
|
||||
@ -144,21 +144,158 @@
|
||||
|
||||
<div id="content" class="content">
|
||||
<main>
|
||||
<h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h1>
|
||||
<h1 id="quickstart-guide-nixos-anywhere"><a class="header" href="#quickstart-guide-nixos-anywhere">Quickstart Guide: nixos-anywhere</a></h1>
|
||||
<p><strong><em>Install NixOS everywhere via ssh</em></strong></p>
|
||||
<img src="https://raw.githubusercontent.com/numtide/nixos-anywhere/main/docs/logo.png" width="150" height="150">
|
||||
<p><a href="./INDEX.html">Documentation Index</a></p>
|
||||
<h2 id="introduction"><a class="header" href="#introduction">Introduction</a></h2>
|
||||
<p>This guide documents a simple installation of NixOS using <strong>nixos-anywhere</strong> on
|
||||
a target machine running x86_64 Linux with
|
||||
<a href="https://man7.org/linux/man-pages/man8/kexec.8.html">kexec</a> support. The example
|
||||
used in this guide installs NixOS on a Hetzner cloud machine. The configuration
|
||||
may be different for some other instances. We will be including further examples
|
||||
in the <a href="./howtos.html">How To Guide</a> as and when they are available.</p>
|
||||
<p>You will need:</p>
|
||||
<ul>
|
||||
<li><a href="#">What is nixos-anywhere?</a></li>
|
||||
<li><a href="#">Quickstart</a></li>
|
||||
<li><a href="#">Getting Started</a></li>
|
||||
<li><a href="#">System Requirements</a></li>
|
||||
<li><a href="#">Support Matrix</a></li>
|
||||
<li>A <a href="https://nixos.wiki/wiki/Flakes">flake</a> that controls the actions to be
|
||||
performed</li>
|
||||
<li>A disk configuration containing details of the file system that will be
|
||||
created on the new server.</li>
|
||||
</ul>
|
||||
<p><strong>nixos-anywhere</strong> doesn’t need to be installed. You can run it directly from
|
||||
<a href="https://github.com/numtide/nixos-anywhere">Numtide's repository on Github.</a></p>
|
||||
<p>Details of the flake, the disk configuration and the CLI command are discussed
|
||||
below.</p>
|
||||
<h2 id="steps-required-to-run-nixos-anywhere"><a class="header" href="#steps-required-to-run-nixos-anywhere">Steps required to run nixos-anywhere</a></h2>
|
||||
<ol>
|
||||
<li>
|
||||
<p>Create a directory for the flake and configuration files, and ensure flakes
|
||||
are enabled on your system. The
|
||||
<a href="https://nixos.wiki/wiki/Flakes#enable-flakes">Nixos Wiki</a> describes how to
|
||||
enable flakes.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>In this directory, run the following command to create a flake.</p>
|
||||
</li>
|
||||
</ol>
|
||||
<pre><code>nix flake init
|
||||
</code></pre>
|
||||
<p>This will create a flake in a file named flake.nix. Edit the flake to suit your
|
||||
requirements. For a minimal installation, you can paste in the contents of the
|
||||
example flake from
|
||||
<a href="https://github.com/numtide/nixos-anywhere-examples/blob/main/flake.nix">here</a>.</p>
|
||||
<p>Lines 29 in the sample file reads:</p>
|
||||
<pre><code># change this to your ssh key
|
||||
"CHANGE"
|
||||
</code></pre>
|
||||
<p>Substitute the text that reads <code>CHANGE</code> with your own SSH key. This is
|
||||
important, otherwise you will not be able to log on to the target machine after
|
||||
NixOS has been installed.</p>
|
||||
<ol start="3">
|
||||
<li>
|
||||
<p>In the same directory, create a file named <code>disk-config.nix</code>. This will be
|
||||
used to specify the disk layout to the <strong>disko</strong> tool, which nixos-anywhere
|
||||
uses to partition, format and mount the disks. Again, for a simple
|
||||
installation you can paste the contents from the example
|
||||
<a href="https://github.com/numtide/nixos-anywhere-examples/blob/main/disk-config.nix">here</a>.
|
||||
This configures a standard GPT (GUID Partition Table) partition compatible
|
||||
with both EFI and BIOS systems, and mounts the disk as <code>/dev/sda</code>. If this
|
||||
doesn’t meet your requirements, choose an example that suits your disk layout
|
||||
from the
|
||||
<a href="https://github.com/nix-community/disko/tree/master/example">disko examples</a>.
|
||||
For more information about this configuration, refer to the
|
||||
<a href="https://github.com/nix-community/disko">disko documentation.</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Run the following command to create the <code>flake.lock</code> file:</p>
|
||||
</li>
|
||||
</ol>
|
||||
<pre><code>nix flake lock
|
||||
</code></pre>
|
||||
<p>Optionally, you can commit these files to a repo such as Github, or you can
|
||||
simply reference your local directory when you run <strong>nixos-anywhere</strong>. This
|
||||
example uses a local directory on the source machine.</p>
|
||||
<ol start="5">
|
||||
<li>
|
||||
<p>On the target machine, make sure you have access as root via ssh by adding
|
||||
your SSH key to the file <code>authorized_keys</code> in the directory <code>/root/.ssh</code></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>You can now run <strong>nixos-anywhere</strong> from the command line as shown below,
|
||||
where:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p><code><path to configuration></code> is the path to the directory or repository
|
||||
containing <code>flake.nix</code> and <code>disk-config.nix</code></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code><configuration name></code> must match the name that immediately follows the
|
||||
text <code>nixosConfigurations.</code> in the flake, as indicated by the comment in
|
||||
the
|
||||
<a href="https://github.com/numtide/nixos-anywhere-examples/blob/main/flake.nix">example</a>).</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code><ip address></code> is the IP address of the target machine.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
<pre><code>nix run github:numtide/nixos-anywhere -- --flake <path to configuration>#<configuration name> root@<ip address>
|
||||
</code></pre>
|
||||
<p>The command would look like this if you had created your files in a directory
|
||||
named <code>/home/mydir/test</code> and the IP address of your target machine is
|
||||
<code>37.27.18.135</code>:</p>
|
||||
<pre><code>nix run github:numtide/nixos-anywhere -- --flake /home/mydir/test#hetzner-cloud root@37.27.18.135
|
||||
</code></pre>
|
||||
<p><strong>nixos-anywhere</strong> will then run, showing various output messages at each stage.
|
||||
It may take some time to complete, depending on Internet speeds. It should
|
||||
finish by showing the messages below before returning to the command prompt.</p>
|
||||
<pre><code>Installation finished. No error reported.
|
||||
Warning: Permanently added '<ip-address>' (ED25519) to the list of known hosts
|
||||
</code></pre>
|
||||
<p>When this happens, the target server will have been overwritten with a new
|
||||
installation of NixOS. Note that the server's public SSH key will have changed.</p>
|
||||
<p>If you have previously accessed this server using SSH, you may see the following
|
||||
message the next time you try to log in to the target.</p>
|
||||
<pre><code> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
|
||||
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
|
||||
It is also possible that a host key has just been changed.
|
||||
The fingerprint for the ED25519 key sent by the remote host is
|
||||
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
|
||||
Please contact your system administrator.
|
||||
Add correct host key in ~/.ssh/known_hosts to get rid of this message.
|
||||
Offending ECDSA key in ~/.ssh/known_hosts:6
|
||||
remove with:
|
||||
ssh-keygen -f ~/.ssh/known_hosts" -R "<ip addrress>"
|
||||
Host key for <ip_address> has changed and you have requested strict checking.
|
||||
Host key verification failed.
|
||||
</code></pre>
|
||||
<p>This is because the <code>known_hosts</code> file in the <code>.ssh</code> directory now contains a
|
||||
mismatch, since the server has been overwritten. To solve this, use a text
|
||||
editor to remove the old entry from the <code>known_hosts</code> file. The next connection
|
||||
attempt will then treat this as a new server.</p>
|
||||
<p>The error message line <code>Offending ECDSA key in ~/.ssh/known_hosts:</code> gives the
|
||||
line number that needs to be removed from the <code>known_hosts</code> file.</p>
|
||||
<p><strong>Note:</strong> If you subsequently make any changes to either the <code>flake.nix</code> or
|
||||
<code>disk-config.nix</code> file, you will need to run the following command in the
|
||||
directory containing the flake to update <code>flake.lock</code> before rerunning
|
||||
<strong>nixos-anywhere</strong>:</p>
|
||||
<pre><code>nix flake update
|
||||
</code></pre>
|
||||
<p>For more information on different use cases of <strong>nixos-anywhere</strong> please refer
|
||||
to the <a href="./howtos.html">How to Guide</a>, and for more technical information and
|
||||
explanation of known error messages, refer to the
|
||||
<a href="./reference.html">Reference Manual</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<nav class="nav-wrapper" aria-label="Page navigation">
|
||||
<!-- Mobile navigation buttons -->
|
||||
|
||||
<a rel="next" href="#.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<a rel="next" href="requirements.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
|
||||
@ -169,7 +306,7 @@
|
||||
|
||||
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
||||
|
||||
<a rel="next" href="#.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<a rel="next" href="requirements.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
</nav>
|
||||
|
246
print.html
246
print.html
@ -84,7 +84,7 @@
|
||||
|
||||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||||
<div class="sidebar-scrollbox">
|
||||
<ol class="chapter"><li class="chapter-item expanded "><a href="introduction.html"><strong aria-hidden="true">1.</strong> Introduction</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.1.</strong> What is nixos-anywhere?</a></li><li class="chapter-item expanded "><a href="quickstart.html"><strong aria-hidden="true">1.2.</strong> Quickstart</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.3.</strong> Getting Started</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.4.</strong> System Requirements</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.5.</strong> Support Matrix</a></li></ol></li><li class="chapter-item expanded "><a href="installation.html"><strong aria-hidden="true">2.</strong> Installation</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.1.</strong> Bare Metal Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.2.</strong> Virtualized Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.3.</strong> Cloud Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.4.</strong> Local Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.5.</strong> Single Board Computers</a></li></ol></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">3.</strong> Avanced Guides</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">4.</strong> Reference</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="cli.html"><strong aria-hidden="true">4.1.</strong> CLI</a></li></ol></li></ol>
|
||||
<ol class="chapter"><li class="chapter-item expanded affix "><a href="quickstart.html">Quickstart</a></li><li class="chapter-item expanded affix "><a href="requirements.html">System Requirements</a></li><li class="chapter-item expanded affix "><a href="howtos.html">How to Guide</a></li><li class="chapter-item expanded affix "><a href="supportmatrix.html">Support Matrix</a></li><li class="chapter-item expanded affix "><a href="reference.html">Reference</a></li></ol>
|
||||
</div>
|
||||
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
||||
</nav>
|
||||
@ -145,19 +145,11 @@
|
||||
|
||||
<div id="content" class="content">
|
||||
<main>
|
||||
<h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h1>
|
||||
<ul>
|
||||
<li><a href="introduction.html#">What is nixos-anywhere?</a></li>
|
||||
<li><a href="introduction.html#">Quickstart</a></li>
|
||||
<li><a href="introduction.html#">Getting Started</a></li>
|
||||
<li><a href="introduction.html#">System Requirements</a></li>
|
||||
<li><a href="introduction.html#">Support Matrix</a></li>
|
||||
</ul>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference"><a class="header" href="#reference">Reference</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="quickstart-guide-nixos-anywhere"><a class="header" href="#quickstart-guide-nixos-anywhere">Quickstart Guide: nixos-anywhere</a></h1>
|
||||
<h1 id="quickstart-guide-nixos-anywhere"><a class="header" href="#quickstart-guide-nixos-anywhere">Quickstart Guide: nixos-anywhere</a></h1>
|
||||
<p><strong><em>Install NixOS everywhere via ssh</em></strong></p>
|
||||
<img src="https://raw.githubusercontent.com/numtide/nixos-anywhere/main/docs/logo.png" width="150" height="150">
|
||||
<h2 id="inroduction"><a class="header" href="#inroduction">Inroduction</a></h2>
|
||||
<p><a href="./INDEX.html">Documentation Index</a></p>
|
||||
<h2 id="introduction"><a class="header" href="#introduction">Introduction</a></h2>
|
||||
<p>This guide documents a simple installation of NixOS using <strong>nixos-anywhere</strong> on
|
||||
a target machine running x86_64 Linux with
|
||||
<a href="https://man7.org/linux/man-pages/man8/kexec.8.html">kexec</a> support. The example
|
||||
@ -209,8 +201,8 @@ installation you can paste the contents from the example
|
||||
<a href="https://github.com/numtide/nixos-anywhere-examples/blob/main/disk-config.nix">here</a>.
|
||||
This configures a standard GPT (GUID Partition Table) partition compatible
|
||||
with both EFI and BIOS systems, and mounts the disk as <code>/dev/sda</code>. If this
|
||||
doesn’t meet your requirements, choose an example that suits your disk
|
||||
layout from the
|
||||
doesn’t meet your requirements, choose an example that suits your disk layout
|
||||
from the
|
||||
<a href="https://github.com/nix-community/disko/tree/master/example">disko examples</a>.
|
||||
For more information about this configuration, refer to the
|
||||
<a href="https://github.com/nix-community/disko">disko documentation.</a></p>
|
||||
@ -298,41 +290,225 @@ directory containing the flake to update <code>flake.lock</code> before rerunnin
|
||||
to the <a href="./howtos.html">How to Guide</a>, and for more technical information and
|
||||
explanation of known error messages, refer to the
|
||||
<a href="./reference.html">Reference Manual</a>.</p>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference-1"><a class="header" href="#reference-1">Reference</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference-2"><a class="header" href="#reference-2">Reference</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference-3"><a class="header" href="#reference-3">Reference</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="installation"><a class="header" href="#installation">Installation</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="system-requirements-nixos-anywhere"><a class="header" href="#system-requirements-nixos-anywhere">System Requirements: nixos-anywhere</a></h1>
|
||||
<p><strong><em>Install NixOS everywhere via ssh</em></strong></p>
|
||||
<img src="https://raw.githubusercontent.com/numtide/nixos-anywhere/main/docs/logo.png" width="150" height="150">
|
||||
<p><a href="./INDEX.html">Documentation Index</a></p>
|
||||
<h2 id="requirements"><a class="header" href="#requirements">Requirements</a></h2>
|
||||
<ul>
|
||||
<li><a href="installation.html#">Bare Metal Platforms</a></li>
|
||||
<li><a href="installation.html#">Virtualized Platforms</a></li>
|
||||
<li><a href="installation.html#">Cloud Platforms</a></li>
|
||||
<li><a href="installation.html#">Local Platforms</a></li>
|
||||
<li><a href="installation.html#">Single Board Computers</a></li>
|
||||
<li>Source Machine:
|
||||
<ul>
|
||||
<li>Can be any Linux or Mac computer with Nix installed, or a NixOS machine.</li>
|
||||
</ul>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference-4"><a class="header" href="#reference-4">Reference</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference-5"><a class="header" href="#reference-5">Reference</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference-6"><a class="header" href="#reference-6">Reference</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference-7"><a class="header" href="#reference-7">Reference</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference-8"><a class="header" href="#reference-8">Reference</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference-9"><a class="header" href="#reference-9">Reference</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference-10"><a class="header" href="#reference-10">Reference</a></h1>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="cli"><a class="header" href="#cli">CLI</a></h1>
|
||||
</li>
|
||||
<li>Destination Machine:
|
||||
<ul>
|
||||
<li>Must be an x86-64 machine unless you are able to supply a <code>kexec</code> image for
|
||||
your CPU type.</li>
|
||||
<li>If you're not using the option to boot from a Nixos installer image, it
|
||||
must:
|
||||
<ul>
|
||||
<li>Be running x86-64 Linux with kexec support . Most x86_64 Linux systems do
|
||||
have kexec support.</li>
|
||||
<li>Have at least 2.5 GB of RAM, excluding swap.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="how-to-guide-nixos-anywhere"><a class="header" href="#how-to-guide-nixos-anywhere">How To Guide: nixos-anywhere</a></h1>
|
||||
<p><strong><em>Install NixOS everywhere via ssh</em></strong></p>
|
||||
<img title="" src="https://raw.githubusercontent.com/numtide/nixos-anywhere/main/docs/logo.png" alt="" width="129">
|
||||
<p><a href="./INDEX.html">Documentation Index</a></p>
|
||||
<h2 id="contents"><a class="header" href="#contents">Contents</a></h2>
|
||||
<p><a href="howtos.html#installing-on-a-machine-with-no-operating-system">Installing on a machine with no operating system</a></p>
|
||||
<p><a href="howtos.html#using-your-own-kexec-image">Using your own kexec image</a></p>
|
||||
<p><a href="howtos.html#using-nixos-anywhere-without-flakes">Using nixos-anywhere without flakes</a></p>
|
||||
<h2 id="installing-on-a-machine-with-no-operating-system"><a class="header" href="#installing-on-a-machine-with-no-operating-system">Installing on a machine with no operating system</a></h2>
|
||||
<p>If your machine doesn't currently have an operating system installed, you can
|
||||
still run <code>nixos-anywhere</code> remotely to automate the install. To do this, you
|
||||
would first need to boot the target machine from the standard NixOS installer.
|
||||
You can either boot from a USB or use <code>netboot</code>.</p>
|
||||
<p>The
|
||||
<a href="https://nixos.org/manual/nixos/stable/index.html#sec-booting-from-usb">NixOS installation guide</a>
|
||||
has detailed instructions on how to boot the installer.</p>
|
||||
<p>When you run <code>nixos-anywhere</code>, it will determine whether a NixOS installer is
|
||||
present by checking whether the <code>/etc/os-release</code> file contains the identifier
|
||||
<code>VARIANT=installer</code>. This identifier is available on releases NixOS 23.05 or
|
||||
later.</p>
|
||||
<p>If an installer is detected, <code>nixos-anywhere</code>will not attempt to <code>kexec</code> into
|
||||
its own image. This is particularly useful for targets that don't have enough
|
||||
RAM for <code>kexec</code> or don't support <code>kexec</code>.</p>
|
||||
<p>NixOS starts an SSH server on the installer by default, but you need to set a
|
||||
password in order to access it. To set a password for the <code>nixos</code> user, run the
|
||||
following command in a terminal on the NixOS machine:</p>
|
||||
<pre><code>passwd
|
||||
</code></pre>
|
||||
<p>If you don't know the IP address of the installer on your network, you can find
|
||||
it by running the following command:</p>
|
||||
<pre><code>$ ip addr
|
||||
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
|
||||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||
inet 127.0.0.1/8 scope host lo
|
||||
valid_lft forever preferred_lft forever
|
||||
inet6 ::1/128 scope host
|
||||
valid_lft forever preferred_lft forever
|
||||
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
|
||||
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
|
||||
altname enp0s3
|
||||
altname ens3
|
||||
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute eth0
|
||||
valid_lft 86385sec preferred_lft 75585sec
|
||||
inet6 fec0::5054:ff:fe12:3456/64 scope site dynamic mngtmpaddr noprefixroute
|
||||
valid_lft 86385sec preferred_lft 14385sec
|
||||
inet6 fe80::5054:ff:fe12:3456/64 scope link
|
||||
valid_lft forever preferred_lft forever
|
||||
</code></pre>
|
||||
<p>This will display the IP addresses assigned to your network interface(s),
|
||||
including the IP address of the installer. In the example output below, the
|
||||
installer's IP addresses are <code>10.0.2.15</code>, <code>fec0::5054:ff:fe12:3456</code>, and
|
||||
<code>fe80::5054:ff:fe12:3456%eth0</code>:</p>
|
||||
<p>To test if you can connect and your password works, you can use the following
|
||||
SSH command (replace the IP address with your own):</p>
|
||||
<pre><code>ssh -v nixos@fec0::5054:ff:fe12:3456
|
||||
</code></pre>
|
||||
<p>You can then use the IP address to run <code>nixos-anywhere</code> like this:</p>
|
||||
<pre><code>nix run github:numtide/nixos-anywhere -- --flake '.#myconfig' nixos@fec0::5054:ff:fe12:3456
|
||||
</code></pre>
|
||||
<p>This example assumes a flake in the curent directory containing a configuration
|
||||
named <code>myconfig</code>.</p>
|
||||
<h2 id="using-your-own-kexec-image"><a class="header" href="#using-your-own-kexec-image">Using your own kexec image</a></h2>
|
||||
<p>By default, <code>nixos-anywhere</code> downloads the kexec image from the
|
||||
<a href="https://github.com/nix-community/nixos-images#kexec-tarballs">NixOS images repository</a>.</p>
|
||||
<p>However, you can provide your own <code>kexec</code> image file if you need to use a
|
||||
different one. This is particularly useful for architectures other than
|
||||
<code>x86_64</code>, since they don't have a pre-build image.</p>
|
||||
<p>To do this, use the <code>--kexec</code> command line switch followed by the path to your
|
||||
image file. The image will be uploaded prior to execution.</p>
|
||||
<p>Here's an example command that demonstrates how to use a custom kexec image with
|
||||
<code>nixos-anywhere</code> for aarch64 instead of the default <code>x86_64</code> architecture:</p>
|
||||
<pre><code>nix run github:numtide/nixos-anywhere -- \
|
||||
--kexec "$(nix build --print-out-paths github:nix-community/nixos-images#packages.aarch64-linux.kexec-installer-noninteractive-nixos-unstable)/nixos-kexec-installer-noninteractive-aarch64-linux.tar.gz" \
|
||||
--flake 'github:your-user/your-repo#your-system' \
|
||||
root@yourip
|
||||
</code></pre>
|
||||
<p>Make sure to replace <code>github:your-user/your-repo#your-system</code> with the
|
||||
appropriate Flake URL representing your NixOS configuration.</p>
|
||||
<p>The example above assumes that your local machine can build for aarch64 in one
|
||||
of the following ways:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>Natively</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Through a remote builder</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>By emulating the architecture with qemu using the following NixOS
|
||||
configuration:</p>
|
||||
</li>
|
||||
</ul>
|
||||
<pre><code class="language-nix">{
|
||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
}
|
||||
</code></pre>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="support-matrix-nixos-anywhere"><a class="header" href="#support-matrix-nixos-anywhere">Support Matrix: nixos-anywhere</a></h1>
|
||||
<p><strong><em>Install NixOS everywhere via ssh</em></strong></p>
|
||||
<img src="https://raw.githubusercontent.com/numtide/nixos-anywhere/main/docs/logo.png" width="150" height="150">
|
||||
<p><a href="./INDEX.html">Documentation Index</a></p>
|
||||
<h2 id="list-of-tested-environments"><a class="header" href="#list-of-tested-environments">List of tested environments</a></h2>
|
||||
<p>We have verified that <strong>nixos-anywhere</strong> runs successfully on the environments
|
||||
listed below.</p>
|
||||
<p><strong>kexec boot:</strong> Indicates whether it can work by using a kexec boot</p>
|
||||
<p><strong>Image boot:</strong> Indicates whether it can work if booted from a NixOS installer</p>
|
||||
<p><strong>Own kexec:</strong> Indicates whether it can work if you supply your own kexec</p>
|
||||
<div class="table-wrapper"><table><thead><tr><th><strong>Platform</strong></th><th><strong>Operating System</strong></th><th>kexec boot</th><th>Image boot</th><th>Own kexec</th></tr></thead><tbody>
|
||||
<tr><td>Hetzner Cloud</td><td>X86-64 Linux</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
<h2 id=""><a class="header" href="#"></a></h2>
|
||||
<div style="break-before: page; page-break-before: always;"></div><h1 id="reference-manual-nixos-anywhere"><a class="header" href="#reference-manual-nixos-anywhere">Reference Manual: nixos-anywhere</a></h1>
|
||||
<p><strong><em>Install NixOS everywhere via ssh</em></strong></p>
|
||||
<img title="" src="https://raw.githubusercontent.com/numtide/nixos-anywhere/main/docs/logo.png" alt="" width="141">
|
||||
<p><a href="./INDEX.html">Documentation Index</a></p>
|
||||
<p>TODO: Populate this guide properly</p>
|
||||
<h2 id="contents-1"><a class="header" href="#contents-1">Contents</a></h2>
|
||||
<p><a href="reference.html#command-line-usage">Command Line Usage</a></p>
|
||||
<p><a href="reference.html#explanation-of-known-error-messages">Explanation of known error messages</a></p>
|
||||
<h2 id="command-line-usage"><a class="header" href="#command-line-usage">Command Line Usage</a></h2>
|
||||
<!-- `$ bash ./src/nixos-anywhere.sh --help` -->
|
||||
<pre><code>Usage: nixos-anywhere [options] ssh-host
|
||||
|
||||
Options:
|
||||
|
||||
* -f, --flake flake
|
||||
set the flake to install the system from
|
||||
* -f, --flake <flake_uri>
|
||||
set the flake to install the system from.
|
||||
* -i <identity_file>
|
||||
selects which SSH private key file to use.
|
||||
* -L, --print-build-logs
|
||||
print full build logs
|
||||
* -s, --store-paths
|
||||
set the store paths to the disko-script and nixos-system directly
|
||||
if this is give, flake is not needed
|
||||
* --no-reboot
|
||||
do not reboot after installation, allowing further customization of the target installation.
|
||||
* --kexec url
|
||||
use another kexec tarball to bootstrap NixOS
|
||||
* --stop-after-disko
|
||||
exit after disko formating, you can then proceed to install manually or some other way
|
||||
* --extra-files files
|
||||
files to copy into the new nixos installation
|
||||
* --disk-encryption-keys remote_path local_path
|
||||
copy the contents of the file or pipe in local_path to remote_path in the installer environment,
|
||||
after kexec but before installation. Can be repeated.
|
||||
* --no-substitute-on-destination
|
||||
disable passing --substitute-on-destination to nix-copy
|
||||
* --debug
|
||||
enable debug output
|
||||
|
||||
* --option KEY VALUE
|
||||
nix option to pass to every nix related command
|
||||
* --from store-uri
|
||||
URL of the source Nix store to copy the nixos and disko closure from
|
||||
* --build-on-remote
|
||||
build the closure on the remote machine instead of locally and copy-closuring it
|
||||
</code></pre>
|
||||
|
||||
<h2 id="explanation-of-known-error-messages"><a class="header" href="#explanation-of-known-error-messages">Explanation of known error messages</a></h2>
|
||||
<p>TODO: Add additional error messages and meanings. Fill in missing explanations</p>
|
||||
<p>This section lists known error messages and their explanations. Some
|
||||
explanations may refer to the following CLI syntax:</p>
|
||||
<p><code>nix run github:numtide/nixos-anywhere -- --flake <path to configuration>#<configuration name> root@<ip address></code></p>
|
||||
<p>This list is not comprehensive. It's possible you may encounter errors that
|
||||
originate from the underlying operating system. These should be documented in
|
||||
the relevant operating system manual.</p>
|
||||
<div class="table-wrapper"><table><thead><tr><th>Id</th><th>Message</th><th>Explanation</th></tr></thead><tbody>
|
||||
<tr><td>1</td><td>Failure unpacking initrd</td><td>You don't have enough RAM to hold <code>kexec</code></td></tr>
|
||||
<tr><td>2</td><td>Flake <flake_url> does not provide attirbute</td><td>The configuration name you specified in your flake URI is not defined as a NixOS configuration in your flake eg if your URI was mydir#myconfig, then myconfig should be included in the flake as <code>nixosConfigurations.myconfig</code></td></tr>
|
||||
<tr><td>3</td><td>Please specify the name of the NixOS configuration to be installed, as a URI fragment in the flake-uri.</td><td>As for error #2</td></tr>
|
||||
<tr><td></td><td>For example, to use the output nixosConfigurations.foo from the flake.nix, append "#foo" to the flake-uri</td><td></td></tr>
|
||||
<tr><td>4</td><td>Retrieving host facts via ssh failed. Check with --debug for the root cause, unless you have done so already</td><td>TODO: Explain</td></tr>
|
||||
<tr><td>5</td><td>ssh-host must be set</td><td><ip_address> has not been supplied</td></tr>
|
||||
<tr><td>6</td><td><disko_script> and <nixos_system> must be existing store-paths</td><td>This occurs if the -s switch has been used to specify the disko script and store path correctly, and the scripts cannot be found at the given URI</td></tr>
|
||||
<tr><td>7</td><td>flake must be set</td><td>This occurs if both the -flake option (use a flake) and the -s option (specify paths directly) have been omitted. Either one or the other must be specified.</td></tr>
|
||||
<tr><td>8</td><td>no tar command found, but required to unpack kexec tarball</td><td>The destination machine does not have a <code>tar</code> command available. This is needed to unpack the <code>kexec</code>.</td></tr>
|
||||
<tr><td>9</td><td>no setsid command found, but required to run the kexec script under a new session</td><td>The destination machine does not have the <code>setsid</code> command available</td></tr>
|
||||
<tr><td>10</td><td>This script requires Linux as the operating system, but got <operating system></td><td>The destination machine is not running Linux</td></tr>
|
||||
<tr><td>11</td><td>The default kexec image only support x86_64 cpus. Checkout https://github.com/numtide/nixos-anywhere/#using-your-own-kexec-image for more information.</td><td>By default, <code>nixos-anywhere</code> uses its own <code>kexec</code> image, which will only run on x86_64 CPUs. For other CPU types, you can use your own <code>kexec</code> image instead. Refer to the <a href="./howtos#using-your-own-kexec-image">How To Guide</a> for instructions.</td></tr>
|
||||
<tr><td>12</td><td>Please specify the name of the NixOS configuration to be installed, as a URI fragment in the flake-uri.</td><td>This is a <code>disko</code> error. As for Error #2</td></tr>
|
||||
<tr><td></td><td>For example, to use the output diskoConfigurations.foo from the flake.nix, append "#foo" to the flake-uri.</td><td></td></tr>
|
||||
<tr><td>13</td><td>mode must be either create, mount or zap_create_mount</td><td>This is a <code>disko</code> error. The <code>disko</code> switches have not been used correctly. This could happen if you supplied your own <code>disko</code> script using the -s option</td></tr>
|
||||
<tr><td>14</td><td>disko config must be an existing file or flake must be set</td><td>This is a <code>disko</code> error. This will happen if the <code>disko.devices</code> entry in your flake doesn't match the name of a file in the same location as your flake.</td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<nav class="nav-wrapper" aria-label="Page navigation">
|
||||
|
@ -83,7 +83,7 @@
|
||||
|
||||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||||
<div class="sidebar-scrollbox">
|
||||
<ol class="chapter"><li class="chapter-item expanded "><a href="introduction.html"><strong aria-hidden="true">1.</strong> Introduction</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.1.</strong> What is nixos-anywhere?</a></li><li class="chapter-item expanded "><a href="quickstart.html" class="active"><strong aria-hidden="true">1.2.</strong> Quickstart</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.3.</strong> Getting Started</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.4.</strong> System Requirements</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.5.</strong> Support Matrix</a></li></ol></li><li class="chapter-item expanded "><a href="installation.html"><strong aria-hidden="true">2.</strong> Installation</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.1.</strong> Bare Metal Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.2.</strong> Virtualized Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.3.</strong> Cloud Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.4.</strong> Local Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.5.</strong> Single Board Computers</a></li></ol></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">3.</strong> Avanced Guides</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">4.</strong> Reference</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="cli.html"><strong aria-hidden="true">4.1.</strong> CLI</a></li></ol></li></ol>
|
||||
<ol class="chapter"><li class="chapter-item expanded affix "><a href="quickstart.html" class="active">Quickstart</a></li><li class="chapter-item expanded affix "><a href="requirements.html">System Requirements</a></li><li class="chapter-item expanded affix "><a href="howtos.html">How to Guide</a></li><li class="chapter-item expanded affix "><a href="supportmatrix.html">Support Matrix</a></li><li class="chapter-item expanded affix "><a href="reference.html">Reference</a></li></ol>
|
||||
</div>
|
||||
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
||||
</nav>
|
||||
@ -147,7 +147,8 @@
|
||||
<h1 id="quickstart-guide-nixos-anywhere"><a class="header" href="#quickstart-guide-nixos-anywhere">Quickstart Guide: nixos-anywhere</a></h1>
|
||||
<p><strong><em>Install NixOS everywhere via ssh</em></strong></p>
|
||||
<img src="https://raw.githubusercontent.com/numtide/nixos-anywhere/main/docs/logo.png" width="150" height="150">
|
||||
<h2 id="inroduction"><a class="header" href="#inroduction">Inroduction</a></h2>
|
||||
<p><a href="./INDEX.html">Documentation Index</a></p>
|
||||
<h2 id="introduction"><a class="header" href="#introduction">Introduction</a></h2>
|
||||
<p>This guide documents a simple installation of NixOS using <strong>nixos-anywhere</strong> on
|
||||
a target machine running x86_64 Linux with
|
||||
<a href="https://man7.org/linux/man-pages/man8/kexec.8.html">kexec</a> support. The example
|
||||
@ -199,8 +200,8 @@ installation you can paste the contents from the example
|
||||
<a href="https://github.com/numtide/nixos-anywhere-examples/blob/main/disk-config.nix">here</a>.
|
||||
This configures a standard GPT (GUID Partition Table) partition compatible
|
||||
with both EFI and BIOS systems, and mounts the disk as <code>/dev/sda</code>. If this
|
||||
doesn’t meet your requirements, choose an example that suits your disk
|
||||
layout from the
|
||||
doesn’t meet your requirements, choose an example that suits your disk layout
|
||||
from the
|
||||
<a href="https://github.com/nix-community/disko/tree/master/example">disko examples</a>.
|
||||
For more information about this configuration, refer to the
|
||||
<a href="https://github.com/nix-community/disko">disko documentation.</a></p>
|
||||
@ -293,11 +294,8 @@ explanation of known error messages, refer to the
|
||||
|
||||
<nav class="nav-wrapper" aria-label="Page navigation">
|
||||
<!-- Mobile navigation buttons -->
|
||||
<a rel="prev" href="#.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
|
||||
<a rel="next" href="#.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<a rel="next" href="requirements.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
|
||||
@ -307,11 +305,8 @@ explanation of known error messages, refer to the
|
||||
</div>
|
||||
|
||||
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
||||
<a rel="prev" href="#.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
|
||||
<a rel="next" href="#.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<a rel="next" href="requirements.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
</nav>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<!-- Book generated using mdBook -->
|
||||
<meta charset="UTF-8">
|
||||
<title>CLI - nixos-anywhere - install NixOS everywhere</title>
|
||||
<title>Reference - nixos-anywhere - install NixOS everywhere</title>
|
||||
|
||||
|
||||
<!-- Custom HTML head -->
|
||||
@ -83,7 +83,7 @@
|
||||
|
||||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||||
<div class="sidebar-scrollbox">
|
||||
<ol class="chapter"><li class="chapter-item expanded "><a href="introduction.html"><strong aria-hidden="true">1.</strong> Introduction</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.1.</strong> What is nixos-anywhere?</a></li><li class="chapter-item expanded "><a href="quickstart.html"><strong aria-hidden="true">1.2.</strong> Quickstart</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.3.</strong> Getting Started</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.4.</strong> System Requirements</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.5.</strong> Support Matrix</a></li></ol></li><li class="chapter-item expanded "><a href="installation.html"><strong aria-hidden="true">2.</strong> Installation</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.1.</strong> Bare Metal Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.2.</strong> Virtualized Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.3.</strong> Cloud Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.4.</strong> Local Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.5.</strong> Single Board Computers</a></li></ol></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">3.</strong> Avanced Guides</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">4.</strong> Reference</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="cli.html" class="active"><strong aria-hidden="true">4.1.</strong> CLI</a></li></ol></li></ol>
|
||||
<ol class="chapter"><li class="chapter-item expanded affix "><a href="quickstart.html">Quickstart</a></li><li class="chapter-item expanded affix "><a href="requirements.html">System Requirements</a></li><li class="chapter-item expanded affix "><a href="howtos.html">How to Guide</a></li><li class="chapter-item expanded affix "><a href="supportmatrix.html">Support Matrix</a></li><li class="chapter-item expanded affix "><a href="reference.html" class="active">Reference</a></li></ol>
|
||||
</div>
|
||||
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
||||
</nav>
|
||||
@ -144,28 +144,87 @@
|
||||
|
||||
<div id="content" class="content">
|
||||
<main>
|
||||
<h1 id="cli"><a class="header" href="#cli">CLI</a></h1>
|
||||
<h1 id="reference-manual-nixos-anywhere"><a class="header" href="#reference-manual-nixos-anywhere">Reference Manual: nixos-anywhere</a></h1>
|
||||
<p><strong><em>Install NixOS everywhere via ssh</em></strong></p>
|
||||
<img title="" src="https://raw.githubusercontent.com/numtide/nixos-anywhere/main/docs/logo.png" alt="" width="141">
|
||||
<p><a href="./INDEX.html">Documentation Index</a></p>
|
||||
<p>TODO: Populate this guide properly</p>
|
||||
<h2 id="contents"><a class="header" href="#contents">Contents</a></h2>
|
||||
<p><a href="#command-line-usage">Command Line Usage</a></p>
|
||||
<p><a href="#explanation-of-known-error-messages">Explanation of known error messages</a></p>
|
||||
<h2 id="command-line-usage"><a class="header" href="#command-line-usage">Command Line Usage</a></h2>
|
||||
<!-- `$ bash ./src/nixos-anywhere.sh --help` -->
|
||||
<pre><code>Usage: nixos-anywhere [options] ssh-host
|
||||
|
||||
Options:
|
||||
|
||||
* -f, --flake flake
|
||||
set the flake to install the system from
|
||||
* -f, --flake <flake_uri>
|
||||
set the flake to install the system from.
|
||||
* -i <identity_file>
|
||||
selects which SSH private key file to use.
|
||||
* -L, --print-build-logs
|
||||
print full build logs
|
||||
* -s, --store-paths
|
||||
set the store paths to the disko-script and nixos-system directly
|
||||
if this is give, flake is not needed
|
||||
* --no-reboot
|
||||
do not reboot after installation, allowing further customization of the target installation.
|
||||
* --kexec url
|
||||
use another kexec tarball to bootstrap NixOS
|
||||
* --stop-after-disko
|
||||
exit after disko formating, you can then proceed to install manually or some other way
|
||||
* --extra-files files
|
||||
files to copy into the new nixos installation
|
||||
* --disk-encryption-keys remote_path local_path
|
||||
copy the contents of the file or pipe in local_path to remote_path in the installer environment,
|
||||
after kexec but before installation. Can be repeated.
|
||||
* --no-substitute-on-destination
|
||||
disable passing --substitute-on-destination to nix-copy
|
||||
* --debug
|
||||
enable debug output
|
||||
|
||||
* --option KEY VALUE
|
||||
nix option to pass to every nix related command
|
||||
* --from store-uri
|
||||
URL of the source Nix store to copy the nixos and disko closure from
|
||||
* --build-on-remote
|
||||
build the closure on the remote machine instead of locally and copy-closuring it
|
||||
</code></pre>
|
||||
|
||||
<h2 id="explanation-of-known-error-messages"><a class="header" href="#explanation-of-known-error-messages">Explanation of known error messages</a></h2>
|
||||
<p>TODO: Add additional error messages and meanings. Fill in missing explanations</p>
|
||||
<p>This section lists known error messages and their explanations. Some
|
||||
explanations may refer to the following CLI syntax:</p>
|
||||
<p><code>nix run github:numtide/nixos-anywhere -- --flake <path to configuration>#<configuration name> root@<ip address></code></p>
|
||||
<p>This list is not comprehensive. It's possible you may encounter errors that
|
||||
originate from the underlying operating system. These should be documented in
|
||||
the relevant operating system manual.</p>
|
||||
<div class="table-wrapper"><table><thead><tr><th>Id</th><th>Message</th><th>Explanation</th></tr></thead><tbody>
|
||||
<tr><td>1</td><td>Failure unpacking initrd</td><td>You don't have enough RAM to hold <code>kexec</code></td></tr>
|
||||
<tr><td>2</td><td>Flake <flake_url> does not provide attirbute</td><td>The configuration name you specified in your flake URI is not defined as a NixOS configuration in your flake eg if your URI was mydir#myconfig, then myconfig should be included in the flake as <code>nixosConfigurations.myconfig</code></td></tr>
|
||||
<tr><td>3</td><td>Please specify the name of the NixOS configuration to be installed, as a URI fragment in the flake-uri.</td><td>As for error #2</td></tr>
|
||||
<tr><td></td><td>For example, to use the output nixosConfigurations.foo from the flake.nix, append "#foo" to the flake-uri</td><td></td></tr>
|
||||
<tr><td>4</td><td>Retrieving host facts via ssh failed. Check with --debug for the root cause, unless you have done so already</td><td>TODO: Explain</td></tr>
|
||||
<tr><td>5</td><td>ssh-host must be set</td><td><ip_address> has not been supplied</td></tr>
|
||||
<tr><td>6</td><td><disko_script> and <nixos_system> must be existing store-paths</td><td>This occurs if the -s switch has been used to specify the disko script and store path correctly, and the scripts cannot be found at the given URI</td></tr>
|
||||
<tr><td>7</td><td>flake must be set</td><td>This occurs if both the -flake option (use a flake) and the -s option (specify paths directly) have been omitted. Either one or the other must be specified.</td></tr>
|
||||
<tr><td>8</td><td>no tar command found, but required to unpack kexec tarball</td><td>The destination machine does not have a <code>tar</code> command available. This is needed to unpack the <code>kexec</code>.</td></tr>
|
||||
<tr><td>9</td><td>no setsid command found, but required to run the kexec script under a new session</td><td>The destination machine does not have the <code>setsid</code> command available</td></tr>
|
||||
<tr><td>10</td><td>This script requires Linux as the operating system, but got <operating system></td><td>The destination machine is not running Linux</td></tr>
|
||||
<tr><td>11</td><td>The default kexec image only support x86_64 cpus. Checkout https://github.com/numtide/nixos-anywhere/#using-your-own-kexec-image for more information.</td><td>By default, <code>nixos-anywhere</code> uses its own <code>kexec</code> image, which will only run on x86_64 CPUs. For other CPU types, you can use your own <code>kexec</code> image instead. Refer to the <a href="./howtos#using-your-own-kexec-image">How To Guide</a> for instructions.</td></tr>
|
||||
<tr><td>12</td><td>Please specify the name of the NixOS configuration to be installed, as a URI fragment in the flake-uri.</td><td>This is a <code>disko</code> error. As for Error #2</td></tr>
|
||||
<tr><td></td><td>For example, to use the output diskoConfigurations.foo from the flake.nix, append "#foo" to the flake-uri.</td><td></td></tr>
|
||||
<tr><td>13</td><td>mode must be either create, mount or zap_create_mount</td><td>This is a <code>disko</code> error. The <code>disko</code> switches have not been used correctly. This could happen if you supplied your own <code>disko</code> script using the -s option</td></tr>
|
||||
<tr><td>14</td><td>disko config must be an existing file or flake must be set</td><td>This is a <code>disko</code> error. This will happen if the <code>disko.devices</code> entry in your flake doesn't match the name of a file in the same location as your flake.</td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<nav class="nav-wrapper" aria-label="Page navigation">
|
||||
<!-- Mobile navigation buttons -->
|
||||
<a rel="prev" href="#.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<a rel="prev" href="supportmatrix.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
|
||||
@ -176,7 +235,7 @@ Options:
|
||||
</div>
|
||||
|
||||
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
||||
<a rel="prev" href="#.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<a rel="prev" href="supportmatrix.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<!-- Book generated using mdBook -->
|
||||
<meta charset="UTF-8">
|
||||
<title>Introduction - nixos-anywhere - install NixOS everywhere</title>
|
||||
<title>System Requirements - nixos-anywhere - install NixOS everywhere</title>
|
||||
|
||||
|
||||
<!-- Custom HTML head -->
|
||||
@ -83,7 +83,7 @@
|
||||
|
||||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||||
<div class="sidebar-scrollbox">
|
||||
<ol class="chapter"><li class="chapter-item expanded "><a href="introduction.html" class="active"><strong aria-hidden="true">1.</strong> Introduction</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.1.</strong> What is nixos-anywhere?</a></li><li class="chapter-item expanded "><a href="quickstart.html"><strong aria-hidden="true">1.2.</strong> Quickstart</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.3.</strong> Getting Started</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.4.</strong> System Requirements</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">1.5.</strong> Support Matrix</a></li></ol></li><li class="chapter-item expanded "><a href="installation.html"><strong aria-hidden="true">2.</strong> Installation</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.1.</strong> Bare Metal Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.2.</strong> Virtualized Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.3.</strong> Cloud Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.4.</strong> Local Platforms</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">2.5.</strong> Single Board Computers</a></li></ol></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">3.</strong> Avanced Guides</a></li><li class="chapter-item expanded "><a href="#.html"><strong aria-hidden="true">4.</strong> Reference</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="cli.html"><strong aria-hidden="true">4.1.</strong> CLI</a></li></ol></li></ol>
|
||||
<ol class="chapter"><li class="chapter-item expanded affix "><a href="quickstart.html">Quickstart</a></li><li class="chapter-item expanded affix "><a href="requirements.html" class="active">System Requirements</a></li><li class="chapter-item expanded affix "><a href="howtos.html">How to Guide</a></li><li class="chapter-item expanded affix "><a href="supportmatrix.html">Support Matrix</a></li><li class="chapter-item expanded affix "><a href="reference.html">Reference</a></li></ol>
|
||||
</div>
|
||||
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
||||
</nav>
|
||||
@ -144,21 +144,42 @@
|
||||
|
||||
<div id="content" class="content">
|
||||
<main>
|
||||
<h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h1>
|
||||
<h1 id="system-requirements-nixos-anywhere"><a class="header" href="#system-requirements-nixos-anywhere">System Requirements: nixos-anywhere</a></h1>
|
||||
<p><strong><em>Install NixOS everywhere via ssh</em></strong></p>
|
||||
<img src="https://raw.githubusercontent.com/numtide/nixos-anywhere/main/docs/logo.png" width="150" height="150">
|
||||
<p><a href="./INDEX.html">Documentation Index</a></p>
|
||||
<h2 id="requirements"><a class="header" href="#requirements">Requirements</a></h2>
|
||||
<ul>
|
||||
<li><a href="#">What is nixos-anywhere?</a></li>
|
||||
<li><a href="#">Quickstart</a></li>
|
||||
<li><a href="#">Getting Started</a></li>
|
||||
<li><a href="#">System Requirements</a></li>
|
||||
<li><a href="#">Support Matrix</a></li>
|
||||
<li>Source Machine:
|
||||
<ul>
|
||||
<li>Can be any Linux or Mac computer with Nix installed, or a NixOS machine.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Destination Machine:
|
||||
<ul>
|
||||
<li>Must be an x86-64 machine unless you are able to supply a <code>kexec</code> image for
|
||||
your CPU type.</li>
|
||||
<li>If you're not using the option to boot from a Nixos installer image, it
|
||||
must:
|
||||
<ul>
|
||||
<li>Be running x86-64 Linux with kexec support . Most x86_64 Linux systems do
|
||||
have kexec support.</li>
|
||||
<li>Have at least 2.5 GB of RAM, excluding swap.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</main>
|
||||
|
||||
<nav class="nav-wrapper" aria-label="Page navigation">
|
||||
<!-- Mobile navigation buttons -->
|
||||
<a rel="prev" href="quickstart.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
|
||||
<a rel="next" href="#.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<a rel="next" href="howtos.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
|
||||
@ -168,8 +189,11 @@
|
||||
</div>
|
||||
|
||||
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
||||
<a rel="prev" href="quickstart.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
|
||||
<a rel="next" href="#.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<a rel="next" href="howtos.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
</nav>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<!-- Book generated using mdBook -->
|
||||
<meta charset="UTF-8">
|
||||
<title>Reference - nixos-anywhere - install NixOS everywhere</title>
|
||||
<title>Support Matrix - nixos-anywhere - install NixOS everywhere</title>
|
||||
|
||||
|
||||
<!-- Custom HTML head -->
|
||||
@ -83,7 +83,7 @@
|
||||
|
||||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||||
<div class="sidebar-scrollbox">
|
||||
<ol class="chapter"><li class="chapter-item expanded "><a href="introduction.html"><strong aria-hidden="true">1.</strong> Introduction</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html" class="active"><strong aria-hidden="true">1.1.</strong> What is nixos-anywhere?</a></li><li class="chapter-item expanded "><a href="quickstart.html"><strong aria-hidden="true">1.2.</strong> Quickstart</a></li><li class="chapter-item expanded "><a href="#.html" class="active"><strong aria-hidden="true">1.3.</strong> Getting Started</a></li><li class="chapter-item expanded "><a href="#.html" class="active"><strong aria-hidden="true">1.4.</strong> System Requirements</a></li><li class="chapter-item expanded "><a href="#.html" class="active"><strong aria-hidden="true">1.5.</strong> Support Matrix</a></li></ol></li><li class="chapter-item expanded "><a href="installation.html"><strong aria-hidden="true">2.</strong> Installation</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="#.html" class="active"><strong aria-hidden="true">2.1.</strong> Bare Metal Platforms</a></li><li class="chapter-item expanded "><a href="#.html" class="active"><strong aria-hidden="true">2.2.</strong> Virtualized Platforms</a></li><li class="chapter-item expanded "><a href="#.html" class="active"><strong aria-hidden="true">2.3.</strong> Cloud Platforms</a></li><li class="chapter-item expanded "><a href="#.html" class="active"><strong aria-hidden="true">2.4.</strong> Local Platforms</a></li><li class="chapter-item expanded "><a href="#.html" class="active"><strong aria-hidden="true">2.5.</strong> Single Board Computers</a></li></ol></li><li class="chapter-item expanded "><a href="#.html" class="active"><strong aria-hidden="true">3.</strong> Avanced Guides</a></li><li class="chapter-item expanded "><a href="#.html" class="active"><strong aria-hidden="true">4.</strong> Reference</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="cli.html"><strong aria-hidden="true">4.1.</strong> CLI</a></li></ol></li></ol>
|
||||
<ol class="chapter"><li class="chapter-item expanded affix "><a href="quickstart.html">Quickstart</a></li><li class="chapter-item expanded affix "><a href="requirements.html">System Requirements</a></li><li class="chapter-item expanded affix "><a href="howtos.html">How to Guide</a></li><li class="chapter-item expanded affix "><a href="supportmatrix.html" class="active">Support Matrix</a></li><li class="chapter-item expanded affix "><a href="reference.html">Reference</a></li></ol>
|
||||
</div>
|
||||
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
||||
</nav>
|
||||
@ -144,17 +144,37 @@
|
||||
|
||||
<div id="content" class="content">
|
||||
<main>
|
||||
<h1 id="reference"><a class="header" href="#reference">Reference</a></h1>
|
||||
<h1 id="support-matrix-nixos-anywhere"><a class="header" href="#support-matrix-nixos-anywhere">Support Matrix: nixos-anywhere</a></h1>
|
||||
<p><strong><em>Install NixOS everywhere via ssh</em></strong></p>
|
||||
<img src="https://raw.githubusercontent.com/numtide/nixos-anywhere/main/docs/logo.png" width="150" height="150">
|
||||
<p><a href="./INDEX.html">Documentation Index</a></p>
|
||||
<h2 id="list-of-tested-environments"><a class="header" href="#list-of-tested-environments">List of tested environments</a></h2>
|
||||
<p>We have verified that <strong>nixos-anywhere</strong> runs successfully on the environments
|
||||
listed below.</p>
|
||||
<p><strong>kexec boot:</strong> Indicates whether it can work by using a kexec boot</p>
|
||||
<p><strong>Image boot:</strong> Indicates whether it can work if booted from a NixOS installer</p>
|
||||
<p><strong>Own kexec:</strong> Indicates whether it can work if you supply your own kexec</p>
|
||||
<div class="table-wrapper"><table><thead><tr><th><strong>Platform</strong></th><th><strong>Operating System</strong></th><th>kexec boot</th><th>Image boot</th><th>Own kexec</th></tr></thead><tbody>
|
||||
<tr><td>Hetzner Cloud</td><td>X86-64 Linux</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
<h2 id=""><a class="header" href="#"></a></h2>
|
||||
|
||||
</main>
|
||||
|
||||
<nav class="nav-wrapper" aria-label="Page navigation">
|
||||
<!-- Mobile navigation buttons -->
|
||||
<a rel="prev" href="introduction.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<a rel="prev" href="howtos.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
|
||||
<a rel="next" href="quickstart.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<a rel="next" href="reference.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
|
||||
@ -164,11 +184,11 @@
|
||||
</div>
|
||||
|
||||
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
||||
<a rel="prev" href="introduction.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<a rel="prev" href="howtos.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
|
||||
<a rel="next" href="quickstart.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<a rel="next" href="reference.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
</nav>
|
Loading…
Reference in New Issue
Block a user