libsearpc: 3.3-20230626 -> 3.3-20241031 fix build with GCC14 (#368185)
[NixPkgs.git] / nixos / modules / installer / tools / manpages / nixos-generate-config.8
blob1b95599e156ae1a07fa8fc55a677130c37bdf363
1 .Dd January 1, 1980
2 .Dt nixos-generate-config 8
3 .Os
4 .Sh NAME
5 .Nm nixos-generate-config
6 .Nd generate NixOS configuration modules
10 .Sh SYNOPSIS
11 .Nm nixos-generate-config
12 .Op Fl -force
13 .Op Fl -root Ar root
14 .Op Fl -dir Ar dir
18 .Sh DESCRIPTION
19 This command writes two NixOS configuration modules:
20 .Bl -tag -width indent
21 .It Pa /etc/nixos/hardware-configuration.nix
22 This module sets NixOS configuration options based on your current hardware
23 configuration. In particular, it sets the
24 .Va fileSystem
25 option to reflect all currently mounted file systems, the
26 .Va swapDevices
27 option to reflect active swap devices, and the
28 .Va boot.initrd.*
29 options to ensure that the initial ramdisk contains any kernel modules necessary
30 for mounting the root file system.
31 .Pp
32 If this file already exists, it is overwritten. Thus, you should not modify it
33 manually. Rather, you should include it from your
34 .Pa /etc/nixos/configuration.nix Ns
35 , and re-run
36 .Nm
37 to update it whenever your hardware configuration changes.
39 .It Pa /etc/nixos/configuration.nix
40 This is the main NixOS system configuration module. If it already exists, it’s
41 left unchanged. Otherwise,
42 .Nm
43 will write a template for you to customise.
44 .El
48 .Sh OPTIONS
49 .Bl -tag -width indent
50 .It Fl -root Ar root
51 If this option is given, treat the directory
52 .Ar root
53 as the root of the file system. This means that configuration files will be written to
54 .Ql Ar root Ns /etc/nixos Ns
55 , and that any file systems outside of
56 .Ar root
57 are ignored for the purpose of generating the
58 .Va fileSystems
59 option.
61 .It Fl -dir Ar dir
62 If this option is given, write the configuration files to the directory
63 .Ar dir
64 instead of
65 .Pa /etc/nixos Ns
66 \&.
68 .It Fl -force
69 Overwrite
70 .Pa /etc/nixos/configuration.nix
71 if it already exists.
73 .It Fl -no-filesystems
74 Omit everything concerning file systems and swap devices from the hardware configuration.
76 .It Fl -show-hardware-config
77 Don't generate
78 .Pa configuration.nix
80 .Pa hardware-configuration.nix
81 and print the hardware configuration to stdout only.
82 .El
86 .Sh EXAMPLES
87 This command is typically used during NixOS installation to write initial
88 configuration modules. For example, if you created and mounted the target file
89 systems on
90 .Pa /mnt
91 and
92 .Pa /mnt/boot Ns
93 , you would run:
94 .Bd -literal -offset indent
95 $ nixos-generate-config --root /mnt
96 .Ed
98 .Pp
99 The resulting file
100 .Pa /mnt/etc/nixos/hardware-configuration.nix
101 might look like this:
102 .Bd -literal -offset indent
103 # Do not modify this file!  It was generated by 'nixos-generate-config'
104 # and may be overwritten by future invocations.  Please make changes
105 # to /etc/nixos/configuration.nix instead.
106 { config, pkgs, ... }:
109   imports =
110     [ <nixos/modules/installer/scan/not-detected.nix>
111     ];
113   boot.initrd.availableKernelModules = [ "ehci_hcd" "ahci" ];
114   boot.kernelModules = [ "kvm-intel" ];
115   boot.extraModulePackages = [ ];
117   fileSystems."/" =
118     { device = "/dev/disk/by-label/nixos";
119       fsType = "ext3";
120       options = [ "rw" "data=ordered" "relatime" ];
121     };
123   fileSystems."/boot" =
124     { device = "/dev/sda1";
125       fsType = "ext3";
126       options = [ "rw" "errors=continue" "user_xattr" "acl" "barrier=1" "data=writeback" "relatime" ];
127     };
129   swapDevices =
130     [ { device = "/dev/sda2"; }
131     ];
133   nix.maxJobs = 8;
138 It will also create a basic
139 .Pa /mnt/etc/nixos/configuration.nix Ns
140 , which you should edit to customise the logical configuration of your system. \
141 This file includes the result of the hardware scan as follows:
142 .Bd -literal -offset indent
143 imports = [ ./hardware-configuration.nix ];
147 After installation, if your hardware configuration changes, you can run:
148 .Bd -literal -offset indent
149 $ nixos-generate-config
153 to update
154 .Pa /etc/nixos/hardware-configuration.nix Ns
155 \&. Your
156 .Pa /etc/nixos/configuration.nix
157 will
158 .Em not
159 be overwritten.
161 .Sh AUTHORS
162 .An -nosplit
163 .An Eelco Dolstra
165 .An the Nixpkgs/NixOS contributors