all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: David Larsson <mail@selfhosted.xyz>
To: guix-devel@gnu.org, Alexandre Oliva <lxoliva@fsfla.org>
Subject: Re: BTRFS, LVM, LUKS
Date: Sun, 30 Jun 2019 12:37:02 +0000	[thread overview]
Message-ID: <20190630123702.Horde.uF3cWN8zc8iRH357lWrJgB7@cloud.selfhosted.xyz> (raw)
In-Reply-To: <orblyfzxhs.fsf@lxoliva.fsfla.org>

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

  parent reply	other threads:[~2019-06-30 12:37 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-30  1:13 BTRFS, LVM, LUKS Alexandre Oliva
2019-06-30 10:38 ` Giovanni Biscuolo
2019-07-04 19:20   ` Alexandre Oliva
2019-07-05 17:54     ` Giovanni Biscuolo
2019-07-06 19:23       ` Alexandre Oliva
2019-07-05 20:52     ` Ludovic Courtès
2019-07-06 19:25       ` Alexandre Oliva
2019-07-07 14:40         ` Ludovic Courtès
2019-06-30 12:37 ` David Larsson [this message]
2019-07-04 19:28   ` Alexandre Oliva
2019-07-01  3:27 ` Christopher Lemmer Webber
2019-07-05 20:47   ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190630123702.Horde.uF3cWN8zc8iRH357lWrJgB7@cloud.selfhosted.xyz \
    --to=mail@selfhosted.xyz \
    --cc=guix-devel@gnu.org \
    --cc=lxoliva@fsfla.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.