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
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 '';
48
49 environment.defaultPackages = with pkgs; [
50 rsync
51 ];
52
53 programs.git.enable = lib.mkDefault true;
54
55 system.stateVersion = lib.mkDefault lib.trivial.release;
56}