Commit Graph

1120 Commits

Author SHA1 Message Date
Pol Dellaiera
17b46c61f3
Merge pull request #246746 from mode89/fix/nixos-install-with-non-empty-mnt
nixos-install: fix removal of non-empty `/mnt`
2023-08-02 18:41:46 +02:00
Andrey Krainyak
d61cc625fa
nixos-install: fix removal of non-empty /mnt
After building the target system, `nixos-install` tries to remove `/mnt`
on the target filesystem. And the script may fail without any explanation,
if `/mnt` isn't empty.

This commit makes the installation process carry on even if there are
files under `/mnt`.

See https://github.com/NixOS/nixpkgs/issues/244643.
2023-08-02 16:37:22 +08:00
Bjørn Forsman
a7da3eacaf nixos-generate-config: add 'lib' arg to configuration.nix
Although 'lib' isn't needed by the default configuration, new NixOS uses
can get confused when being recommended configuration.nix snippets like

  systemd.services.NetworkManager-wait-online.enable = lib.mkForce false;

and have `sudo nixos-rebuild switch` fail with

  error: undefined variable 'lib'
2023-07-21 13:53:33 +02:00
Will Fancher
11fec97761
Merge pull request #183314 from DeterminateSystems/optional-swraid
Make swraid optional
2023-07-13 16:24:34 -04:00
Felix Buehler
bec27fabee treewide: use lib.optional instead of 'then []' 2023-07-12 09:36:28 +01:00
Sandro
f57af4cd1e
Merge pull request #237442 from SuperSandro2000/nixos-option
nixos-option: update to nix 2.15
2023-07-12 00:14:53 +02:00
Sandro Jäckel
49d0af0f1e
nixos/tools: remove nixos-option condition 2023-07-11 17:13:21 +02:00
Linus Heckemann
c0f963a338 boot.initrd.services.swraid -> boot.swraid
Since the option affects both stage-1 and stage-2, it does not make
sense to keep it within the boot.initrd namespace.
2023-07-10 20:20:08 +02:00
Linus Heckemann
0b277bcc2b nixos/swraid: make entire module optional
swraid support will now only be enabled by default if stateVersion is
older than 23.11. nixos-generate-config will now generate explicit
config for enabling support if needed.
2023-07-10 16:39:35 +02:00
K900
db9b857e1d nixos/iso-image: fix syntax 2023-07-05 21:49:03 +03:00
lassulus
e4f361f352 installation-cd: enable graphicalGrub 2023-06-29 14:35:54 +02:00
lassulus
363c846d77 nixos/iso-image: make graphical grub configurable 2023-06-29 14:35:54 +02:00
Robert Hensing
1350e522fa nixos-generate-config: Fix generated hostPlatform.system
While the intent of the code was correct, the system string can not be used
in the substituteAll function.

See https://github.com/NixOS/nixpkgs/issues/237216
2023-06-11 19:28:51 +02:00
Silvan Mosberger
d4fe69faea nix-fallback-paths.nix: Update to 2.15.1 2023-06-01 22:55:14 +02:00
Will Fancher
fe43923a70
Merge pull request #229767 from mberndt123/mberndt123/stratis-rootfs
nixos/stratis: initrd support for stratis root volumes
2023-05-25 14:06:31 -04: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
figsoda
701bcdbead nixos: fix typos 2023-05-19 22:31:04 -04:00
Matthias Berndt
cb410a8c59 Merge remote-tracking branch 'upstream/master' into mberndt123/stratis-rootfs 2023-05-17 21:47:19 -04:00
Matthias Berndt
3aa262b644 make nixos-generate-config generate stratis pool UUIDs 2023-05-15 20:48:10 -04:00
ajs124
30bea8d82d nixos/*: remove boot.grub.version 2023-05-10 21:51:26 +02:00
Alyssa Ross
e5e49df7fd
nixos/netboot: add squashfsCompression option
This is copied from isoImage.squashfsCompression.  It's useful to be
able to customise, as iteration cycles are very slow with xz, and
subjectively systems booted with less efficiently compressed squashfs
stores appear to have faster reads (although I didn't test that
scientificly so there could be other factors).
2023-05-09 14:15:10 +00:00
Alyssa Ross
096cdeeac4
nixos/iso-image: type isoImage.squashfsCompression 2023-05-09 14:15:02 +00:00
Alyssa Ross
bf7de549b9
nixos/iso-image: targetPlatform -> hostPlatform
This is not a compiler, and therefore does not need to care about the
target platform.
2023-05-08 11:50:06 +00:00
Rick van Schijndel
5e2d479540
Merge pull request #229874 from mcnesium/fix_ambig_char
fix ambiguous unicode characters
2023-05-06 16:54:54 +02:00
Ryan Lahfa
32264d614a
Merge pull request #227696 from aktaboot/fix-install-tools-deps
nixos/installer: fix util-linux dependencies in install script
2023-05-05 21:58:23 +02:00
aktaboot
b3ef821489 nixos/installer: fix util-linux dependencies in install scripts 2023-05-05 18:11:57 +02:00
mcnesium
36af786eda
fix ambiguous unicode characters 2023-05-04 12:54:56 +02:00
name_snrl
1aa8534f3e nixos/nixos-generate-config: use hostPlatform.system instead of calling nix 2023-04-26 23:51:48 +05:00
Artturi
b83db86a9e
Merge pull request #222080 from Stunkymonkey/nixos-optionalString 2023-04-20 16:07:30 +03:00
R-VdP
3078cdb780 nixos/nixos-generate-config: include new device ID for virtio_scsi
Device IDs found here:
https://devicehunt.com/view/type/pci/vendor/1AF4/device/1048
2023-04-18 18:05:53 +00:00
Sandro
603320b64f
Merge pull request #204534 from SuperSandro2000/boot-tmp 2023-04-12 21:37:47 +02:00
Felix Buehler
327b0cff7a treewide: use more lib.optionalString 2023-04-07 13:38:33 +02:00
github-actions[bot]
6a3714135d
Merge master into staging-next 2023-03-23 00:02:14 +00:00
Ryan Lahfa
54de698c6f
Merge pull request #221576 from paumr/nixos-generate-config_fix_syntax
nixos-generate-config: fix invalid sample config
2023-03-22 20:10:43 +01:00
github-actions[bot]
797a2b9bcc
Merge master into staging-next 2023-03-21 18:01:07 +00:00
K900
4787ebf7ae nixos/hidpi: remove
The single option tries to do too much work, which just ends up confusing people.

So:
- don't force the console font, the kernel can figure this out as of #210205
- don't force the systemd-boot mode, it's an awkward mode that's not supported
  on most things and will break flicker-free boot
- add a separate option for the xorg cursor scaling trick and move it under the xorg namespace
- add a general `fonts.optimizeForVeryHighDPI` option that explicitly says what it does
- alias the old option to that
- don't set any of those automatically in nixos-generate-config
2023-03-21 13:29:57 +01:00
Sandro Jäckel
a5d95ac5fc
nixos/tmp: move /tmp options under boot.tmp 2023-03-19 18:49:37 +01:00
paumr
a6b712f8a4 nixos-generate-config: fix invalid sample config
This issue was reported in #221510
2023-03-17 01:24:28 +01:00
Bernardo Meurer
79cfdf110a
Merge pull request #219351 from tie/make-bios-bootable 2023-03-16 11:33:03 -03:00
Linus Heckemann
7ca65eeecf
Merge pull request #219354 from Izorkin/update-profiles-base
nixos/profiles: optimize base and minimal profiles
2023-03-14 14:45:15 +01:00
Luflosi
1d65c7279c
nixos-generate-config: update microcode only on bare metal
Guest operating systems inside VMs or containers can't update the host CPU's microcode for obvious security reasons, so setting the `hardware.cpu.*.updateMicrocode` options is pointless.
2023-03-13 20:15:13 +01:00
Ivan Trubach
905be9f8c5 nixos/iso-image: s/efi/EFI in documentation 2023-03-09 19:07:33 +03:00
Ivan Trubach
e5b072eca1 nixos/iso-image: add an option to disable BIOS boot
This change adds an option to disable legacy BIOS boot support for ISO
images. The implementation uses syslinux package that currently does not
support non-x86 platforms and thus cannot be cross-compiled, e.g. from
AArch64 system.
2023-03-09 19:07:33 +03:00
Izorkin
bb5370b8b3
nixos/modules/installer/netboot/netboot-minimal: reduce closure size 2023-03-04 16:19:39 +03:00
Valentin Gagarin
4e0525a8cd configuration.nix: suggest a command line program
adding two graphical programs makes a strong assmuption that users will
use a graphical environment.

add a command line program as an alternative suggestion that is easy to
comment in as a first-steps measure.
2023-02-28 17:16:03 +01:00
Eelco Dolstra
056b679c35 nix-fallback-paths.nix: Update to 2.13.3 2023-02-27 10:40:18 -08:00
Weijia Wang
b65d2ea436
Merge pull request #192672 from amjoseph-nixpkgs/pr/nixos/sd/powerpc64le
enable NixOS installer for powerpc64le
2023-02-23 07:09:46 +02:00
Adam Joseph
f99e8bafe6 nixos/installer: add sd-image-powerpc64le.nix
This builds on top of nixpkgs mainline 00d8347180
with the following two PRs cherry-picked:

- https://github.com/NixOS/nixpkgs/pull/192670
- https://github.com/NixOS/nixpkgs/pull/192668

using the following command:

```
nix build -f nixos -L \
  -I nixos-config=nixos/modules/installer/sd-card/sd-image-powerpc64le.nix \
  config.system.build.sdImage
```

I was able to successfully boot the image, although it boots to a login prompt
rather than a shell, and won't accept the empty password for `root`.  I guess
I'll have to figure out why that is.

To boot the image: `zstd`-decompress the it, mount it, and use `kexec`:

```
cd boot/nixos
kexec -l \
  *-vmlinux \
  --initrd *-initrd \
  --dt-no-old-root \
  --command-line="$(grep APPEND ../extlinux/extlinux.conf | sed 's_^ *APPEND *__')"
```

The machine I used for testing has only one storage device which is completely
allocated to LVM.  It appears that the NixOS ISO loader doesn't look for
partition tables within LVM volumes.  To work aroundn this, I had to extract the
`ext4` image within the partition table within the `sd-card` image and put that
in its own LVM volume.  This likely won't be an obstacle for users who write the
image to a USB stick or similar.
2023-02-23 06:18:52 +02:00
Jason Yundt
b1bb9bb6c8 treewide: fix backwards smart apostrophes
According to the Unicode Standard, you should use U+2019 RIGHT SINGLE
QUOTATION MARK for apostrophes [1]. Before this change, some of the text
in this repo would use U+2018 LEFT SINGLE QUOTATION MARKs instead.

[1]: https://www.unicode.org/versions/Unicode15.0.0/ch06.pdf#G12411
2023-02-06 07:24:42 -05:00
zowoq
b93752ceb0 nixos/nix-fallback-paths: 2.12.0 -> 2.13.2 2023-01-26 22:54:25 +10:00
Nick Cao
c128da46bf
Merge pull request #211640 from Izorkin/update-iso-channel
nixos/installer/cd-dvd: removing duplicate nixpkgs
2023-01-22 16:31:54 +08:00
zowoq
e75ac30903 Revert "nixos/nix-fallback-paths: 2.12.0 -> 2.13.1"
This reverts commit 37a44ff3a0.
2023-01-22 09:48:21 +10:00
zowoq
37a44ff3a0 nixos/nix-fallback-paths: 2.12.0 -> 2.13.1 2023-01-21 06:44:18 +10:00
Izorkin
058951e85d
nixos/installer/cd-dvd: removing duplicate nixpkgs 2023-01-19 22:52:45 +03:00
rnhmjoj
2bc5625877
nixos-install: remove root requirement for bind mount
This moves the creation of the bind mount inside the `nixos-enter`
invocation. The command are executed in an unshared mount namespace, so
they can be run as an unprivileged user.
2023-01-19 20:50:17 +01:00
Naïm Favier
556a4a7951 nixos/installation-cd-minimal: include HTML doc
Although we don't really need HTML documentation in the minimal installer,
not including it may cause annoying cache misses in the case of the NixOS manual.
2023-01-19 00:30:33 +01:00
Naïm Favier
cd4f1a1df5
nixos-install: only mount if root 2023-01-17 11:39:34 +01:00
Michele Guerini Rocco
594b94b4c3
Merge pull request #210812 from rnhmjoj/pr-initrd-secrets
boot.initrd.secrets fixes
2023-01-17 00:48:58 +01:00
Jeff Huffman
96ec8c7623 nixos/documentation.man.mandb: Add skipPackages option, and include nixos-version
prevents unnecessary recreation of man caches

Fixes #209835
2023-01-16 22:24:02 +01:00
rnhmjoj
9fc47e6db3
nixos-install: fix missing initrd.secrets paths
When installing NixOS in the target filesystem /mnt, paths relative to
configuration.nix in `initrd.secrets` are turned by Nix into absolute
paths that reference /mnt. While building the system derivation works,
installing the bootloader fails because the latter process takes place
inside the chroot environment where /mnt does not exist.

Ideally, we would also build the system within chroot, but this greatly
complicates the matter as it requires  manually copying over Nix, its
runtime dependencies and all channels. Possibly, this would also break
several assumptions users have about how nixos-install works.

A simpler and safer (but less neat) solution is to temporarily bind
mount all mount points in /mnt under /mnt/mnt to keep the paths
functional while the bootloader is being installed.
This is essentially the workaround described in issue #73404.
2023-01-16 02:31:01 +01:00
Ryan Lahfa
b42ea74b96
Merge pull request #206655 from vlinkz/distroname
nixos/version: add system.nixos.distroName and system.nixos.distroId options
2023-01-15 17:39:55 +01:00
Victor Fuentes
d3528cdc3d
nixos/version: add config.system.nixos.distroName and config.system.nixos.distroId 2023-01-14 16:19:06 -05:00
Naïm Favier
7e1cf49870
Merge pull request #161237 from miallo/nixos-version-configuration-revision 2023-01-12 12:31:54 +01:00
linsui
a2e21c76c7 rename config.qt5 -> config.qt 2023-01-10 20:50:15 +08:00
Michael Lohmann
3b5456608a nixos-version: print error for missing revision to stderr 2023-01-03 20:40:35 +01:00
Michael Lohmann
c09f6c3db0 nixos-version: output configurationRevision
`nixos-version --configuration-revision` will show the
configurationRevision.
2023-01-03 20:40:35 +01:00
Naïm Favier
a5b7b6e47a
nixos/nixos-enter: hide systemd-tmpfiles errors
Due to missing `/etc/machine-id` in the new root, systemd-tmpfiles
outputs a bunch of scary warnings like "Failed to replace specifiers in
'/run/log/journal/%m'". We only care about /tmp, so hide them.

`-E` is an alias for `--exclude-prefix=/dev --exclude-prefix=/proc
--exclude-prefix=/run --exclude-prefix=/sys`.
2023-01-01 17:18:20 +01:00
Naïm Favier
6a166a5ab1
Merge pull request #199425 from Mikilio/master 2023-01-01 11:15:03 +01:00
Ryan Lahfa
b869fc7a90
Merge pull request #204669 from n8henrie/configurable-grub-efi-timeout
nixos/installer/cd-dvd/iso-image: honor EFI boot timeout
2022-12-30 14:25:26 +01:00
Samuel Dionne-Riel
d5f5ec1628
Merge pull request #207371 from samueldr/feature/new_kernel-no-zfs
nixos: Add new_kernel_no_zfs image variants
2022-12-27 16:14:16 -05:00
Naïm Favier
0d436e1bb6
Merge pull request #207105 from ncfavier/iso-xlibs 2022-12-27 16:19:33 +01:00
K900
2d3cf010fe
Revert "treewide: use nativeBuildInputs with runCommand instead of inlining" 2022-12-26 21:05:35 +03:00
Sandro
5af3f865e8
Merge pull request #206775 from SuperSandro2000/runCommand-nativeBuildInputs 2022-12-25 21:42:05 +01:00
Nathan Henrie
7e1a3e4a8f nixos/installer/cd-dvd/iso-image: Honor boot.loader.timeout for EFI
EFI boot timeout is currently a static 10 whereas syslinux uses
boot.loader.timeout. This changes the EFI config to match.

Some discussion at https://discourse.nixos.org/t/how-to-override-let-variables/23741/2
2022-12-24 09:27:43 -07:00
Samuel Dionne-Riel
d91e1f98fa nixos: Add sd_image_minimal_new_kernel_no_zfs
Support for ZFS, while desirable, is problematic with newer kernel
releases. The stable ZFS release seldom supports the current newest
kernel version, and this makes the new_kernel image basically useless as
it cannot be published, and is not often built with new kernel releases.

This uses a dirty workaround to work around the fact it is impossible to
remove a list item from a modules system list type. Since ZFS support is
conditional to being supported on the current platform, we can fake ZFS
not being supported *for the no-zfs build only*. This overlay is only
added when evaluating the image, nothing else.
2022-12-22 23:07:19 -05:00
Samuel Dionne-Riel
35bb28b367 nixos: Add iso_minimal_new_kernel_no_zfs
Support for ZFS, while desirable, is problematic with newer kernel
releases. The stable ZFS release seldom supports the current newest
kernel version, and this makes the new_kernel iso basically useless as
it cannot be published, and is not often built with new kernel releases.

This uses a dirty workaround to work around the fact it is impossible to
remove a list item from a modules system list type. Since ZFS support is
conditional to being supported on the current platform, we can fake ZFS
not being supported *for the no-zfs build only*. This overlay is only
added when evaluating the iso, nothing else.
2022-12-22 23:00:14 -05:00
Nathan Henrie
3930bcb3c3 Make syslinuxTimeout match documentation
- https://wiki.syslinux.org/wiki/index.php?title=SYSLINUX#TIMEOUT_timeout
- cbe419ed4c/nixos/modules/system/boot/loader/loader.nix (L16)

Fixes https://github.com/NixOS/nixpkgs/issues/207289
2022-12-22 13:25:14 -06:00
Naïm Favier
3a8fd0ef47
nixos/installation-cd-minimal: disable noXlibs
Causes a lot of uncached builds for a negligible decrease in size (822 →
821 MiB currently).
2022-12-21 15:19:37 +01:00
Sandro Jäckel
26f704b545
treewide: use nativeBuildInputs with runCommand instead of inlining 2022-12-18 23:36:40 +01:00
figsoda
6bb0dbf91f nixos: fix typos 2022-12-17 19:31:14 -05:00
Lin Yinfeng
7f220a0422
nixos/installer/netboot-minimal: add missing lib 2022-12-12 09:54:17 +08:00
Izorkin
0c6ce0dbab
nixos/installer/netboot-minimal: enable man 2022-12-09 13:03:49 +03:00
Izorkin
309d6a3185
iso/minimal: use mkForce 2022-12-09 13:03:49 +03:00
Izorkin
191d2115ea
iso/minimal: use minimal profile 2022-12-09 13:03:49 +03:00
zowoq
1ec69621ef nixos/nix-fallback-paths: 2.11.1 -> 2.12.0 2022-12-07 04:42:28 +10:00
Naïm Favier
a6dd75809d
Merge pull request #204178 from ncfavier/iso-filter-nixpkgs 2022-12-05 19:00:03 +01:00
Naïm Favier
364d3609cd
nixos/installer/cd-dvd: use filtered nixpkgs source
Pin the `nixpkgs` registry entry to the *filtered* nixpkgs source to
avoid copying the entire `.git` directory to the ISO when building
from a local checkout.

Also set `to` directly instead of the `flake.outPath` hack.
2022-12-04 14:54:18 +01:00
zowoq
34386263f7 nixos/nix-fallback-paths: 2.11.0 -> 2.11.1 2022-12-01 12:32:15 +10:00
Mikilio
b6c367162c nixos/nixos-enter: add full path for systemd-tmpfiles 2022-11-24 18:15:08 +01:00
Victor Fuentes
4fe9988b89
installation-cd: Remove libsForQt5.full 2022-11-19 19:12:37 -05:00
Victor Fuentes
f4e541427e
calamares-cd: default supporting all locales 2022-11-02 13:59:53 -04:00
Martin Schwaighofer
0c67f190b1 sd-image: remove unnecessary subshell
replace the subshell surrounding this block with cd before and after

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2022-10-22 12:11:30 +02:00
Martin Schwaighofer
bacef6bb09 dvd-image: replace faketime with --invariant for mkfs.vfat 2022-10-22 12:11:30 +02:00
Martin Schwaighofer
a1d6fd3702 sd-image: replace faketime with --invariant for mkfs.vfat
This is done for sd-images only here, but should probably also be done
for dvd-images.

The --invariant arg should be a better way of making mkfs.vfat deterministic.
The previous version of invoking faketime was building fine and reproducible
when I was compiling an sdimage for aarch64 under emulation.
It was however still logging errors:
ERROR: ld.so: object '/nix/store/1c2cp2709kmvby8ql2n9946v7l52nn50-libfaketime-0.9.9/lib/libfaketime.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/nix/store/1c2cp2709kmvby8ql2n9946v7l52nn50-libfaketime-0.9.9/lib/libfaketime.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
The logged errors were presumably inaccurate somehow as calling
faketime was required for reproducibility, even though the log makes it
looks like it failed.
2022-10-22 12:11:30 +02:00
Martin Schwaighofer
f6ee247a1f sd-image: make firmware partition deterministic
Based on how it works for the EFI partition of an iso-image at
nixos/modules/installer/cd-dvd/iso-image.nix.
2022-10-22 12:11:30 +02:00
Martin Weinelt
373c1a8e43
installer: enable xe-guest-utilities only on x86
Tries to find a target specific makefile for aarch64 which does not
exist.
2022-10-11 15:33:42 +02:00
Martin Weinelt
8f366cbfcc
installer: enable vmware guest support on x86 only
The vmware guest module asserts on this exact condition, so let's only
enable it on that condition.
2022-10-11 15:33:41 +02:00
Maximilian Bosch
3df3bbdc50
nixos/nixos-build-vms: fix eval
Within #193485 (and the previous changes) the internal structure of the
testing driver was changed. Since then, `makeTest` returns the
attributes for the VM test(s) (including `driverInteractive`) inside a
sub-attribute called `test`, so without this change running
`nixos-build-vms` would fail like this:

    error: attribute 'driverInteractive' missing
2022-10-01 20:34:01 +02:00