nixpkgs/test/make-initrd.nix
Eelco Dolstra fff7011066 Purifying the NixOS build stuff.
* make-initrd.nix: builds a initial RAM disk.  The resulting initrd
  will contain just a Nix store containing the specified lists of
  packages, with a symlink `/init' to the actual init program in the
  Nix store.

* make-iso9660-image.nix: builds a bootable ISO image.

* rescue-system.nix: builds a bootable ISO image (using the two
  function above) that boots into a very minimal Linux environment
  containing (at the moment) the dietlibc-based bash and coreutils,
  loaded from the initrd.  Eventually this should become a two-stage
  boot (load kernel modules from the initrd, mount the actual root
  file system (e.g., the installation CD), call the real init).

  The rescue system (probably a misnomer) should become the minimal
  environment necessary for the installer (on CD) and the boot process
  of an installed NixOS (on HD).

svn path=/nixu/trunk/; revision=6926
2006-11-02 17:56:50 +00:00

20 lines
704 B
Nix

# Create an initial ramdisk containing the specified set of packages.
# An initial ramdisk is used during the initial stages of booting a
# Linux system. It is loaded by the boot loader along with the kernel
# image. It's supposed to contain everything (such as kernel modules)
# necessary to allow us to mount the root file system. Once the root
# file system is mounted, the `real' boot script can be called.
#
# An initrd is really just a gzipped cpio archive.
#
# A symlink `/init' is made to the store path passed in the `init'
# argument.
{stdenv, cpio, packages, init}:
stdenv.mkDerivation {
name = "initrd";
builder = ./make-initrd.sh;
buildInputs = [cpio];
inherit packages init;
}