Subject: Re: bug#33999: CP437: Invalid Argument on init

From: Danny Milosavljevic <[email-masked]>
Date: Thu, 10 Jan 2019 18:59:05 +0100

Hi,

On Thu, 10 Jan 2019 07:15:10 -0800
Bryan Ferris <[email-masked]> wrote:

> I've linked to two videos here, one of the boot (the screen with the GNU
> logo and "100% freedom" on it) and one of the init (where Shepherd reports
> errors,

Thanks!  I've viewed those.

>I think it's dmesg?).

It depends.  On early boot it's dmesg and once syslog is up it's syslog.

> Boot:
> https://drive.google.com/file/d/1YMbCI3BvznhMI_eYYTxMvxJC2SKlNqSJ/view?usp=sharing
> Init:
> https://drive.google.com/file/d/1CZov16Xrpy9D8DMN9eHeANjR7UHh2WpL/view?usp=sharing

Maybe the CP437 is not harmless after all.

Please try adding the unquoted part below at the indicated place:

> >> >   (file-systems (cons*
> >> >                   (file-system
> >> >                     (device (file-system-label "ESP"))
> >> >                     (mount-point "/boot/efi")
> >> >                     (type "fat")  
> >>

 (check? #f)

> >> >                   )  

Then invoke

  guix system reconfigure /etc/config.scm

as root in order for it to be applied and reboot.

This prevents fsck.fat from being invoked - so we hopefully also doesn't
need CP437 any more.

If that doesn't help, try this (it's kinda dangerous :( ):

> >> >   (file-systems (cons*
> >> >                   (file-system
> >> >                     (device (file-system-label "ESP"))
> >> >                     (mount-point "/boot/efi")
> >> >                     (type "fat")  
> >>

(check? #f)
(needed-for-boot? #f)

> >> >                   )  

Then invoke

  guix system reconfigure /etc/config.scm

as root in order for it to be applied and reboot.

This prevents fsck.fat from being invoked and it also prevents the
initial ram disk (a very early tiny GNU system which runs right after the kernel
starts up and before init) from trying to mount /boot/efi .  The real system
will still mount /boot/efi later.

It would be interesting if 

(1) This fixes the problem (I don't think so), or
(2) It reduces the number of error messages and makes it less bad.

After all this, if it still doesn't work:

Try adding the unquoted part:

> >> >   (file-systems (cons*
> >> >                   (file-system
> >> >                     (device (file-system-label "ESP"))
> >> >                     (mount-point "/boot/efi")
> >> >                     (type "fat")  
> >>

(check? #f)
(needed-for-boot? #f)
(mount? #f)

> >> >                   )  

Then invoke

  guix system reconfigure /etc/config.scm

as root in order for it to be applied and reboot.

This prevents mounting of /boot/efi entirely (it's pretty dangerous).

Should your system not boot any more you can select the older generation
in the grub boot menu.  It's also possible that you can't run

  guix system reconfigure /etc/config.scm

anymore after this.  If so, please invoke

  mount /boot/efi

as root.  Then you can invoke

  guix system reconfigure /etc/config.scm

once.

It's likely that the latter will be a successful workaround to
the original problem.
It would still be good if we got to the root cause later.