<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-rollback">
  <title>Rolling Back Configuration Changes</title>
  <para>
    After running <literal>nixos-rebuild</literal> to switch to a new
    configuration, you may find that the new configuration doesn’t work
    very well. In that case, there are several ways to return to a
    previous configuration.
  </para>
  <para>
    First, the GRUB boot manager allows you to boot into any previous
    configuration that hasn’t been garbage-collected. These
    configurations can be found under the GRUB submenu <quote>NixOS -
    All configurations</quote>. This is especially useful if the new
    configuration fails to boot. After the system has booted, you can
    make the selected configuration the default for subsequent boots:
  </para>
  <programlisting>
# /run/current-system/bin/switch-to-configuration boot
</programlisting>
  <para>
    Second, you can switch to the previous configuration in a running
    system:
  </para>
  <programlisting>
# nixos-rebuild switch --rollback
</programlisting>
  <para>
    This is equivalent to running:
  </para>
  <programlisting>
# /nix/var/nix/profiles/system-N-link/bin/switch-to-configuration switch
</programlisting>
  <para>
    where <literal>N</literal> is the number of the NixOS system
    configuration. To get a list of the available configurations, do:
  </para>
  <programlisting>
$ ls -l /nix/var/nix/profiles/system-*-link
...
lrwxrwxrwx 1 root root 78 Aug 12 13:54 /nix/var/nix/profiles/system-268-link -&gt; /nix/store/202b...-nixos-13.07pre4932_5a676e4-4be1055
</programlisting>
</section>
