nixos/preload: init
[NixPkgs.git] / nixos / modules / installer / cd-dvd / installation-cd-base.nix
blob3f92b779d60a2a92f13cd459f09aa99c80e39c99
1 # This module contains the basic configuration for building a NixOS
2 # installation CD.
4 { config, lib, options, pkgs, ... }:
6 with lib;
9   imports =
10     [ ./iso-image.nix
12       # Profiles of this basic installation CD.
13       ../../profiles/all-hardware.nix
14       ../../profiles/base.nix
15       ../../profiles/installation-device.nix
16     ];
18   # Adds terminus_font for people with HiDPI displays
19   console.packages = options.console.packages.default ++ [ pkgs.terminus_font ];
21   # ISO naming.
22   isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.iso";
24   # EFI booting
25   isoImage.makeEfiBootable = true;
27   # USB booting
28   isoImage.makeUsbBootable = true;
30   # Add Memtest86+ to the CD.
31   boot.loader.grub.memtest86.enable = true;
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 = mkImageMediaOverride [ ];
36   fileSystems = mkImageMediaOverride config.lib.isoFileSystems;
38   boot.postBootCommands = ''
39     for o in $(</proc/cmdline); do
40       case "$o" in
41         live.nixos.passwd=*)
42           set -- $(IFS==; echo $o)
43           echo "nixos:$2" | ${pkgs.shadow}/bin/chpasswd
44           ;;
45       esac
46     done
47   '';
49   system.stateVersion = lib.mkDefault lib.trivial.release;