diff options
author | Shea Levy <shea@shealevy.com> | 2013-11-14 18:18:27 -0500 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2013-11-14 18:18:46 -0500 |
commit | cc69da4314d4f315f5b178f0796efdc80e0141d4 (patch) | |
tree | 1d85514930fa3b1c34db32033dbf2303ac7ebe19 /nixos/modules/installer/cd-dvd/iso-image.nix | |
parent | ac6bc8c990ac8298abd010ed262769bf09616185 (diff) | |
download | nixpkgs-cc69da4314d4f315f5b178f0796efdc80e0141d4.tar nixpkgs-cc69da4314d4f315f5b178f0796efdc80e0141d4.tar.gz nixpkgs-cc69da4314d4f315f5b178f0796efdc80e0141d4.tar.bz2 nixpkgs-cc69da4314d4f315f5b178f0796efdc80e0141d4.tar.lz nixpkgs-cc69da4314d4f315f5b178f0796efdc80e0141d4.tar.xz nixpkgs-cc69da4314d4f315f5b178f0796efdc80e0141d4.tar.zst nixpkgs-cc69da4314d4f315f5b178f0796efdc80e0141d4.zip |
Put /efi and /loader on the main livecd partition for efi booting with unetbootin
Fixes #248, mostly Signed-off-by: Shea Levy <shea@shealevy.com>
Diffstat (limited to 'nixos/modules/installer/cd-dvd/iso-image.nix')
-rw-r--r-- | nixos/modules/installer/cd-dvd/iso-image.nix | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index b803a3f188b..00a9e91c733 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -44,31 +44,29 @@ let # The efi boot image + efiDir = pkgs.runCommand "efi-directory" {} '' + mkdir -p $out/efi/boot + cp -v ${pkgs.gummiboot}/lib/gummiboot/gummiboot${targetArch}.efi $out/efi/boot/boot${targetArch}.efi + mkdir -p $out/loader/entries + echo "title NixOS LiveCD" > $out/loader/entries/nixos-livecd.conf + echo "linux /boot/bzImage" >> $out/loader/entries/nixos-livecd.conf + echo "initrd /boot/initrd" >> $out/loader/entries/nixos-livecd.conf + echo "options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}" >> $out/loader/entries/nixos-livecd.conf + echo "default nixos-livecd" > $out/loader/loader.conf + echo "timeout 5" >> $out/loader/loader.conf + ''; + efiImg = pkgs.runCommand "efi-image_eltorito" { buildInputs = [ pkgs.mtools ]; } '' #Let's hope 10M is enough dd bs=2048 count=5120 if=/dev/zero of="$out" ${pkgs.dosfstools}/sbin/mkfs.vfat "$out" - mmd -i "$out" efi - mmd -i "$out" efi/boot - mmd -i "$out" efi/nixos - mmd -i "$out" loader - mmd -i "$out" loader/entries - mcopy -v -i "$out" \ - ${pkgs.gummiboot}/lib/gummiboot/gummiboot${targetArch}.efi \ - ::efi/boot/boot${targetArch}.efi + mcopy -svi "$out" ${efiDir}/* :: + mmd -i "$out" boot mcopy -v -i "$out" \ - ${config.boot.kernelPackages.kernel}/bzImage ::bzImage + ${config.boot.kernelPackages.kernel}/bzImage ::boot/bzImage mcopy -v -i "$out" \ - ${config.system.build.initialRamdisk}/initrd ::efi/nixos/initrd - echo "title NixOS LiveCD" > boot-params - echo "linux /bzImage" >> boot-params - echo "initrd /efi/nixos/initrd" >> boot-params - echo "options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}" >> boot-params - mcopy -v -i "$out" boot-params ::loader/entries/nixos-livecd.conf - echo "default nixos-livecd" > boot-params - echo "timeout 5" >> boot-params - mcopy -v -i "$out" boot-params ::loader/loader.conf + ${config.system.build.initialRamdisk}/initrd ::boot/initrd ''; targetArch = if pkgs.stdenv.isi686 then @@ -263,6 +261,12 @@ in { source = efiImg; target = "/boot/efi.img"; } + { source = "${efiDir}/efi"; + target = "/efi"; + } + { source = "${efiDir}/loader"; + target = "/loader"; + } ] ++ mapAttrsToList (n: v: { source = v; target = "/boot/${n}"; }) config.boot.loader.grub.extraFiles; # The Grub menu. |