Subject: bug#30760: guix system init broken on non GuixSD

From: Danny Milosavljevic <[email-masked]>
Date: Mon, 12 Mar 2018 13:24:37 +0100

> I'm afraid this is still not correct.
> 
> # guix system init config.scm /mnt/mnt/
> ...
> config.scm:64:9: error: you may need these modules in the initrd for /dev/nvme0n1p2: shpchp
> hint: Try adding them to the `initrd-modules' field of your `operating-system' declaration, along these lines:
> 
>       (operating-system
>         ;; ...
>         (initrd-modules (append (list "shpchp")
>                                 %base-initrd-modules)))
> 
> I don't have `shpchp` as a module as I have it compiled into kernel
> directly. Can I somehow disable the check?

I think it's a good idea to add a command-line switch that disables the check.

But then people will just disable the check always and it won't improve until
it's correct.  It's still a good idea to give people the choice.

@Ludo: It would also be great to have a command-line switch to check the slow,
correct, way.  We'd also have to check modules.builtin of the new system's initrd
- but we'd do it only when the option is passed :)

I suggest to change it to:

> # guix system init config.scm /mnt/mnt/
> ...
> config.scm:64:9: WARNING: you may need these modules in the initrd for /dev/nvme0n1p2: shpchp
                   ^^^ not error
> hint: Try adding them to the `initrd-modules' field of your `operating-system' declaration, along these lines:
> 
>       (operating-system
>         ;; ...
>         (initrd-modules (append (list "shpchp")
>                                 %base-initrd-modules)))
>
> If you think this warning is mistaken, invoke guix again with the option
> --enable-paranoid-initrd-checks to be on the safe side, or with the option
> --skip-initrd-checks to continue regardless.