more-or-less "asynchronous" booting: the login prompt appears almost
immediately, before the hardware and the network are started.
svn path=/nixu/trunk/; revision=7082
boots into stage 1 (kernel+initrd) succesfully.
`system-configuration.nix' contains the definition of the
configuration to be installed. The attribute systemConfiguration is
installed into the profile /nix/var/nix/profiles/system. Then the
program /nix/var/nix/profiles/system/bin/switch-to-configuration is
called to finalise the installation. This program (generated by
system-configuration.sh) installs Grub on the drive with a menu that
contains the entry for the desired kernel and initrd.
In principle this allows us to do rollbacks to previous system
configurations by doing `nix-env --rollback' and then calling
switch-to-configuration to update Grub. Ideally this should be done
in a single command (and we should consider the obvious risk of
garbage collecting the current kernel etc. to which the current Grub
menu points...).
Maybe the responsibility for generating the Grub menu should be
placed somewhere else. For instance, we could generate a Grub menu
automatically out of all the generations in the `system' profile.
svn path=/nixu/trunk/; revision=7009
built in the target Nix store and installed in the "system" user
environment. Not quite sure what should go in there, but probably
the kernel, initrd, the boot scripts and eventually the system
services. Maybe grub as well.
svn path=/nixu/trunk/; revision=6993
to /).
* Stage 2: use sysvinit to create a bunch of mingetty's on virtual
consoles 1-6. Show a nice welcoming message. Start syslogd and log
everything to tty10.
svn path=/nixu/trunk/; revision=6963
(and nuke its references so that we don't get glibc etc.). The
initrd is now 3.2 MB (and that includes the entire staticTools from
the stdenv bootstrap, most of which we don't actually need).
svn path=/nixu/trunk/; revision=6942
`modules-closure.nix' produces a module tree in
$out/lib/modules/VERSION that contains only the modules identified
by `rootModules', plus their dependencies. It also generates an
appropriate modules.dep. This is useful for initrds, as we
obviously don't want a copy of the entire kernel module tree in the
initial RAM disk.
svn path=/nixu/trunk/; revision=6939
* 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