The old GRUB menu builder script is quite slow, typically taking
several seconds. This is a real annoyance since it's run every time
you switch to a new configuration. Therefore this patch replaces the
Bash script with a much faster Perl script. In a VirtualBox test, the
execution time went from 2.7s to 0.1s. The Perl version is also more
correct because it uses XML to get the GRUB configuration (through
builtins.toXML), so there are no shell escaping issues.
The new script currently lacks support for subconfigurations defined
through "nesting.children".
cause more problems than expected, so we should probably think about
the proper migration path for a while. In the meantime, of course,
everybody is encouraged to set boot.loader.grub.version = 2.
svn path=/nixos/trunk/; revision=27209
we want to generate the GRUB menu without actually installing GRUB
(because Amazon supplies its own pv-grub), and each menu entry
requires "root (hd0)". For the first, allow boot.loader.grub.device
to be set to "nodev" to indicate that the GRUB menu should be
generated without installing GRUB. For the second, add an option
boot.loader.grub.extraPerEntryConfig to allow commands to be added
to each GRUB menu entry (in this case, "root (hd0)").
svn path=/nixos/trunk/; revision=22712
grub.cfg before the menu entries. (This could also be done using
`extraEntriesBeforeNixOS', but then you can't have entries *after*
the main entry anymore.)
* In the installer test, redirect GRUB output to the serial port.
svn path=/nixos/branches/boot-order/; revision=22300
partition from /. If so, copy the kernels and initrds to /boot and
use paths relative to /boot in the GRUB configuration file. This
makes the boot.loader.grub.bootDevice option obsolete. (Is there a
way to mark obsolete options?) It also makes it unnecessary to set
boot.loader.grub.copyKernels, although that option is still
available since it can speed up GRUB if the Nix store is very
large.
svn path=/nixos/trunk/; revision=18998
GRUB version changes. (That's the complete version from the name
attribute, not the boot.loader.grub.version attribute.) The current
version is recorded in /boot/grub/version. This is required to
prevent massive breakage when we change the default value of
boot.loader.grub.version to "2".
svn path=/nixos/trunk/; revision=18997
is not on the same partition as /boot (i.e. when
boot.loader.grub.bootDevice is set): just copy the background image
and the font to /boot.
svn path=/nixos/trunk/; revision=18979
* Replace an obscure piece of code by its equivalent based on the
recursiveUpdate function. Undefined the obsolete name of
boot.grubDevice to avoid conflicts.
svn path=/nixos/trunk/; revision=18049
* Renamed some of the new Grub options to more sensible names
(e.g. extraGrubEntries to extraEntries, bootMount to bootDevice,
etc.).
svn path=/nixos/trunk/; revision=17494
grub. Its options are no more inside 'boot', but inside 'boot.loader.grub'.
I added a new bootloader configuration for nixos, generationsDir. It creates
/boot/default/{init,initrd,kernel,system} symlinks, and the same for the generations
in /boot/system-$gen/{init,initrd,kernel,system}.
I can program the u-boot loader to load /boot/default files always, and have
a minimal nixos boot loader installer functionality. Additionally, I can refer
to the other system generations easily, with a simple 'ls' in /boot.
svn path=/nixos/trunk/; revision=17460
empty now), do more of bashrc.sh declaratively, and moved nsswitch
generation to modules/config/nsswitch.nix.
svn path=/nixos/branches/modular-nixos/; revision=15754