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
48 lines
1 KiB
Nix
48 lines
1 KiB
Nix
rec {
|
|
|
|
pkgs = import ./pkgs/top-level/all-packages.nix {};
|
|
|
|
stdenvLinuxStuff = import ./pkgs/stdenv/linux {
|
|
system = pkgs.stdenv.system;
|
|
allPackages = import ./pkgs/top-level/all-packages.nix;
|
|
};
|
|
|
|
bash = pkgs.bash;
|
|
|
|
|
|
initialRamdisk = import ./make-initrd.nix {
|
|
inherit (pkgs) stdenv cpio;
|
|
packages = [
|
|
stdenvLinuxStuff.staticTools
|
|
];
|
|
init = stdenvLinuxStuff.bootstrapTools.bash;
|
|
};
|
|
|
|
|
|
rescueCD = import ./make-iso9660-image.nix {
|
|
inherit (pkgs) stdenv cdrtools;
|
|
isoName = "nixos.iso";
|
|
|
|
contents = [
|
|
{ source = pkgs.syslinux + "/lib/syslinux/isolinux.bin";
|
|
target = "isolinux/isolinux.bin";
|
|
}
|
|
{ source = ./isolinux.cfg;
|
|
target = "isolinux/isolinux.cfg";
|
|
}
|
|
{ source = pkgs.kernel + "/vmlinuz";
|
|
target = "isolinux/vmlinuz";
|
|
}
|
|
{ source = initialRamdisk + "/initrd";
|
|
#/boot/initrd-2.6.13-15.12-default;
|
|
target = "isolinux/initrd";
|
|
}
|
|
];
|
|
|
|
bootable = true;
|
|
bootImage = "isolinux/isolinux.bin";
|
|
};
|
|
|
|
|
|
}
|