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
bash doesn't check the exit status of the inner commands. Replace
the $(nix-store -r $(nix-instantiate)) calls with nix-build.
* Some of the diet packages are gone now, use the dietlibc stdenv.
svn path=/nixu/trunk/; revision=6920
situation. I don't know how it will it work with something like dual booting
and chain loading, so that is unsupported right now :P
svn path=/nixu/trunk/; revision=6282
* user is dropped into a shell, where the user can run tools like fdisk to partition a disk
* user needs to add a file called "disklayout" where it specifies SWAP, INSTALLDEVICE and TARGETDRIVE
* depending on the values of these the installscript might need to be fixed to get the GRUB configuration right
It's still somewhat inflexible, but it gives the user a bit more control than the old scheme
svn path=/nixu/trunk/; revision=6271
actually bad, because in theory a different kernel could be chosen to be
installed and then we could not load any modules...but even communism
works...in theory!
svn path=/nixu/trunk/; revision=6068