Enable strictDeps on all our toplevel packages #12
							
								
								
									
										62
									
								
								doc/install.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								doc/install.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					# Installing NixOS in a new node
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This article shows the steps to install NixOS in a node following the
 | 
				
			||||||
 | 
					configuration of the repo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Prepare the disk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Create a main partition and label it `nixos` following [the manual][1].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[1]: https://nixos.org/manual/nixos/stable/index.html#sec-installation-manual-partitioning.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					# disk=/dev/sdX
 | 
				
			||||||
 | 
					# parted $disk -- mklabel msdos
 | 
				
			||||||
 | 
					# parted $disk -- mkpart primary 1MB 100%
 | 
				
			||||||
 | 
					# parted $disk -- set 1 boot on
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Then create an etx4 filesystem, labeled `nixos` where the system will be
 | 
				
			||||||
 | 
					installed. **Ensure that no other partition has the same label.**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					# mkfs.ext4 -L nixos "${disk}1"
 | 
				
			||||||
 | 
					# mount ${disk}1 /mnt
 | 
				
			||||||
 | 
					# lsblk -f $disk
 | 
				
			||||||
 | 
					NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
 | 
				
			||||||
 | 
					sdX
 | 
				
			||||||
 | 
					`-sdX1 ext4   nixos 10d73b75-809c-4fa3-b99d-4fab2f0d0d8e /mnt
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Prepare nix and nixos-install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Mount the nix store from the xeon07 node in read-only /nix.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					# mkdir /nix
 | 
				
			||||||
 | 
					# mount -o ro xeon07:/nix /nix
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Get the nix binary and nixos-install tool from xeon07:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					# ssh xeon07 'readlink -f $(which nix)'
 | 
				
			||||||
 | 
					/nix/store/0sxbaj71c4c4n43qhdxm31f56gjalksw-nix-2.13.3/bin/nix
 | 
				
			||||||
 | 
					# ssh xeon07 'readlink -f $(which nixos-install)'
 | 
				
			||||||
 | 
					/nix/store/9yq8ps06ysr2pfiwiij39ny56yk3pdcs-nixos-install/bin/nixos-install
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					And add them to the PATH:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					# export PATH=$PATH:/nix/store/0sxbaj71c4c4n43qhdxm31f56gjalksw-nix-2.13.3/bin
 | 
				
			||||||
 | 
					# export PATH=$PATH:/nix/store/9yq8ps06ysr2pfiwiij39ny56yk3pdcs-nixos-install/bin/
 | 
				
			||||||
 | 
					# nix --version
 | 
				
			||||||
 | 
					nix (Nix) 2.13.3
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Build the nixos kexec image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					# nix build .#nixosConfigurations.xeon02.config.system.build.kexecTree -v
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
@ -1,12 +1,15 @@
 | 
				
			|||||||
{ config, pkgs, modulesPath, lib, ... }:
 | 
					{ config, pkgs, modulesPath, lib, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports = [ ../common/main.nix (modulesPath + "/installer/netboot/netboot-minimal.nix") ];
 | 
					  imports = [
 | 
				
			||||||
 | 
					    #(modulesPath + "/installer/netboot/netboot-minimal.nix")
 | 
				
			||||||
 | 
					    ../common/main.nix
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Select the this using the ID to avoid mismatches
 | 
					  # Select the this using the ID to avoid mismatches
 | 
				
			||||||
  boot.loader.grub.device = "/dev/disk/by-id/wwn-0x55cd2e414d535629";
 | 
					  boot.loader.grub.device = "/dev/disk/by-id/wwn-0x55cd2e414d535629";
 | 
				
			||||||
  #programs.ssh.forwardX11 = false;
 | 
					  #programs.ssh.forwardX11 = false;
 | 
				
			||||||
  programs.ssh.setXAuthLocation = lib.mkForce true;
 | 
					  #programs.ssh.setXAuthLocation = lib.mkForce true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  networking = {
 | 
					  networking = {
 | 
				
			||||||
    hostName = "xeon02";
 | 
					    hostName = "xeon02";
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user