Installing from Linux: Difference between revisions

imported>Guisanpea
m Update to nixos 21.11
m change iso url
 
(10 intermediate revisions by 6 users not shown)
Line 1: Line 1:
You already have a running linux with GRUB on your primary partition and you don't want to waste a CD-R?
== Why? ==
Right. We also assume that you have a spare partition where to install NixOS ready.
 
For 'normal' NixOS installations, you'd use the instructions from https://nixos.org/manual/nixos/stable/index.html#sec-installation
 
However, you can install 'directly from Linux' if:
 
* You already have a running linux distro
* You don't want to waste a CD-R (and can't boot from USB)
* You have a spare partition where to install NixOS ready.
 
One method is described in the manual at https://nixos.org/manual/nixos/stable/#sec-installing-from-other-distro. For an alternative method, see below.
 
== How? ==


To simplify, we will be using these abbreviations:
To simplify, we will be using these abbreviations:
Line 18: Line 29:
== Installing through a chroot ==
== Installing through a chroot ==
In this section we will install NixOS by unpacking the ISO and then chrooting into its contents to start the final install.
In this section we will install NixOS by unpacking the ISO and then chrooting into its contents to start the final install.
Note that this may not work on all distributions (eg.  older versions of debian stable).


=== Preparations ===
=== Preparations ===
Line 56: Line 70:
Next we have to edit the target system init script to start a bash session instead of systemd. As that is the last thing the script does, adding an interactive program does not pose a problem.
Next we have to edit the target system init script to start a bash session instead of systemd. As that is the last thing the script does, adding an interactive program does not pose a problem.
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
# sed -i "s,exec systemd,exec /$BASH," $INIT
# sed -i "s,exec /.*systemd,exec /$BASH," $INIT
</syntaxhighlight>
</syntaxhighlight>


Line 80: Line 94:
# (chroot) mount /dev/sda3 /mnt
# (chroot) mount /dev/sda3 /mnt
# (chroot) nixos-generate-config --root /mnt
# (chroot) nixos-generate-config --root /mnt
# (chroot) nano /etc/nixos/configuration.nix
# (chroot) nano /mnt/etc/nixos/configuration.nix
</syntaxhighlight>
</syntaxhighlight>


Line 109: Line 123:


<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
# wget https://d3g5gsiof5omrk.cloudfront.net/nixos/17.03/nixos-17.03.1449.2e983f14f6/nixos-minimal-17.03.1449.2e983f14f6-x86_64-linux.iso # get the latest iso (URL might change!)
# wget https://channels.nixos.org/nixos-24.05/latest-nixos-minimal-x86_64-linux.iso # get the latest iso (URL might change!)
# modprobe loop
# modprobe loop
# mount -o loop nixos-minimal-17.03.1449.2e983f14f6-x86_64-linux.iso ~/inst
# mount -o loop latest-nixos-minimal-x86_64-linux.iso ~/inst
# # mount /dev/sda1 # mount the /boot partition if you have it
# # mount /dev/sda1 # mount the /boot partition if you have it
# cp ~/inst/boot/bzImage /boot/nixos-livecd-bzImage
# cp ~/inst/boot/bzImage /boot/nixos-livecd-bzImage
Line 174: Line 188:
Thats it. Now follow the manual (Alt-F8), mount /dev/sda3 as /mnt, do
Thats it. Now follow the manual (Alt-F8), mount /dev/sda3 as /mnt, do
nixos-option and so on.
nixos-option and so on.
[[Category:Tutorial]]