aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/modules/system/boot/stage-2.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/modules/system/boot/stage-2.nix')
-rw-r--r--nixpkgs/nixos/modules/system/boot/stage-2.nix85
1 files changed, 85 insertions, 0 deletions
diff --git a/nixpkgs/nixos/modules/system/boot/stage-2.nix b/nixpkgs/nixos/modules/system/boot/stage-2.nix
new file mode 100644
index 00000000000..6b0b4722730
--- /dev/null
+++ b/nixpkgs/nixos/modules/system/boot/stage-2.nix
@@ -0,0 +1,85 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ useHostResolvConf = config.networking.resolvconf.enable && config.networking.useHostResolvConf;
+
+ bootStage2 = pkgs.substituteAll {
+ src = ./stage-2-init.sh;
+ shellDebug = "${pkgs.bashInteractive}/bin/bash";
+ shell = "${pkgs.bash}/bin/bash";
+ isExecutable = true;
+ inherit (config.nix) readOnlyStore;
+ inherit useHostResolvConf;
+ inherit (config.system.build) earlyMountScript;
+ path = lib.makeBinPath ([
+ pkgs.coreutils
+ pkgs.utillinux
+ ] ++ lib.optional useHostResolvConf pkgs.openresolv);
+ fsPackagesPath = lib.makeBinPath config.system.fsPackages;
+ postBootCommands = pkgs.writeText "local-cmds"
+ ''
+ ${config.boot.postBootCommands}
+ ${config.powerManagement.powerUpCommands}
+ '';
+ };
+
+in
+
+{
+ options = {
+
+ boot = {
+
+ postBootCommands = mkOption {
+ default = "";
+ example = "rm -f /var/log/messages";
+ type = types.lines;
+ description = ''
+ Shell commands to be executed just before systemd is started.
+ '';
+ };
+
+ devSize = mkOption {
+ default = "5%";
+ example = "32m";
+ type = types.str;
+ description = ''
+ Size limit for the /dev tmpfs. Look at mount(8), tmpfs size option,
+ for the accepted syntax.
+ '';
+ };
+
+ devShmSize = mkOption {
+ default = "50%";
+ example = "256m";
+ type = types.str;
+ description = ''
+ Size limit for the /dev/shm tmpfs. Look at mount(8), tmpfs size option,
+ for the accepted syntax.
+ '';
+ };
+
+ runSize = mkOption {
+ default = "25%";
+ example = "256m";
+ type = types.str;
+ description = ''
+ Size limit for the /run tmpfs. Look at mount(8), tmpfs size option,
+ for the accepted syntax.
+ '';
+ };
+
+ };
+
+ };
+
+
+ config = {
+
+ system.build.bootStage2 = bootStage2;
+
+ };
+}