diff --git a/lib/make-iso9660-image.sh b/lib/make-iso9660-image.sh index d3f220ae4f53..3305b8856e25 100644 --- a/lib/make-iso9660-image.sh +++ b/lib/make-iso9660-image.sh @@ -41,7 +41,7 @@ touch pathlist # Add the individual files. for ((i = 0; i < ${#targets_[@]}; i++)); do stripSlash "${targets_[$i]}" - echo "$res=$(readlink -f ${sources_[$i]})" >> pathlist + echo "$res=${sources_[$i]}" >> pathlist done diff --git a/modules/installer/cd-dvd/iso-image.nix b/modules/installer/cd-dvd/iso-image.nix index bea9da2d03fe..a3bd94805dca 100644 --- a/modules/installer/cd-dvd/iso-image.nix +++ b/modules/installer/cd-dvd/iso-image.nix @@ -132,6 +132,14 @@ in source = pkgs.runCommand "empty" {} "ensureDir $out"; target = "/nix/store"; } + { # Another quick hack: the kernel needs a systemConfig + # parameter in menu.lst, but the system config depends on + # menu.lst. Break the cyclic dependency by having a /system + # symlink on the CD, and having menu.lst refer to /system. + source = pkgs.runCommand "system" {} + "ln -s ${config.system.build.system} $out"; + target = "/system"; + } ]; # The Grub menu. @@ -142,7 +150,7 @@ in chainloader +1 title NixOS Installer / Rescue - kernel /boot/vmlinuz init=${config.system.build.bootStage2} systemConfig=${config.system.build.system} ${toString config.boot.kernelParams} + kernel /boot/vmlinuz init=${config.system.build.bootStage2} systemConfig=/system ${toString config.boot.kernelParams} initrd /boot/initrd '';