By generating a version-5 GUID based on $out (which contains
the derivation hash) and preventing isohybrid from overwriting
the GPT table (which already is populated correctly by xorriso).
Tested by:
* booting from USB disk on a UEFI system
* booting from USB disk on a non-UEFI system
* booting from CD on a UEFI system
* booting from CD on a non-UEFI system
* booting from CD on an OSX system
Also tested that "nix-build ./nixos/release-combined.nix -A
nixos.iso_minimal.x86_64-linux -I nixpkgs=~/nixpkgs-r13y --check"
now succeeds.
Fixes#74047
This changes the bootloader for iso generation from Grub to
syslinux. In addition this adds USB booting support, so that
"dd" can be used to burn the generated ISO to USB thumbdrives
instead of needing applications like UnetBootin.
This changes the bootloader for iso generation from Grub to
syslinux. In addition this adds USB booting support, so that
"dd" can be used to burn the generated ISO to USB thumbdrives
instead of needing applications like UnetBootin.
iso-image.nix contains the minimal stuff necessary to build a
bootable ISO image containing the given configuration. The idea is
that this can be customised by providing additional modules, e.g. to
add extra packages to the image.
The ISO image is exported in the configuration attribute
system.build.isoImage. So it can be built as follows:
$ nix-build lib/eval-config.nix \
--arg configuration 'import ./modules/installer/cd-dvd/iso-image.nix' \
-A config.system.build.isoImage
svn path=/nixos/branches/modular-nixos/; revision=15871
* 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