Jump to content

Nixos-generate-config: Difference between revisions

From NixOS Wiki
imported>Chrissound
Created page with "This command analyzes your hardware configuration and generates two files of: configuration.nix hardware-configuration.nix Notes: If you are using an SSD it may be useful to..."
 
Pigs (talk | contribs)
move ssd trim info to filesystems wiki page, other minor formatting
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This command analyzes your hardware configuration and generates two files of:
Generate NixOS configuration modules.
configuration.nix
hardware-configuration.nix


Notes:
This command is part of the {{nixos:package|nixos-install-tools}} package. It analyzes your hardware configuration and generates two files of:
* <code>/etc/nixos/configuration.nix</code> - the main system configuration file.
* <code>/etc/nixos/hardware-configuration.nix</code> - a hardware-specific configuration file, including detected devices and modules.


If you are using an SSD it may be useful to enable TRIM support as well as set filesystem flags to improve the SSD performance:
For details on configuring the system configuration file, see [[Overview of the NixOS Linux distribution#Declarative Configuration]].


fileSystems."/".options = [ "noatime" "nodiratime" "discard" ];
= Usage =


(apologies have no idea how to format the above...)
<syntaxHighlight lang=console>
# nixos-generate-config
</syntaxHighlight>
 
This will create configuration files based on the currently mounted system. This is typically used where NixOS is already installed. By default, <code>nixos-generate-config</code> will not overwrite an existing <code>configuration.nix</code>. To force overwrite an existing file, pass the <code>--force</code> option.
 
== Generate configuration for a target root ==
 
To generate configuration files with a specific root directory (commonly used during installation):
 
<syntaxhighlight lang="console">
# nixos-generate-config --root /mnt
</syntaxhighlight>
 
This writes configuration files to <code>/mnt/etc/nixos/</code>.
 
== Show hardware configuration ==
 
To print the detected hardware configuration to standard output without writing to disk:
 
<syntaxhighlight lang="console">
# nixos-generate-config --show-hardware-config
</syntaxhighlight>
 
= Specifying specific hardware =
 
A collection of hardware specific platforms with their config can be found at [https://github.com/NixOS/nixos-hardware NixOS Hardware repository].  
 
[[Category:NixOS]]
[[Category:Configuration]]

Latest revision as of 18:00, 24 May 2025

Generate NixOS configuration modules.

This command is part of the nixos-install-tools package. It analyzes your hardware configuration and generates two files of:

  • /etc/nixos/configuration.nix - the main system configuration file.
  • /etc/nixos/hardware-configuration.nix - a hardware-specific configuration file, including detected devices and modules.

For details on configuring the system configuration file, see Overview of the NixOS Linux distribution#Declarative Configuration.

Usage

# nixos-generate-config

This will create configuration files based on the currently mounted system. This is typically used where NixOS is already installed. By default, nixos-generate-config will not overwrite an existing configuration.nix. To force overwrite an existing file, pass the --force option.

Generate configuration for a target root

To generate configuration files with a specific root directory (commonly used during installation):

# nixos-generate-config --root /mnt

This writes configuration files to /mnt/etc/nixos/.

Show hardware configuration

To print the detected hardware configuration to standard output without writing to disk:

# nixos-generate-config --show-hardware-config

Specifying specific hardware

A collection of hardware specific platforms with their config can be found at NixOS Hardware repository.