(address . bug-guix@gnu.org)
When bootloader installation fails or when the installed bootloader
does not allow selecting old generations (like the U-Boot bootloader),
chrooting may become necessary to repair a broken Guix system.
Guix should offer officially supported instructions in the manual and
perhaps more tooling for chrooting into an installed Guix System from
a Guix install USB/DVD/SD (and perhaps from a foreign distro) to
enable debugging.
Arch has https://wiki.archlinux.org/index.php/Chroot#Usage. They
offer an official arch-chroot script to chroot into an Arch system (it
is shipped with their install image) as well as documentation for
chrooting without the script. Their documentation for chrooting
without the arch-chroot script also works on Guix, but some more steps
are required:
* Mounting the (perhaps encrypted) drive with the broken Guix System.
This is not part of Arch’ chroot instructions, but could perhaps be
part of a more interactive guix-chroot script, since Guix’ target
audience is different from Arch’s. Note that the name given to
cryptsetup must be the same as specified in /etc/config.scm if one
wishes to reconfigure from the chroot.
* When following the
instructions from the Arch wiki (without rebinding /run), I can
chroot into /run/current-system/profile/bin/bash. What if the user
wants a different shell and not bash? This perhaps could be
selectable in an (interactive?) guix-chroot script.
* Afterwards a Guix daemon must be started in the chroot to use Guix
from within such a chroot.
* The /run/current-system/profile/etc/profile,
~/.guix-profile/etc/profile and ~/.config/guix/current/etc/profile
need to be sourced to use the installed system’s Guix profile.
* Networking automatically works for me in the chroot without needing
to follow any Arch wiki instructions to get it working, but I do not
know if that is always the case.
Note that for me reconfiguring did not work when chrooting from a
Debian live image into Guix because GRUB claimed to have no crypto
support. I needed to chroot from the Guix install image for
reconfiguring. Perhaps the environment visible to GRUB is not pure.
What do you think? Is a guix-chroot script a good idea? I do not
know how to write one. Do you think only chroot instructions in the
manual are a better solution? They should explain all the above steps
though, I believe.
Regards,
Florian