diff --git a/installer/grub-menu-builder.sh b/installer/grub-menu-builder.sh index a1afcf63bf2..7e1e6b4cad1 100644 --- a/installer/grub-menu-builder.sh +++ b/installer/grub-menu-builder.sh @@ -24,6 +24,7 @@ GRUBEND addEntry() { local name="$1" local path="$2" + local shortSuffix="$3" if ! test -e $path/kernel -a -e $path/initrd; then return @@ -46,6 +47,13 @@ addEntry() { initrd=$initrd2 fi + local confName=$(if test -e $path/configuration-name; then + cat $path/configuration-name; + fi); + if test -n "$confName" ; then + name="$confName $3"; + fi; + cat >> $tmp << GRUBEND title $name kernel $kernel systemConfig=$(readlink -f $path) init=$(readlink -f $path/init) $(cat $path/kernel-params) @@ -61,7 +69,7 @@ fi if test -n "$tmp"; then - addEntry "NixOS - Default" $default + addEntry "NixOS - Default" $default "" fi @@ -82,7 +90,7 @@ for generation in $( echo $generation link=/nix/var/nix/profiles/system-$generation-link date=$(stat --printf="%y\n" $link | sed 's/\..*//') - addEntry "NixOS - Configuration $generation ($date)" $link + addEntry "NixOS - Configuration $generation ($date)" $link "$generation ($date)" done diff --git a/system/options.nix b/system/options.nix index 8c276ae24cf..2379fa0aaf0 100644 --- a/system/options.nix +++ b/system/options.nix @@ -66,6 +66,15 @@ "; } + { + name = ["boot" "configurationName"]; + default = ""; + example = "Stable 2.6.21"; + description = " + Grub entry name instead of default. + "; + } + { name = ["boot" "kernelParams"]; default = [ diff --git a/system/system.nix b/system/system.nix index 75630e44777..a5a44f04015 100644 --- a/system/system.nix +++ b/system/system.nix @@ -327,6 +327,7 @@ rec { pkgs.diffutils pkgs.upstart # for initctl ]; + configurationName = config.get ["boot" "configurationName"]; }; diff --git a/system/system.sh b/system/system.sh index 321260777e3..0df4273e5a2 100644 --- a/system/system.sh +++ b/system/system.sh @@ -11,6 +11,7 @@ ln -s $etc/etc $out/etc ln -s $systemPath $out/sw echo "$kernelParams" > $out/kernel-params +echo "$configurationName" > $out/configuration-name cat > $out/menu.lst << GRUBEND kernel $kernel init=$bootStage2 $kernelParams