Hello,

I'd like to share with you some experiences with using Guix.



I tried to install Guix as alternative OS to my Gentoo and openSUSE
installations to give a try. I tried unsupported scenario -
installation on LVM volume and separate /boot partition until I was
told it is unsupported. Separate boot wasn't hard as I had to just
copy generated files so they are loaded. But eventually I gave up
preparing it manually or automating it and I had rather put another
Grub in the same partition and set up chainloading.

I met then two problems:

1] if you set device to partition (and not to disk) in your grub-configuration 
like this:

 (bootloader (grub-configuration
               (device "/dev/sda4")))

`guix system init' will fail on grub installation. By default Grub
tries to fit in the beginning of partition and fails if it can't fit
in. I asked about this behaviour on Grub mailing list and it seems
that there are two options:

  a] add `--force' to command line and use block list for keeping information 
about position of Grub's core.img
  b] use filesystem which allows embedding - BtrFS or ZFS

I verified both options (a] and then b] with BtrFS) and it no longer fails.

But,
ad a] - I don't feel safe passing `--force' to grub-install every
time. So if installation fails on this point and you'd like to use
your FS anyway, you can pass `--no-grub' to `guix system init' and
then rung grub-install manually.

ad b] - I don't feel safe using still experimental BtrFS.


2] current Grub version in Guix during boots generated this error:

error: symbol 'grub_term_highlight_color' not found

and started rescue shell.
It seems to be a bit mystic bug:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1289977

I used my Gentoo's version of Grub to fix it and then it worked.



I'm also interested in running chroot in Guix. This is something I
like about all Linux distribution I use - I can run Linux and at the
same time I prepare another Linux root filesystem for use. It seems
that chrooting into Guix may be tricky.

I prepared this script to be placed somewhere into Guix:

----------%<---------
#!/run/current-system/profile/bin/bash

export LIBRARY_PATH=LIBRARY_PATH=/root/.guix-profile/lib
export CPATH=/root/.guix-profile/include
export 
PATH=/run/setuid-programs:/run/current-system/profile/sbin:/root/.guix-profile/bin:/run/current-system/profile/bin
export 
INFOPATH=/root/.guix-profile/share/info:/run/current-system/profile/share/info

exec bash -i
----------%<--------

for i in dev proc sys; do mount -R /$i /guix_mountpoint/$i; done
chroot /guix_mountpoint/ /helper_script.sh

Ludovic said that `guix packages --search-paths' should generate similar path 
configuration so it may be the right way, but it didn't work for me.


And last thing I wanted to mention, you have kind community around Guix and 
Guile. It's really motivating!

Best regards,

Tomas Cech
Sleep_Walker

Reply via email to