forked from mirrors/nixpkgs
8d092270d2
This changes the bootloader for iso generation from Grub to syslinux. In addition this adds USB booting support, so that "dd" can be used to burn the generated ISO to USB thumbdrives instead of needing applications like UnetBootin.
57 lines
1.6 KiB
Nix
57 lines
1.6 KiB
Nix
# This module contains the basic configuration for building a NixOS
|
|
# installation CD.
|
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
{
|
|
imports =
|
|
[ ./channel.nix
|
|
./iso-image.nix
|
|
|
|
# Profiles of this basic installation CD.
|
|
../../profiles/all-hardware.nix
|
|
../../profiles/base.nix
|
|
../../profiles/installation-device.nix
|
|
];
|
|
|
|
# ISO naming.
|
|
isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixosVersion}-${pkgs.stdenv.system}.iso";
|
|
|
|
isoImage.volumeID = substring 0 11 "NIXOS_ISO";
|
|
|
|
# Make the installer more likely to succeed in low memory
|
|
# environments. The kernel's overcommit heustistics bite us
|
|
# fairly often, preventing processes such as nix-worker or
|
|
# download-using-manifests.pl from forking even if there is
|
|
# plenty of free memory.
|
|
boot.kernel.sysctl."vm.overcommit_memory" = "1";
|
|
|
|
# To speed up installation a little bit, include the complete stdenv
|
|
# in the Nix store on the CD. Archive::Cpio is needed for the
|
|
# initrd builder.
|
|
isoImage.storeContents = [ pkgs.stdenv pkgs.busybox pkgs.perlPackages.ArchiveCpio ];
|
|
|
|
# EFI booting
|
|
isoImage.makeEfiBootable = true;
|
|
|
|
# USB booting
|
|
isoImage.makeUsbBootable = true;
|
|
|
|
# Add Memtest86+ to the CD.
|
|
boot.loader.grub.memtest86.enable = true;
|
|
|
|
# Get a console as soon as the initrd loads fbcon on EFI boot.
|
|
boot.initrd.kernelModules = [ "fbcon" ];
|
|
|
|
# Add support for cow filesystems and their utilities
|
|
boot.supportedFilesystems = [ "zfs" "btrfs" ];
|
|
|
|
# Configure host id for ZFS to work
|
|
networking.hostId = "8425e349";
|
|
|
|
# Allow the user to log in as root without a password.
|
|
users.extraUsers.root.initialHashedPassword = "";
|
|
}
|