(address . bug-guix@gnu.org)
Today my Guix System crashed during the boot process for external
reasons.
Upon restart, booting a system would drop into the REPL right after the
following line:
Toggle snippet (3 lines)
making '/var/...' the current system...
complaining that the symlink already exists.
I checked gnu/build/activation.scm (activate-current-system), and there
is this:
Toggle snippet (6 lines)
;; Atomically make SYSTEM current.
(let ((new (string-append %current-system ".new")))
(symlink system new)
(rename-file new %current-system)))
And indeed, there was a dangling /run/current-system.new file on my
disk.
After removing it (from a live USB, didn't know how to do this from the
Guile REPL), the system succeeded to boot.
The fix should be easy: ensure that (symlink system new) overwrites any
potentially existing file.
Cheers!
Pierre