Subject: operating-system file-system with (check? #t) but (needed-for-boot #f) pauses boot until user interaction
From: Danny Milosavljevic <[email-masked]>
To: <[email-masked]>
Date: Wed, 1 Mar 2017 17:38:38 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

If one has a operating-system file-system with (check? #t) but (needed-for-boot #f), the next boot after reconfiguring will boot into a Guile REPL because the initrd doesn't contain the fsck tool for that file system (because all the file-systems with (needed-for-boot #f) have been filtered out). Therefore, the normal boot process breaks.

Possible fixes:
- If (check? #t) but (needed-for-boot? #f), include the tool anyway, XOR
- If (check? #t) but (needed-for-boot? #f), don't check anyway

This can be reproduced for example by connecting an USB flash storage stick with a filesystem with a type on it that's not used in any other file-system declaration.

NB: If (check? #t) and (needed-for-boot? #t), everything works fine.

For all these, (mount? #t) (the default).

This is on Guix master from a few minutes ago.