[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: boot multiple Gnu/Linux Distributions from one USB key
From: |
Tobias Geerinckx-Rice |
Subject: |
Re: boot multiple Gnu/Linux Distributions from one USB key |
Date: |
Tue, 12 Mar 2019 11:34:18 +0100 |
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