a099ca4505
[Squashed commits to make git blame etc. more likely to work. -ED]
37 lines
1.3 KiB
XML
37 lines
1.3 KiB
XML
<section xmlns="http://docbook.org/ns/docbook"
|
||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||
version="5.0"
|
||
xml:id="sec-nix-store-corruption">
|
||
|
||
<title>Nix Store Corruption</title>
|
||
|
||
<para>After a system crash, it’s possible for files in the Nix store
|
||
to become corrupted. (For instance, the Ext4 file system has the
|
||
tendency to replace un-synced files with zero bytes.) NixOS tries
|
||
hard to prevent this from happening: it performs a
|
||
<command>sync</command> before switching to a new configuration, and
|
||
Nix’s database is fully transactional. If corruption still occurs,
|
||
you may be able to fix it automatically.</para>
|
||
|
||
<para>If the corruption is in a path in the closure of the NixOS
|
||
system configuration, you can fix it by doing
|
||
|
||
<screen>
|
||
$ nixos-rebuild switch --repair
|
||
</screen>
|
||
|
||
This will cause Nix to check every path in the closure, and if its
|
||
cryptographic hash differs from the hash recorded in Nix’s database,
|
||
the path is rebuilt or redownloaded.</para>
|
||
|
||
<para>You can also scan the entire Nix store for corrupt paths:
|
||
|
||
<screen>
|
||
$ nix-store --verify --check-contents --repair
|
||
</screen>
|
||
|
||
Any corrupt paths will be redownloaded if they’re available in a
|
||
binary cache; otherwise, they cannot be repaired.</para>
|
||
|
||
</section> |