at master 1.4 kB view raw
1# This module contains the basic configuration for building a NixOS 2# installation CD. 3{ 4 config, 5 lib, 6 options, 7 pkgs, 8 ... 9}: 10{ 11 imports = [ 12 ./iso-image.nix 13 14 # Profiles of this basic installation CD. 15 ../../profiles/base.nix 16 ../../profiles/installation-device.nix 17 ]; 18 19 hardware.enableAllHardware = true; 20 21 # Adds terminus_font for people with HiDPI displays 22 console.packages = options.console.packages.default ++ [ pkgs.terminus_font ]; 23 24 # EFI booting 25 isoImage.makeEfiBootable = true; 26 27 # USB booting 28 isoImage.makeUsbBootable = true; 29 30 # Add Memtest86+ to the CD. 31 boot.loader.grub.memtest86.enable = true; 32 33 # An installation media cannot tolerate a host config defined file 34 # system layout on a fresh machine, before it has been formatted. 35 swapDevices = lib.mkImageMediaOverride [ ]; 36 fileSystems = lib.mkImageMediaOverride config.lib.isoFileSystems; 37 boot.initrd.luks.devices = lib.mkImageMediaOverride { }; 38 39 boot.postBootCommands = '' 40 for o in $(</proc/cmdline); do 41 case "$o" in 42 live.nixos.passwd=*) 43 set -- $(IFS==; echo $o) 44 echo "nixos:$2" | ${pkgs.shadow}/bin/chpasswd 45 ;; 46 esac 47 done 48 ''; 49 50 environment.defaultPackages = with pkgs; [ 51 rsync 52 ]; 53 54 programs.git.enable = lib.mkDefault true; 55 56 system.stateVersion = lib.mkDefault lib.trivial.release; 57}