unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Tobias Geerinckx-Rice <somebody@not-sent-or-endorsed-by.tobias.gr>
To: gnuforever <help@tuyizere.org>
Cc: guix-devel@gnu.org
Subject: Re: boot multiple Gnu/Linux Distributions from one USB key
Date: Tue, 12 Mar 2019 11:34:18 +0100	[thread overview]
Message-ID: <8736nsjs9h.fsf@nckx> (raw)
In-Reply-To: <774d552beb6266a199523203e1ce6b8c@tuyizere.org>

gnuforever (yay!),

gnuforever wrote:
> I configured a usb stick to boot multiple Gnu/Linux 
> Distributions by
> following this tutorial:
> https://community.linuxmint.com/tutorial/view/1846
> It works for Tails, PureOS, Trisquel and Parabola

It works because these distributions have specific support for 
loopback booting, which is a non-trivial amount of work.  You'll 
note the following in the GRUB menu entry for ‘pclinuxos’:

  linux … bootfromiso=/boot-isos/pclinuxos64-kde-2014.05.iso …

This tells the pclinuxos early user space (initramfs) that it 
should do some loop mounting and other magic before mounting the 
root partition.  You'll also note that Debian-based distributions 
use a completely different magic word:

  linux … iso-scan/filename=$isofile …

because none of this is standardised or transparent.  It's an 
explicit distro feature that needs to be implemented somewhere in 
the init code.

> I am trying to add GuixSD.

Unfortunately, the Guix System doesn't implement anything like 
that yet.

> For the menuentry, I always start from the grub.cfg embedded in 
> the
> iso file.
> I add or remove options if needed.
>
> For GuixSD, I came up with this configuration:
> I used label instead of uuid.
>
>     ## GUIXSD
>     menuentry "GUIXSD - Gnu/Linux" {
>         set 
>         isofile="/boot-isos/guixsd-install-0.16.0.x86_64-linux.iso"
>         loopback loop (hd0,1)$isofile
>         search --label --set GUIXSD_IMAGE
>         linux
> (loop)/gnu/store/0zajbn9q39yva4l0zzrcshlll8qikzba-linux-libre-4.19.6/bzImage9
> --root=GUIXSD_IMAGE
> --system=(loop)/gnu/store/l4hgd4l7acrqwi3imav9akcvv4sbj85j-system
> --load=(loop)/gnu/store/l4hgd4l7acrqwi3imav9akcvv4sbj85j-system/boot
>         initrd
> (loop)/gnu/store/9nqaksx40zh5d6cg5rim3f3spy56bfb9-raw-initrd/initrd.cpio.gz
>     }
>
> It doesn't work.

Well, it works up to and including booting the kernel, which is 
still pretty cool when you think about it :-)

Unfortunately, all off GRUB's loopback magic is local to GRUB. 
You can't use it to make virtual drives appear in other operating 
systems.  (Well, maybe DOS, but that's more D than OS anyway.)

> I get the following error message:
>
> waiting for partition 'GUIXSD_IMAGE' to appear...

Once the kernel boots, Guix's early userspace only looks for real 
partititions.  It won't peek inside random files to see if they 
contain a file system.  And there's currently no way to tell it 
to.

I wonder if MAPPED-DEVICES could be a solution here, with a bit 
(heh) of extra code…

> Is there any other way to configure multiple Gnu/Linux distros 
> to boot
> from one usb?

TL;DR: there is no one reliable way, only distro-specific support.

Kind regards,

T G-R

  reply	other threads:[~2019-03-12 10:50 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-11 21:00 boot multiple Gnu/Linux Distributions from one USB key gnuforever
2019-03-12 10:34 ` Tobias Geerinckx-Rice [this message]
2019-03-12 13:05 ` Ricardo Wurmus
2019-03-12 18:56   ` Vagrant Cascadian
2019-03-13  5:24     ` gnuforever
2019-03-23 16:57     ` Tobias Geerinckx-Rice

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

  List information: https://guix.gnu.org/

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

  git send-email \
    --in-reply-to=8736nsjs9h.fsf@nckx \
    --to=somebody@not-sent-or-endorsed-by.tobias.gr \
    --cc=guix-devel@gnu.org \
    --cc=help@tuyizere.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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).