Subject: Re: bug#19220: GRUB fails to find the ‘bzImage’ file when ‘/boot’ is on a separate partition

From: [email-masked] (Ludovic Courtès)
Date: Sun, 30 Nov 2014 23:04:28 +0100

Could you please try the attached patch:

diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm
index 00e09f9..5d0f4f1 100644
--- a/gnu/system/grub.scm
+++ b/gnu/system/grub.scm
@@ -209,11 +209,12 @@ entries corresponding to old generations of the system."
     (match-lambda
      (($ <menu-entry> label linux arguments initrd)
       #~(format port "menuentry ~s {
+  search --file --set ~a/bzImage~%
   linux ~a/bzImage ~a
   initrd ~a
 }~%"
                 #$label
-                #$linux (string-join (list #$@arguments))
+                #$linux #$linux (string-join (list #$@arguments))
                 #$initrd))))
 
   (mlet %store-monad ((sugar (eye-candy config #~port)))
@@ -223,14 +224,9 @@ entries corresponding to old generations of the system."
             #$sugar
             (format port "
 set default=~a
-set timeout=~a
-search.file ~a/bzImage~%"
+set timeout=~a~%"
                     #$(grub-configuration-default-entry config)
-                    #$(grub-configuration-timeout config)
-                    #$(any (match-lambda
-                            (($ <menu-entry> _ linux)
-                             linux))
-                           all-entries))
+                    #$(grub-configuration-timeout config))
             #$@(map entry->gexp all-entries)
 
             #$@(if (pair? old-entries)

>From the system, run:

  ./pre-inst-env guix system reconfigure config.scm

and then reboot.

I believe this fixes the problem.

Thanks,
Ludo’.