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.
thanks to unionfs. For instance, nix-env and nixos-rebuild work.
The tricky part was to build a Nix database (in the tmpfs/unionfs)
which is now necessary to prevent store paths on the CD from being
deleted right away because they otherwise wouldn't be valid.
* nixos-install: use the /etc/nixos/configuration.nix from the target
file system (don't copy it anymore). Since the user is supposed to
mount the target file system on /mnt anyway, we may as well require
that configuration.nix is placed in /mnt/etc/nixos. This also makes
upgrading / reinstalling much easier, since it will automatically
use the right configuration.nix.
svn path=/nixos/trunk/; revision=10399
appear writable (though all writes go to a tmpfs). This allows you
to run Nix operations on the Live CD. However, we're not quite
there yet since the CD doesn't have a valid Nix database. So for
instance a garbage collect will cause everything to be deleted,
hanging the system.
svn path=/nixos/trunk/; revision=10276
* 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