4d5a95770c
GitOrigin-RevId: 3c5319ad3aa51551182ac82ea17ab1c6b0f0df89
165 lines
3.8 KiB
Groff
165 lines
3.8 KiB
Groff
.Dd January 1, 1980
|
||
.Dt nixos-generate-config 8
|
||
.Os
|
||
.Sh NAME
|
||
.Nm nixos-generate-config
|
||
.Nd generate NixOS configuration modules
|
||
.
|
||
.
|
||
.
|
||
.Sh SYNOPSIS
|
||
.Nm nixos-generate-config
|
||
.Op Fl -force
|
||
.Op Fl -root Ar root
|
||
.Op Fl -dir Ar dir
|
||
.
|
||
.
|
||
.
|
||
.Sh DESCRIPTION
|
||
This command writes two NixOS configuration modules:
|
||
.Bl -tag -width indent
|
||
.It Pa /etc/nixos/hardware-configuration.nix
|
||
This module sets NixOS configuration options based on your current hardware
|
||
configuration. In particular, it sets the
|
||
.Va fileSystem
|
||
option to reflect all currently mounted file systems, the
|
||
.Va swapDevices
|
||
option to reflect active swap devices, and the
|
||
.Va boot.initrd.*
|
||
options to ensure that the initial ramdisk contains any kernel modules necessary
|
||
for mounting the root file system.
|
||
.Pp
|
||
If this file already exists, it is overwritten. Thus, you should not modify it
|
||
manually. Rather, you should include it from your
|
||
.Pa /etc/nixos/configuration.nix Ns
|
||
, and re-run
|
||
.Nm
|
||
to update it whenever your hardware configuration changes.
|
||
.
|
||
.It Pa /etc/nixos/configuration.nix
|
||
This is the main NixOS system configuration module. If it already exists, it’s
|
||
left unchanged. Otherwise,
|
||
.Nm
|
||
will write a template for you to customise.
|
||
.El
|
||
.
|
||
.
|
||
.
|
||
.Sh OPTIONS
|
||
.Bl -tag -width indent
|
||
.It Fl -root Ar root
|
||
If this option is given, treat the directory
|
||
.Ar root
|
||
as the root of the file system. This means that configuration files will be written to
|
||
.Ql Ar root Ns /etc/nixos Ns
|
||
, and that any file systems outside of
|
||
.Ar root
|
||
are ignored for the purpose of generating the
|
||
.Va fileSystems
|
||
option.
|
||
.
|
||
.It Fl -dir Ar dir
|
||
If this option is given, write the configuration files to the directory
|
||
.Ar dir
|
||
instead of
|
||
.Pa /etc/nixos Ns
|
||
\&.
|
||
.
|
||
.It Fl -force
|
||
Overwrite
|
||
.Pa /etc/nixos/configuration.nix
|
||
if it already exists.
|
||
.
|
||
.It Fl -no-filesystems
|
||
Omit everything concerning file systems and swap devices from the hardware configuration.
|
||
.
|
||
.It Fl -show-hardware-config
|
||
Don't generate
|
||
.Pa configuration.nix
|
||
or
|
||
.Pa hardware-configuration.nix
|
||
and print the hardware configuration to stdout only.
|
||
.El
|
||
.
|
||
.
|
||
.
|
||
.Sh EXAMPLES
|
||
This command is typically used during NixOS installation to write initial
|
||
configuration modules. For example, if you created and mounted the target file
|
||
systems on
|
||
.Pa /mnt
|
||
and
|
||
.Pa /mnt/boot Ns
|
||
, you would run:
|
||
.Bd -literal -offset indent
|
||
$ nixos-generate-config --root /mnt
|
||
.Ed
|
||
.
|
||
.Pp
|
||
The resulting file
|
||
.Pa /mnt/etc/nixos/hardware-configuration.nix
|
||
might look like this:
|
||
.Bd -literal -offset indent
|
||
# Do not modify this file! It was generated by 'nixos-generate-config'
|
||
# and may be overwritten by future invocations. Please make changes
|
||
# to /etc/nixos/configuration.nix instead.
|
||
{ config, pkgs, ... }:
|
||
|
||
{
|
||
imports =
|
||
[ <nixos/modules/installer/scan/not-detected.nix>
|
||
];
|
||
|
||
boot.initrd.availableKernelModules = [ "ehci_hcd" "ahci" ];
|
||
boot.kernelModules = [ "kvm-intel" ];
|
||
boot.extraModulePackages = [ ];
|
||
|
||
fileSystems."/" =
|
||
{ device = "/dev/disk/by-label/nixos";
|
||
fsType = "ext3";
|
||
options = [ "rw" "data=ordered" "relatime" ];
|
||
};
|
||
|
||
fileSystems."/boot" =
|
||
{ device = "/dev/sda1";
|
||
fsType = "ext3";
|
||
options = [ "rw" "errors=continue" "user_xattr" "acl" "barrier=1" "data=writeback" "relatime" ];
|
||
};
|
||
|
||
swapDevices =
|
||
[ { device = "/dev/sda2"; }
|
||
];
|
||
|
||
nix.maxJobs = 8;
|
||
}
|
||
.Ed
|
||
.
|
||
.Pp
|
||
It will also create a basic
|
||
.Pa /mnt/etc/nixos/configuration.nix Ns
|
||
, which you should edit to customise the logical configuration of your system. \
|
||
This file includes the result of the hardware scan as follows:
|
||
.Bd -literal -offset indent
|
||
imports = [ ./hardware-configuration.nix ];
|
||
.Ed
|
||
.
|
||
.Pp
|
||
After installation, if your hardware configuration changes, you can run:
|
||
.Bd -literal -offset indent
|
||
$ nixos-generate-config
|
||
.Ed
|
||
.
|
||
.Pp
|
||
to update
|
||
.Pa /etc/nixos/hardware-configuration.nix Ns
|
||
\&. Your
|
||
.Pa /etc/nixos/configuration.nix
|
||
will
|
||
.Em not
|
||
be overwritten.
|
||
.
|
||
.Sh AUTHORS
|
||
.An -nosplit
|
||
.An Eelco Dolstra
|
||
and
|
||
.An the Nixpkgs/NixOS contributors
|