Difference between revisions of "Move Nix Store to new partition"

From NixOS Wiki
Jump to: navigation, search
Line 1: Line 1:
 
The tutorial will teach you how to relocate `/nix` to a new
 
The tutorial will teach you how to relocate `/nix` to a new
device.
+
device on non `NixOS` Hosts. A summery of how this could be done on nixOS is below
 +
'''This has not been tested on NixOS'''  but there may still be a way:
 +
 
 +
 
 +
 
 +
= On *BSD/Linux Host =
  
 
The device that /nix is on has no more space
 
The device that /nix is on has no more space
Line 41: Line 46:
 
     $ sudo systemctl start nix-daemon.service
 
     $ sudo systemctl start nix-daemon.service
  
 +
= NixOS =
 +
 +
Add [https://github.com/cleverca22/nixos-configs/blob/master/rescue_boot.nix rescue-boot.nix] to your imports section.
 +
 +
nixos-rebuild (and pray you have ~300mb free on /boot/)
 +
 +
run the installer from grub at any time.
 +
 +
adjust your configuration.nix so it expects /nix to be at the new place, and nixos-rebuild boot, so it doesnt break  after you move it
 +
 +
Now reboot and move it.
  
 
[[Category:Tutorial]]
 
[[Category:Tutorial]]
 
[[Category:NixOS]]
 
[[Category:NixOS]]

Revision as of 21:47, 8 February 2019

The tutorial will teach you how to relocate `/nix` to a new device on non `NixOS` Hosts. A summery of how this could be done on nixOS is below This has not been tested on NixOS but there may still be a way:


On *BSD/Linux Host

The device that /nix is on has no more space

   $ du -h
   Filesystem      Size  Used Avail Use% Mounted on
   /dev/sda1       182G  180G    2G  99% /

Stop nix daemon

   $ sudo systemctl stop nix-daemon.service

Move backup /nix; mv /nix to /nix.bak

   $ ls -alF /nix
   total 1068
   drwxr-xr-x    4 root root      4096 Jan 22 02:43 ./
   drwxr-xr-x   26 root root      4096 Feb  8 12:17 ../
   drwxrwxr-t 1555 root nixbld 1077248 Feb  8 12:05 store/
   drwxr-xr-x    4 root root      4096 Jan 22 02:43 var/
   $ cd /
   $ tar -afp /nix.tgz /nix /nix.bak
   $ sudo mv /nix /nix.bak # incase something goes horribly wrong

Mount new device. You will need to add this device to `/etc/fstab`

   $ mount /nix
   $ du -h
   Filesystem      Size  Used Avail Use% Mounted on
   /dev/sdb1       300G    0G  300G   0% /nix

Restore /nix from /nix.tgz; verify contents

   $ cd /
   $ sudo tar -xf /nix.tgz 
   $ nix-store --verify --check-contents

Start up nixdaemon

   $ sudo systemctl start nix-daemon.service

NixOS

Add rescue-boot.nix to your imports section.

nixos-rebuild (and pray you have ~300mb free on /boot/)

run the installer from grub at any time.

adjust your configuration.nix so it expects /nix to be at the new place, and nixos-rebuild boot, so it doesnt break after you move it

Now reboot and move it.