Installing from Linux: Difference between revisions
imported>Guisanpea m Update to nixos 21.11 |
Phanirithvij (talk | contribs) m change iso url |
||
| (10 intermediate revisions by 6 users not shown) | |||
| Line 1: | Line 1: | ||
You already have a running linux | == Why? == | ||
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:// | # 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 | # 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]] | |||