Subject: [bug#57496] [PATCH 0/2] Add support for chain-loader

From: [email-masked]
Date: Wed, 31 Aug 2022 13:23:06 +0800

From: tiantian <[email-masked]>

Hi Guix,

I just started using guix system soon. I used  archlinux before.
Now I want to move from archlinux to guix system. It took me
about 2 years to move from windows to archlinux, and now it may
take me a long time to complete the moving from ArchLinx to guix system.
During this period, guix system and archlinux will coexist on my computer.
Therefore, it is necessary for me to easily enter another system in
the boot interface.
So I want to add support for chain-loader in menu-entry of guix system.

Why do I want to use chainloader instead of linux and initrd?

1. guix system and archlinux are independent of each other in my computer.
They are just on the same computer, but they have their own disk partitions.
I also don't want them to interfere with each other.
(I have no money to buy more computers. I just have one computer.)

2. If using linux and initrd, modify the boot arguments of one of them,
which must be in the other system. I think it is strange and inconvenient.
It's also not in line with the above idea of mutual independence and
non-interference.

3. I am a novice. If an unexpected event occurs when using linux and initrd,
I can't repair it quickly and timely.

Is the chain-loader free?

The chain-loader is a function of grub, and grub's protocol is GPL3.
I think it is free. Although chain-loader can boot nonfree system like windows,
it's like nonfree software can run on linux-libre, and linux-libre is free.

If Guix think it's nonfree, I will only keep these changes in my computer.

Here I want to express my thanks to Josselin Poiret. When I tried to start
this task, I found that there was a bug with the menu-entry. When the device
of menu-entry is UUID or file-system-label, an error will be reported by
'guix system' command. I can't fix it. Then I reported this bug in bug#57307.
Thanks to Josselin Poiret fixing the bug, I can continue this task.

My English is not good, I mainly rely on translation software. If I have any
grammar problems and tone problems, please forgive me. I am sending these emails
with respect.

Thanks,
tiantian

tiantian (2):
  gnu: bootloader: Extend `<menu-entry>' for chain-loader.
  gnu: bootloader: grub: Add support for chain-loader.

 doc/guix.texi           | 15 +++++++++
 gnu/bootloader.scm      | 40 ++++++++++++++++++----
 gnu/bootloader/grub.scm | 73 ++++++++++++++++++++++++-----------------
 3 files changed, 92 insertions(+), 36 deletions(-)

base-commit: 6beadc82df204f315d06ea35f2e232bb32f8e440
-- 
2.37.2