fff7011066
* 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
20 lines
704 B
Nix
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;
|
|
}
|