Commit graph

175 commits

Author SHA1 Message Date
Will Fancher
f8ed5f30c0 nixos/filesystems: Remove default = "auto" from fsType
NixOS has traditionally enabled the `ext` family of file systems by
default. Originally, when switching to systemd initrd, we wanted to
transition to making this explicit so that initrds could be made
without `ext`. The problem is that anyone with `fsType = "auto";` for
an `ext` file system in initrd will fail to boot, which is not really
an acceptable regression as we switch to systemd initrd by default.

By removing `default = "auto"` from `fsType`, we rule out the vast
majority of these regressions as eval errors, since most users of
`fsType = "auto"` for ext file systems are using it because of the
default value.

In hindsight, this is probably what #225352 was really about.
2026-04-05 19:06:28 -04:00
NAHO
a2ed7e8d88
nixos: remove optional builtins prefixes from prelude functions
Remove optional builtins prefixes from prelude functions by running:

    builtins=(
      abort
      baseNameOf
      break
      derivation
      derivationStrict
      dirOf
      false
      fetchGit
      fetchMercurial
      fetchTarball
      fetchTree
      fromTOML
      import
      isNull
      map
      null
      placeholder
      removeAttrs
      scopedImport
      throw
      toString
      true
    )

    fd \
      --exclude doc/manual/release-notes \
      --type file \
      . \
      nixos \
      --exec-batch sed --in-place --regexp-extended "
        s/\<builtins\.($(
          printf '%s\n' "${builtins[@]}" |
            paste --delimiter '|' --serial -
        ))\>/\1/g
      "

    nix fmt
2026-01-15 16:07:55 +01:00
Luna Nova
fb05ac176a nixos/installer/cd-dvd/iso-image: use new combined memtest86plus binary
memtest86plus puts the path to the binary at a passthru attr

after memtest86plus 8 there's a single combined EFI+legacy file
2025-11-27 13:19:24 +03:00
Winter M
dcb0423368 nixos/installer/cd-dvd/iso-image: include memtest86+ in grub menu
We previously only did this for Syslinux, which we don't use on UEFI machines.

Co-authored-by: Lee Bousfield <ljbousfield@gmail.com>
2025-11-04 16:17:52 -05:00
Wolfgang Walther
91a8fee3aa
treewide: remove redundant parentheses
Auto-fixed by nixf-diagnose.
2025-10-05 10:52:03 +02:00
Emily
46aad76001
nixos/iso-image: Support systemd initrd (#291750) 2025-08-10 05:37:48 +01:00
Will Fancher
12d0a6084b
iso-image: ensure boot.loader.grub.enable is disabled by default (#430027) 2025-08-01 22:31:46 -04:00
Will Fancher
db42eeba6b nixos/iso-image: Support systemd initrd 2025-08-01 00:36:44 -04:00
Michael Hoang
7fd3735203 iso-image: ensure boot.loader.grub.enable is disabled by default
We use `mkImageMediaOverride` to ensure that GRUB is actually disabled
if a user enables it using the default priority but still allows them to
enable it using `mkForce`.
2025-08-01 14:30:10 +10:00
Wolfgang Walther
5a0711127c
treewide: run nixfmt 1.0.0 2025-07-24 13:55:40 +02:00
Will Fancher
f2204986a7 nixos/iso-image: Support specialisations. 2025-03-16 01:38:37 -04:00
Will Fancher
8eb8908837 nixos/iso-image: Move alternate boot options to submenus
This will make more sense when specialisations are introduced in the
ISO boot menu

nixos/modules/installer/cd-dvd/iso-image.nix
2025-03-16 01:38:37 -04:00
Will Fancher
3a2e8e97c3 nixos/iso-image: Disable plymouth along with display-manager.service
GNOME in particular just breaks if plymouth isn't disabled, because
GDM takes on the role of quitting plymouth in a GNOME
configuration. But if we're disabling the DM, we should disable
plymouth too anyway.
2025-03-16 01:03:25 -04:00
Will Fancher
bef079a4b9 nixos/iso-image: Remove video= boot entries
These seem largely redundant with the progress that desktop
environments have made since they were introduced.
2025-03-16 01:03:21 -04:00
Will Fancher
da9a092c34 nixos/iso-image.nix: nixfmt 2025-03-16 00:23:46 -04:00
K900
31aa4c5fef nixos/iso-image: fix build 2025-02-21 11:19:14 +03:00
Wolfgang Walther
b19d0f6d3d
treewide: replace substituteAll with replaceVars 2025-02-10 22:51:56 +01:00
phaer
0b162c3dbc iso-image: fix output filename
While switching from isoImage.baseName to the unified image.baseName,
I accidentaly dropped label and system information from the iso filename.

This fixes it by including isoImage.edition in the default baseName for
all our isos. Resulting in filenames such as
`nixos-minimal-25.05beta708350.1d95cb5-x86_64-linux.iso` again instead
of just nixos-minimal.iso.
2025-01-08 14:35:07 +01:00
phaer
a582fba754 installer/iso-image: use system.build.image
and rename:
- isoImage.isoBaseName -> image.baseName
- isoImage.isoName -> image.fileName
2024-12-16 15:35:21 +01:00
Jonathan Ringer
b5168a9900 nixos/iso-image: fix isoImage.grubTheme = null;
Fixes `error: cannot coerce null to a string`
2024-11-26 21:18:21 +02:00
Will Fancher
80ec892b74
Revert "nixos/iso-image: fix isoImage.grubTheme = null; logic" 2024-11-26 07:56:33 -05:00
Artturin
fa4b9638fa
nixos/iso-image: fix isoImage.grubTheme = null; logic (#156754) 2024-11-26 00:39:02 +02:00
Peder Bergebakken Sundt
3100acba08 treewide: \xc2\xa0 ->
I have no idea what this escape sequence even is, but it breaks the nix parser with cryptic errors if not used in a comment.
A friend let me know MacOS is prone to input weird spaces, not sure if that is the source.

Candidates were located and created with:

    chr="$(echo -e '\xc2\xa0')"; rg -F "$chr" -l | xe sd -F "$chr" " "

There are some examples left, most being example output from `tree` in various markdown documents, some patches which we can't really touch, and `pkgs/tools/nix/nixos-render-docs/src/tests/test_commonmark.py` which I'm not sure if should be addressed
2024-10-02 15:33:06 +02:00
Luflosi
d979b45371
nixos/iso-image: avoid collision between GRUB2 versions
4b836fb680 added `pkgs.grub2_efi` to `environment.systemPackages` so that it would be in the Nix store and available for install. But `pkgs.grub2` is already in the list. This causes the various paths of the two GRUB2 versions to collide. To fix this, put `pkgs.grub2_efi` into `system.extraDependencies` instead. This should achieve the same effect of adding the second GRUB2 version to the Nix store without the paths colliding in the environment.

To reproduce the problem, execute `nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/iso-image.nix -A config.system.build.isoImage` and look for messages like
```
warning: collision between `/nix/store/9jk1p9n5dl431lcm4w9p6x6x8a00dm0q-grub-2.12/bin/grub-install' and `/nix/store/809l0i6aydg4zhn3kqf723brjyp2qm8h-grub-2.12/bin/grub-install'
```
2024-09-23 17:59:26 +02:00
Josh Hoffer
6295433b2b installer: only use squashfs threads=multi on supported kernels
The `threads` SquashFS mount option was introduced in Linux 6.2 [1].
Since we still support older kernels and external users of nixpkgs
may reuse the ISO installer modules, this option should be guarded
by a kernel version check.

[1] https://www.kernelconfig.io/config_squashfs_choice_decomp_by_mount?arch=x86&kernelversion=6.10.10
2024-09-18 17:27:20 -07:00
Connor Baker
58a8cfa7da
Faster SquashFS decompression of Nix Store (#341149) 2024-09-16 08:07:40 -07:00
Raito Bezarius
4a94f45bb4 nixos/installer/cd-dvd: use EFI/BOOT and EFI/BOOT/BOOT$ARCH.EFI rather than lowercase
Reported in https://discourse.nixos.org/t/nix-iso-unable-to-boot-in-uefi-mode-but-other-distros-can/16473/24

There seems to be weird situations with casing and FAT8.3 filenames, UEFI firmwares and what not.
To increase our compatibility, let's ensure we have the critical stuff (the bootable) in uppercase.

Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
2024-09-13 04:23:53 -04:00
Josh Hoffer
ff8b2d5162 nixos/iso-image: mount squashfs with threads=multi 2024-09-10 22:01:39 -07:00
Felix Buehler
e3ee1a97d4 nixos/iso-image: remove with lib; 2024-09-10 21:36:16 +02:00
Will Fancher
49192ef7a3 nixos/iso-image: Compress squashfs with zstd 19 2024-08-31 12:21:36 -04:00
stuebinm
6afb255d97 nixos: remove all uses of lib.mdDoc
these changes were generated with nixq 0.0.2, by running

  nixq ">> lib.mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> Inherit >> mdDoc[remove]" --batchmode nixos/**.nix

two mentions of the mdDoc function remain in nixos/, both of which
are inside of comments.

Since lib.mdDoc is already defined as just id, this commit is a no-op as
far as Nix (and the built manual) is concerned.
2024-04-13 10:07:35 -07:00
K900
77536af43b nixos/iso-image: extremely cursed performance optimization for Hydra
Right now the worst case chain of events for building an ISO on Hydra is

    - copy everything to squashfs builder
    - run squashfs builder
    - download squashfs from builder
    - compress squashfs
    - upload squashfs to S3
    - copy squashfs to ISO builder
    - run ISO builder
    - download ISO from builder
    - compress ISO
    - upload ISO to S3

This inlines the squashfs build into the ISO build, which makes it

    - copy everything to ISO builder
    - run ISO builder
    - download ISO from builder
    - compress ISO
    - upload ISO to S3

Which should reduce queue runner load by $alot per ISO, which we have four of on small channels
(one release, one test per arch) and a lot more than four of on large channels (with various desktops)
2024-03-12 15:41:59 +03:00
Cole Mickens
5a718794d0
nixos/lib/make-squashfs.nix: allow disabling compression 2024-01-07 22:46:20 -06:00
Jonathan Ringer
9711af0579
nixos/iso-image: fix isoImage.grubTheme = null; logic 2023-11-23 10:58:17 -08:00
Samuel Dionne-Riel
2de1bd778c nixos/iso-image: Remove leftover false dichotomy between console/serial
Relying on the built-in UEFI console here was already necessary, so we
are losing nothing by removing the needless `serial` call, which hung
some systems.

This also makes the implementation much easier to understand.

Also, no ugly-font menu anymore!
2023-09-06 14:10:09 -04:00
Samuel Dionne-Riel
7fa7158c60 nixos/iso-image: graphicalGrub -> forceTextMode
This helps keep logic simpler, as what we do is forcing text mode, which
means the non-default case is `truthy`, making things easier to digest
in the config file.

Also renaming this option is considered "internal", since it lives only
within the `iso-image` namespace, and also not a breaking change since
it was not part of a stable release.
2023-09-06 14:09:03 -04:00
Samuel Dionne-Riel
07fb2f4a97 nixos/iso-image: Tear down GOP and rely on console for Linux boot
This solves an issue where *some systems* (tested on Steam Deck) the EFI
GOP may be broken during stage-1.
2023-09-06 14:09:02 -04:00
Samuel Dionne-Riel
47ae07a23f nixos/iso-image: Drop all unneeded FS modules
It's not like the iso-image will be anything else than isohybrid
FAT+iso9660...
2023-09-06 14:09:02 -04:00
Samuel Dionne-Riel
d64b03a339 nixos/iso-image: Re-enable graphics mode
Which ***anyway*** was not disabled correctly. Following changes will
actually disable it.

What this did was disable the "themed" menu driver, but still continued
relying on the gfxterm infra, which in itself is why things were ugly
and weird.
2023-09-06 14:09:02 -04:00
Samuel Dionne-Riel
dd936c21d7 nixos/iso-image: Check GRUB config on build 2023-09-06 14:09:02 -04:00
Samuel Dionne-Riel
8623ac4656 nixos/iso-image: Add common display resolutions
Hey, look at that, grub is the correct way around on a Steam Deck!
2023-09-06 14:09:02 -04:00
Samuel Dionne-Riel
080bff8159 nixos/iso-image: Use intrinsic UEFI console for serial output in GRUB
The `serial` console hangs on some systems. Unknown why.

Anyway, the way this worked right now relied on it telling the user on
the UEFI console how to enable it. So if I understand it correctly, it
will not cause any regression there.
2023-09-06 14:09:02 -04:00
Samuel Dionne-Riel
fad94acaa8 nixos/iso-image: Make modules list easier to manage
With a bash array.

This change is morally a no-op.
2023-09-06 14:09:02 -04:00
K900
db9b857e1d nixos/iso-image: fix syntax 2023-07-05 21:49:03 +03:00
lassulus
363c846d77 nixos/iso-image: make graphical grub configurable 2023-06-29 14:35:54 +02:00
Ivan Trubach
c68a5bb85a nixos/iso-image: enable BIOS boot by default if possible
The change introduced in commit e5b072eca1
breaks backwards compatibility for some users, see
e5b072eca1 (commitcomment-113775008)
https://github.com/NixOS/nixpkgs/pull/219351#discussion_r1139773448

This change updates the implementation to enable BIOS boot if possible
for the build and host platforms, and also assert that BIOS boot is not
enabled for non-x86 host platforms.
2023-05-23 04:43:31 +03:00
ners
afdf7705ad nixos/iso-image: add some types 2023-05-22 13:01:56 +02:00
ners
c281a355fe nixos/iso-image: prepend to ISO menu labels 2023-05-22 11:25:00 +02:00
ajs124
30bea8d82d nixos/*: remove boot.grub.version 2023-05-10 21:51:26 +02:00
Alyssa Ross
096cdeeac4
nixos/iso-image: type isoImage.squashfsCompression 2023-05-09 14:15:02 +00:00