guix-devel
[Top][All Lists]
Advanced

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

Re: BTRFS, LVM, LUKS


From: David Larsson
Subject: Re: BTRFS, LVM, LUKS
Date: Sun, 30 Jun 2019 12:37:02 +0000

Hi lxo,
I can give some advice reg. libreboot+luks+btrfs, but not reg. LVM and I 
haven't tested a a btrfs multi-disk setup with GuixSD either unfortunately. 

Using btrfs and luks on a librebooted laptop works well.

> Full-disk encryption (LUKS) is also a strict requirement for me, and so
> is multi-disk BTRFS.

When using libreboot and GuixSD, I suggest that you have in the libreboot grub:

cryptomount -a
configfile /boot/grub.cfg 

in order to get all the Guix rollback features that are related to the 
grub-menu entries without needing to reflash after each guix system reconfigure.

But I suggest that /boot/grub.cfg is a symlink to the /boot in the Guix root 
subvolume. So the full path to Guix's boot.cfg would be:

/guix_rw/boot/grub.cfg
 
By loading the Guix grub from libreboot grub like that you can reboot to a new 
btrfs snapshot such as /guix_rw_test before doing risky things just by changing 
the destination file of the symlink.

The one issue I have had with this is that the GuixSD system reconfigure 
command generates grub-entries with the current relative path to initrd etc. so 
I had to write a small bash-script that replaced the grub-entries with the full 
paths, like this:

function grubfix(){
        sudo sed -i "s/linux\ \/gnu/linux\ \/guix_rw\/gnu/g" "$1"
        sudo sed -i "s/initrd\ \/gnu/initrd\ \/guix_rw\/gnu/g" "$1"
        sudo sed -i "s/--set\ \/gnu/--set\ \/guix_rw\/gnu/g" "$1"
}

which I then wrapped to a bash function called guix-update() that invokes guix 
system reconfigure and ends with the grubfix() above.

> 
> I have not used GuixSD yet, to a large extent due to the stated lack of
> LVM support. I haven't got myself into Guix either *blush*, but maybe I
> could get started with it. I suppose VMs might be a way to get started,
> but... the machines I use are not very powerful, as in, laptops old
> enough as to support LibreBoot, so I haven't used virtualization much
> myself.

I ran GuixSD on an old x200 for a few a years and had a really painful time 
with overheating issues. This happens as soon as you have to build anything 
from source which happens every now and then. I would primarily recommend that 
you get a more powerful laptop like one of the Librems.

There are though a few ways to mitigate small laptop heating issues:
  - run a Guix substitute server yourself on a more powerful machine (quite 
easy setup).
  - make sure to use several of the freely available substitute servers (e.g. 
berlin.guixsd.org)
  - underclocking
  - limiting the reconfigure to fewer cores

To limit core cores and add additional substitute servers, you can add to your 
system services list something like below:

 (modify-services
                (guix-service-type config =>
                        (guix-configuration
                          (inherit config)
                          (substitute-urls
                            (cons *
 "https://mirror.hydra.gnu.org"; "https://mirror.guixsd.org";
                              "https://berlin.guixsd.org";
                              %default-substitute-urls))))
;                           (extra-options                                      
                                                                               
;                             '("--cores=1"))))) ; to avoid overheating from 
build-processes                                                                 
  
             %base-services)))

> 
> Thanks in advance for any guidance. I'm lxo on IRC.
> 
> -- 
> Alexandre Oliva, freedom fighter he/him FSFLA.org/blogs/lxo
> Be the change, be Free! FSF Latin America board member
> GNU Toolchain Engineer Free Software Evangelist
> Hay que enGNUrecerse, pero sin perder la terGNUra jamás - Che GNUevara

I wish you the best of luck with GuixSD!

// David



reply via email to

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