Commit graph

130 commits

Author SHA1 Message Date
michael bishop 656cc3acaf fix 2 xml errors in the description of boot.loader.grub.efiInstallAsRemovable 2016-12-16 20:39:40 +01:00
Jörg Thalheim cb8af0ca51 Merge pull request #19379 from nixy/master
grub bootloader: add forceInstall option
2016-11-21 15:15:45 +01:00
Eric Sagnes 80b854739c grub module: use enum 2016-11-04 13:05:13 +09:00
Andrew R. M a31bf8961a grub bootloader: add forceInstall option
Using the --force option on GRUB isn't recommended, but there are very
specific instances where it makes sense. One example is installing on a
partitionless disk.
2016-11-03 05:50:42 -04:00
Joachim F 7e80c42b0e Merge pull request #18511 from ericsagnes/feat/remove-optionSet
modules: optionSet -> submodule
2016-10-01 17:57:45 +02:00
jokogr b12debc076 grub: Do not check for duplicated devices in mirroredBoots on UEFI (#18625)
When Grub is to be used with UEFI, it is not going to write to any MBR
of any disk. As such, it is safe to use multiple "nodev" device entries
when mirroring the ESP partition to multiple disks.

E.g.:

```
boot.loader.grub = {
  enable = true;
  version = 2;
  zfsSupport = true;
  efiSupport = true;
  mirroredBoots = [
    { devices = [ "nodev" ]; path = "/boot1"; efiSysMountPoint = "/boot1"; }
    { devices = [ "nodev" ]; path = "/boot2"; efiSysMountPoint = "/boot2"; }
    { devices = [ "nodev" ]; path = "/boot3"; efiSysMountPoint = "/boot3"; }
  ];
};

boot.loader.efi.canTouchEfiVariables = true;
```

Fixes #18584
2016-09-25 07:37:18 +02:00
obadz 93974eb98b grub: fix manual build 2016-09-16 19:12:47 +01:00
obadz eda4f5d409 grub: clarify efiInstallAsRemovable docstring 2016-09-16 18:09:50 +01:00
obadz 1c9ac8aabc grub: add boot.loader.grub.efiInstallAsRemovable
Closes #16374
2016-09-16 18:02:36 +01:00
Eric Sagnes 55e437806a grub module: optionSet -> submodule 2016-09-13 12:53:12 +09:00
Domen Kožar f5271680c4 Fixes #14831 by using full path for binaries used in install-grub.pl
Both btrfs-progs and utillinux are ~5MB, we may discuss in future
to handle this better but I see no better way at the moment than
increaing purity in the install process.
2016-09-01 10:36:38 +02:00
obadz c7142c1aa3 Merge branch 'master' into staging 2016-08-28 13:33:13 +01:00
Domen Kožar 4af09e0031 Merge pull request #14311 from Profpatsch/mkRemovedOptionModule-replacement
mkRemovedOptionModule: add replacement argument
2016-08-28 13:55:28 +02:00
Robin Gloster 8031cba2ab Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-06-10 09:27:04 +00:00
Eelco Dolstra f222689aba Use systemd-boot instead of gummiboot
Gummiboot is part of systemd now so we may as well use it.
2016-05-31 17:02:47 +02:00
Robin Gloster 2d382f3d98 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-05-30 19:39:34 +00:00
Profpatsch 16c923cef2 modules/mkRemovedOptionModule: add replacement doc
When displaying a warning about a removed Option we should always
include reasoning why it was removed and how to get the same
functionality without it.

Introduces such a description argument and patches occurences (mostly
with an empty string).

startGnuPGAgent: further notes on replacement
2016-05-29 00:42:08 +02:00
Eelco Dolstra 32bed83b18 Remove boot.loader.grub.timeout and boot.loader.gummiboot.timeout
There is a generic boot.loader.timeout option.
2016-05-25 11:39:17 +02:00
Franz Pletz f8d481754c
Merge remote-tracking branch 'origin/master' into hardened-stdenv 2016-05-18 17:10:02 +02:00
Robin Gloster c92bca56f8 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-05-02 22:58:02 +00:00
Nikolay Amiantov ab0a0c004e makeSearchPathOutputs: refactor to makeSearchPathOutput 2016-04-25 13:24:39 +03:00
Alexander Ried 1d6990db06 boot.loader.grub: fix variable name (#14855) 2016-04-20 22:27:34 +02:00
Robin Gloster d020caa5b2 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-04-18 13:49:22 +00:00
Nikolay Amiantov 8b7ebaffeb replace makeSearchPath tree-wise to take care of possible multiple outputs 2016-04-13 22:09:41 +03:00
Robin Gloster a73a28de7b fix grammar errors 2016-04-06 16:16:23 +00:00
Thomas Strobel a04a7272aa Add missing 'type', 'defaultText' and 'literalExample' in module definitions
- add missing types in module definitions
- add missing 'defaultText' in module definitions
- wrap example with 'literalExample' where necessary in module definitions
2016-01-17 19:41:23 +01:00
Tobias Geerinckx-Rice 82419575aa btrfsProgs -> canonical btrfs-progs 2016-01-03 20:38:44 +01:00
Thomas Strobel d856841ba4 nixos trustedGRUB: add support for HP laptops 2015-12-22 03:12:30 +01:00
Nicole Angel c840974c24 grub: fix typo in variable name (trivial) 2015-12-10 19:52:08 +01:00
Eelco Dolstra 5f077e2296 Factor out option renaming
Option aliases/deprecations can now be declared in any NixOS module,
not just in nixos/modules/rename.nix. This is more modular (since it
allows for example grub-related aliases to be declared in the grub
module), and allows aliases outside of NixOS (e.g. in NixOps modules).

The syntax is a bit funky. Ideally we'd have something like:

  options = {
    foo.bar.newOption = mkOption { ... };
    foo.bar.oldOption = mkAliasOption [ "foo" "bar" "newOption" ];
  };

but that's not possible because options cannot define values in
*other* options - you need to have a "config" for that. So instead we
have functions that return a *module*: mkRemovedOptionModule,
mkRenamedOptionModule and mkAliasOptionModule. These can be used via
"imports", e.g.

  imports = [
    (mkAliasOptionModule [ "foo" "bar" "oldOption" ] [ "foo" "bar" "newOption" ]);
  ];

As an added bonus, deprecation warnings now show the file name of the
offending module.

Fixes #10385.
2015-10-14 18:18:47 +02:00
Thomas Strobel 7a8980193d nixos grub: trustedBoot: introduce safety check that TPM is available 2015-10-06 20:12:39 +02:00
Eelco Dolstra c49b24c940 Fix capitalisation 2015-07-25 19:06:07 +02:00
Thomas Strobel 65cbbc75b0 grub installation: integrate trustedGRUB + fix broken equality check 2015-07-05 19:51:53 +02:00
Luca Bruno 033605e87f Merge branch 'nixos-subdir'
Conflicts:
	nixos/modules/system/boot/loader/grub/grub.nix
2015-06-13 15:18:12 +02:00
Luca Bruno 3754de550f nixos/grub: allow customization of the nix store path 2015-06-13 15:02:00 +02:00
William A. Kennington III 502a19b2b4 nixos/grub: Support labeling efi bootloaders with independent id's 2015-06-10 15:47:08 -07:00
William A. Kennington III c891134b77 nixos/grub: Prevent module errors and make gfxmode configurable 2015-06-10 11:50:35 -07:00
William A. Kennington III 48381b7621 nixos-artwork: Make into a derivation and use fetchfromgithub 2015-06-08 18:32:32 -07:00
William A. Kennington III 1e98da6d99 nixos/grub: Use nixos artwork 2015-05-29 13:26:32 -07:00
William A. Kennington III d4f3930201 nixos/grub: Fix defaultConfig 2015-05-29 13:26:32 -07:00
William A. Kennington III b07d2a447b nixos/grub: Fix assertion 2015-05-25 23:03:31 -07:00
William A. Kennington III fd5b273e82 nixos/grub: Add the ability to mirror grub to multiple partitions 2015-05-25 20:23:06 -07:00
Alexei Robyn 60da99ea2a grub module: removed invalid device check for grub EFI installation 2015-04-30 19:28:34 +10:00
Joachim Fasting d375550ead nixos: add a few missing type specifiers under boot.* 2015-02-28 09:19:23 +01:00
Thomas Strobel c61ff9b51e Fix grubTarget on nodev installs 2015-02-16 20:19:44 +01:00
William A. Kennington III 1fddcd1e83 grub: Don't remove zfs support if contained in the default binary 2015-02-13 14:40:41 -08:00
Shea Levy 24c0844cfb Fix grub on nodev installs 2015-02-08 22:31:14 -05:00
William A. Kennington III 2a0754ccbc Merge pull request #5994 from ts468/grub
Add 'target' parameter for GRUB installation chain
2015-02-08 14:18:13 -08:00
Bob van der Linden f93ba51469 nixos: loader: added generic config.boot.loader.timeout option
timeout options of grub and gummiboot will inherit the value of this
option by default.
2015-01-30 09:53:44 +01:00
Thomas Strobel 3767370866 Add target parameter to grub installation chain 2015-01-27 19:46:37 +01:00
Franz Pletz 30690d05bc Add cryptodisk support for Grub
Closes #4193
2014-09-24 21:48:55 +01:00
Luca Bruno dfa6f03ea3 Do not assert absolute path for nodev grub device. Closes #3996 2014-09-08 12:00:34 +02:00
William A. Kennington III c6bd6d6d89 nixos/grub: Assert devices should be absolute paths 2014-09-04 10:31:39 -07:00
William A. Kennington III f73f7ccc6e nixos/install-grub: Read correct mountpoints 2014-09-04 10:31:39 -07:00
William A. Kennington III 36614ff3e2 Revert "Revert "Merge pull request #2449 from wkennington/master.grub""
This reverts commit 94205f5f21.

Conflicts:
	nixos/modules/system/boot/loader/grub/install-grub.pl
2014-09-02 09:16:13 -07:00
Michael Raskin 94205f5f21 Revert "Merge pull request #2449 from wkennington/master.grub"
This reverts commit 469f22d717, reversing
changes made to 0078bc5d8f.

Conflicts:
	nixos/modules/installer/tools/nixos-generate-config.pl
	nixos/modules/system/boot/loader/grub/install-grub.pl
	nixos/release.nix
	nixos/tests/installer.nix

I tried to keep apparently-safe code in conflicts.
2014-08-31 12:58:37 +04:00
William A. Kennington III d4a9645ef0 nixos/grub: Needs mount so add utillinux to bin 2014-08-28 13:35:35 -07:00
William A. Kennington III 8329d12b79 grub: Change fsIdentifier to str from string 2014-08-28 13:35:35 -07:00
William A. Kennington III 525acb4d4f nixos/grub: Fix typo 2014-08-28 13:35:35 -07:00
William A. Kennington III a6e6c85f06 grub: Add support for detecting btrfs subvolumes 2014-08-28 13:35:35 -07:00
William A. Kennington III fba9f641a8 grub: Add support for forcing devices to be identified with labels or UUIDs 2014-08-28 13:35:35 -07:00
William A. Kennington III 02ab48d0ee Enable grub zfsSupport if zfs is built into the initrd 2014-08-28 13:35:34 -07:00
William A. Kennington III 3c6e2fbba9 Add optional zfsSupport to the nixos grub configuration 2014-08-28 13:35:34 -07:00
William A. Kennington III 4f832b5217 Revert "grub: Allow setting the boot root explicitly"
This reverts commit e4630c1d41.
2014-08-28 13:35:34 -07:00
Shea Levy 4061c18c98 Revert "grub: removed orphaned mkOption configurationName"
The configurationName option value is still used by NixOS, this removal
breaks grub users.

This reverts commit bd811d32b4.
2014-08-27 03:26:40 -04:00
Joachim Schiele bd811d32b4 grub: removed orphaned mkOption configurationName 2014-08-26 19:14:47 +02:00
Shea Levy e4630c1d41 grub: Allow setting the boot root explicitly
If /boot is a btrfs subvolume, it will be on a different device than /
but not be at the root from grub's perspective. This should be fixed in
a nicer way by #2449, but that can't go into 14.04.
2014-05-01 10:56:55 -04:00
Eelco Dolstra cf53152902 Fix GRUB 2 example
Fixes #1891.
2014-04-20 19:41:15 +02:00
Eelco Dolstra 29027fd1e1 Rewrite ‘with pkgs.lib’ -> ‘with lib’
Using pkgs.lib on the spine of module evaluation is problematic
because the pkgs argument depends on the result of module
evaluation. To prevent an infinite recursion, pkgs and some of the
modules are evaluated twice, which is inefficient. Using ‘with lib’
prevents this problem.
2014-04-14 16:26:48 +02:00
Eelco Dolstra 9ee30cd9b5 Add support for lightweight NixOS containers
You can now say:

  systemd.containers.foo.config =
    { services.openssh.enable = true;
      services.openssh.ports = [ 2022 ];
      users.extraUsers.root.openssh.authorizedKeys.keys = [ "ssh-dss ..." ];
    };

which defines a NixOS instance with the given configuration running
inside a lightweight container.

You can also manage the configuration of the container independently
from the host:

  systemd.containers.foo.path = "/nix/var/nix/profiles/containers/foo";

where "path" is a NixOS system profile.  It can be created/updated by
doing:

  $ nix-env --set -p /nix/var/nix/profiles/containers/foo \
      -f '<nixos>' -A system -I nixos-config=foo.nix

The container configuration (foo.nix) should define

  boot.isContainer = true;

to optimise away the building of a kernel and initrd.  This is done
automatically when using the "config" route.

On the host, a lightweight container appears as the service
"container-<name>.service".  The container is like a regular NixOS
(virtual) machine, except that it doesn't have its own kernel.  It has
its own root file system (by default /var/lib/containers/<name>), but
shares the Nix store of the host (as a read-only bind mount).  It also
has access to the network devices of the host.

Currently, if the configuration of the container changes, running
"nixos-rebuild switch" on the host will cause the container to be
rebooted.  In the future we may want to send some message to the
container so that it can activate the new container configuration
without rebooting.

Containers are not perfectly isolated yet.  In particular, the host's
/sys/fs/cgroup is mounted (writable!) in the guest.
2013-11-27 17:14:10 +01:00
Eelco Dolstra 408b8b5725 Add lots of missing option types 2013-10-30 18:47:43 +01:00
Eelco Dolstra be5d3a59dd Clean up some option examples 2013-10-30 18:47:43 +01:00
Eelco Dolstra 4680af6a93 Add some option types 2013-10-30 14:57:42 +01:00
Eelco Dolstra 862e3dd977 Substitute "types.uniq types.string" -> "types.str" 2013-10-30 14:57:42 +01:00
Eelco Dolstra 9a8516438e Fix NixOps evaluation 2013-10-28 22:45:57 +01:00
Eelco Dolstra c4149c7b56 Fix evaluation error in the ISOs 2013-10-24 02:03:10 +02:00
Eelco Dolstra a3777ba4f9 Remove dependencies on the Nixpkgs location 2013-10-23 20:08:23 +02:00
Eelco Dolstra 8f4c5b05d5 Add a way to define obsolete options that have no replacement 2013-10-23 20:08:22 +02:00
Eelco Dolstra b33657df03 grub: Make assertion lazier 2013-10-17 13:30:49 +02:00
Eelco Dolstra 5c1f8cbc70 Move all of NixOS to nixos/ in preparation of the repository merge 2013-10-10 13:28:20 +02:00
Renamed from modules/system/boot/loader/grub/grub.nix (Browse further)