[Top][All Lists]

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

Re: How to install guix system from existing linux with guix package man

From: Giovanni Biscuolo
Subject: Re: How to install guix system from existing linux with guix package manager?
Date: Mon, 30 May 2022 11:14:32 +0200

Hi kiasoc5, writes:


>> I never tried this, but beware that the UID and GID of user(s) in
>> your new Guix System sould be the very same of the arch system to be
>> able to access homes, /including/ Guix profiles of users (stored in
>> /home/$USER...)
> Yes, I believe most Linuxes set the first created user to a UID and
> GID of 1000, so hopefully this is not an issue.

Automatic UID and GID assignemt works that way /but/ when
migrating/sharing an OS that's not deterministic and I strongly suggest
you to use the "source system" (arch in your case) UID and GID in your
target system (Guix System in your case)

>> Important: if you want to be able to share the store between the two
>> systems you should also share the /status/ of Guix, stored in
>> LOCALSTATEDIR/guix/ (usually /var/guix), since it contains a lot of
>> useful data and AFAIU it must be kept in sync between the foreign distro
>> and the Guix System [1]. This is the most critical part about being
>> able to share Guix between two different host operating systems.
> Should I make /var/guix a subvolume as well?

Oh yes, I forgot to mention this!

Both /gnu/store and /var/guix must be shared so you need a dedicated
block device: partition or LVM/btrfs (sub)volume.  An alternative could
be to bind mount /gnu/store and /var/guix on the "target system" [1]
(Guix System in your case)... but IMHO the dedicated block device is
better for dual (multiple) boot systems like in your case

> ALso the only directory in /gnu is /gnu/store right? So I could just
> have an @gnu subvolume mounted on /gnu instead of a @gnu-store
> subvolume mounted on /gnu/store?

AFAIK /gnu is still not used by any other software to store files, but
it could be in the future... who knows?  For this reason I'd share only
/gnu/store for Guix and nothing more, eventually sharing other
/gnu/folders in the future, IF needed.

>> Last but not least, once you have installed Guix System you have to
>> decide what manages your GRUB configuraton: Guix System or arch, you
>> cannot share the grub config between the two; Guix System have a
>> stateless GRUB config (and it' good and fair) so I suggest you to use it
>> for GRUB configuration, but if you decide to keep using arch this is a
>> good tip:
> Thanks for the tip. What if I install another bootloader on Arch like
> systemd boot? Then there will not be a bootloader conflict and I can
> select one with efibootmgr.

Yes of course you can always select your preferred boot mamager with
efibootmgr, but I'm lazy and I like to have GRUB manage all my OSs :-)

> May 28, 2022, 10:51 AM, "Giovanni Biscuolo" < 
> > wrote:


>> As a side note, you could also consider to switch to Guix System and
>> keep your foreign distro running as an LXC container sharing store and
>> state with the host, but you have to be familiar with LXC tooling [1]
>> AND know how to "convert" a "physical" machine to an LXC container [2],
>> giving the guests acces to the host GPU [3] for graphical applications
>> or using remote dektop applications like SPICE or VNC... it's a little
>> bit complex but pure fun!
> Would an LXC approach require two graphics cards? I only have an
> integrated GPU.

No, you can share your GPU with guests or connect to guests using remote
desktop, as mentioned above ;-)

Happy hacking! Gio'

[1] I'm using this technique in my LXC containers, excerpt from one

--8<---------------cut here---------------start------------->8---

lxc.mount.entry=/gnu/store gnu/store none ro,bind 0 0
lxc.mount.entry=/var/guix var/guix none bind 0 0

--8<---------------cut here---------------end--------------->8---

Giovanni Biscuolo

Xelera IT Infrastructures

Attachment: signature.asc
Description: PGP signature

reply via email to

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