[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re : Re: Librem Mini with pureboot/head don't boot GuixSD

From: Roland Everaert
Subject: Re : Re: Librem Mini with pureboot/head don't boot GuixSD
Date: Wed, 01 Sep 2021 11:04:18 +0000

Hello again,

I am slowly moving forward with this topic.

I manage to reinstall GuixSD on the librem Mini. But, now I am having issues 
with configuring GuixSD to add an entry to the bootloader menu, so, I can tell 
HEADS to actually use the kernel in the separate partition mounted to /boot. I 
discover that HEADS, actually, read the content of grub.cfg to propose a list 
of system to boot on.

Without the form (menu-entries), in the bootloader definition, 'reconfigure' 
runs fine. So what am I doning wrong?

When the form (menu-entries) is not present, the only notable thing is that the 
system does not mount the partition ("15dd9d6b-801b-4c57-b2dd-8712405d54e1") to 
/boot, as a part of the reconfigure operation and the fact that the copy of the 
kernel files should happen after the reconfigure. However, after rebooting the 
system, the partition is mounted properly, so it is only during the reconfigure 
that the partition has not been mounted. Is this intentional?

When executing reconfigure with the file pasted below, I got a huge backtrace. 
Below is the head of the backtrace.

          16 (primitive-load "/root/.config/guix/current/bin/guix")
In guix/ui.scm:
   2185:7 15 (run-guix . _)
  2148:10 14 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10 13 (with-exception-handler _ _ #:unwind? _ # _)
In guix/status.scm:
    820:3 12 (_)
    800:4 11 (call-with-status-report _ _)
In guix/scripts/system.scm:
   1228:4 10 (_)
In ice-9/boot-9.scm:
  1752:10  9 (with-exception-handler _ _ #:unwind? _ # _)
In guix/store.scm:
   658:37  8 (thunk)
   1320:8  7 (call-with-build-handler #<procedure 7fab87073450 at g…> …)
  2108:24  6 (run-with-store #<store-connection 256.99 7fab87069910> …)
In guix/scripts/system.scm:
  1252:15  5 (_ _)
    807:9  4 (perform-action reconfigure #<<image> name: #f format:…> …)
In gnu/bootloader/grub.scm:
   496:13  3 (grub-configuration-file #<<bootloader-configuration> …> …)
In srfi/srfi-1.scm:
    241:2  2 (map _ _)
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure map: Wrong type argument: (#<<menu-entry> label: "GNU with 
Linux-Libre 5.13.12" device: #<<uuid> type: ext4 bv: #vu8(141 147 13 97 214 101 
77 110 183 1 83 125 191 171 22 162)> device-mount-point: "/" linux: 
#<file-append #<package linux-libre@5.13.12 gnu/packages/linux.scm:759 
7fab8a058000> "/ bzImage"> linux-arguments: 
("--root=8d930d61-d665-4d6e-b701-537dbfab16a2" #<gexp (string-append 
"--system=" #<gexp-input #<<operating-system> kernel: #<package 
linux-libre@5.13.12 gnu/packages/linux.scm:759 7fab8a058000> 
kernel-loadable-modules: () kernel-arguments: 
("modprobe.blacklist=usbmouse,usbkbd" "quiet") hurd: #f bootloader: 
#<<bootloader-configuration> bootloader: #<<bootloader> name: grub package: 
#<package grub@2.06 gnu/packages/bootloaders.scm:90 7fab8a226780> installer: 
#<gexp (lambda (bootloader device mount-point) (let ((grub (string-append 
bootloader "/sbin/grub-install")) (install-dir (string-append mount-point 
"/boot"))) (

Below is my config.scm content:

(use-modules (gnu) (guix build utils))
(use-service-modules desktop networking ssh xorg)

(for-each (lambda (file)
            (let ((target (string-append "/boot/" (basename file))))
              (unless (file-exists? target)
                (format #t "copying '~a' to /boot...~%" file)
                (copy-recursively file target
                                  #:log (%make-void-port "w")))))

          ;; /run/current-system/kernel is a profile.  The trick
          ;; below allows us to get at its actual directory name,
          ;; which is what 'grub.cfg' refers to.
          (list (dirname
                 (canonicalize-path "/run/current-system/kernel/bzImage"))
                (dirname (canonicalize-path "/run/current-system/initrd"))))

 (locale "fr_BE.utf8")
 (timezone "Europe/Brussels")
  (keyboard-layout "us" "altgr-intl"))
 (host-name "dark-dwarf")
 (users (cons* (user-account
                (name "roland")
                (comment "Roland")
                (group "users")
                (home-directory "/home/roland")
                 '("wheel" "netdev" "audio" "video")))
 (packages (append (map specification->package
                        '("nss-certs" "restic" "gnupg"))
   (list (service xfce-desktop-service-type)
         (service openssh-service-type)
           (keyboard-layout keyboard-layout))))
   (bootloader grub-bootloader)
   (targets '("/dev/sdb"))
   (keyboard-layout keyboard-layout)
     (label "Guix for Pureboot")
     (device (uuid "15dd9d6b-801b-4c57-b2dd-8712405d54e1"))))))
  (list (uuid "22be707b-6a27-4f14-81cb-6a1a9c6d2c12")))
  (append (list (file-system
                 (mount-point "/")
                  (uuid "8d930d61-d665-4d6e-b701-537dbfab16a2"
                 (type "ext4"))
                 (mount-point "/boot")
                 (dependencies (list "/"))
                  (uuid "15dd9d6b-801b-4c57-b2dd-8712405d54e1"
                 (type "ext4")))
          %base-file-systems)    ))

Roland Everaert
Use the F.O.S.S., Luke

Sent with ProtonMail Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

Le vendredi 20 août 2021 à 00:39, Thiago Jung Bauermann 
<> a écrit :

> Hello Roland,
> Em quinta-feira, 19 de agosto de 2021, às 11:57:45 -03, Roland Everaert
> escreveu:
> > I manage to successfuly copy the needed files to /boot using the `for each` 
> > loop from ‘%copy-kernel-and-initrd’, Thank You.
> That’s great!
> > However, I need to resize (i.e. reduce) the root filesystem so /boot can
> >
> > live in its own one. Currently, copying the kernel files too /boot is
> >
> > useless, as HEAD will scan and sign all the files in /, anyway.
> >
> > Did you have any article discussing such process?
> >
> > I find plenty of articles about increasing the root partition, but, none
> >
> > to reduce it.
> >
> > As the root partition cannot be unmounted online, I need to know if there
> >
> > is a simple way to "switch to an offline mode of sort". For example, I
> >
> > could map a minimal root FS in memory and chroot to it. An other
> >
> > possibility is to copy a guix system to a USB drive and boot from it.
> >
> > The USB option seems the easiest, but the one with the RAMFS seems neat.
> >
> > What are the recommandations of the fine folks on this ML, for such
> >
> > operation?
> I don’t have any resource about how to shrink a partition and its
> filesystem. I would boot into some distro’s live image and do it from
> there.
> Shrinking a partition is dangerous and error-prone because there are two
> steps:
> 1.  Shrink the filesystem
> 2.  Shrink the partition
>     If you get the size calculation wrong in step 2 you’ll end up cutting off
>     the end of your filesystem and thus corrupt it.
>     So I believe the recommended practice is to always shrink the partition to
>     be slightly bigger than the filesystem to make sure you don’t take that
>     risk. You can then optionally grow back the filesystem to fill the slack
>     space (filesystem resizing tools can automatically calculate the correct
>     size to fill the partition).
>     Since this is a risky operation, you have to make sure you have backups of
>     everything. And since you need to do that, to be honest what I would
>     really do is wipe everything out, repartition the disk to the new layout
>     and then restore from backups...
>     --
>     Thanks,
>     Thiago

reply via email to

[Prev in Thread] Current Thread [Next in Thread]