How to boot a writable disk image (created with dd from Debian or another distribution) with GRUB?
3
votes
0
answers
368
views
I created a
multi-boot
USB stick to load various ISO files, which can either be live systems or used to install different Linux distributions.
sda
-sda1 1M | BIOS Boot partition to store MBR
-sda2 64M | ESP for UEFI boot
-sda3 100G | EXT4 for ISO & IMAGE
I can easily start ISO files such as Debian, Ubuntu, Kali or other distributions from it, using the corresponding menuentry
in the
/efi/boot/grub/grub.cfg
Now I have an disk-image
created with dd
from a whole USB stick where Debian is installed.
However, it's not a true ISO or image but rather a disk-image
(snapshot/backup) of the USB stick with all its partitions, with the named example debian1.iso
or debian2.img
I've now copied this file to the partition sda3
with the other correct ISO's.
I created the following menuentry
with chainloader
, but on the first attempt, GRUB simply restarts the boot process, and on the second attempt, I get an 'invalid signature' error.
menuentry "Chainload GRUB from USB Image debian1.iso" {
loopback loop (hd0,3)/debian1.iso
set root=(loop,1)
chainloader +1
}
menuentry "Boot Debian from ISO on USB (UEFI)" {
set root=(hd0,3)
loopback loop /debian2.img
set root=(loop,1)
chainloader /EFI/debian/grubx64.efi
}
How can I start this disk-image from GRUB and what does the menu entry look like?
It might be possible if the disk-image is written to a separate partition, but I don’t want that.
Here are entries I found, but they mostly deal with ISO files.
- GRUB2: boot to a second (another) hard disk
- Using a bootable live cd disk image mounted on the hard drive
- Booting an EXT4 image file from GRUB2
- how to chainload from image file which contain multiple partitions?
- install grub on disk image
- How to boot Linux from image on disk or "Poor Man's Install"?
- GRUB Boot ISO/disk image from NTFS partition
- MEMDISK can boot floppy images, hard disk images and some ISO images.
At first, I found that it wasn’t possible, but then I discovered that it might be possible with memdisk
or GRUB2
using loopback
and overlayfs
.
So, it is indeed possible.
**Memdisk
**
> Memdisk
is primarily intended for temporary boot environments
,
> such as starting installation programs or diagnostic tools where
> permanent storage is not required or desired.
It is very useful if you just want to test the disk image.
**loopback
and overlayfs
**
> You can boot a disk image with GRUB
’s loopback
function and make the
> filesystem writable by combining it with overlayfs
. An overlay layer
> is placed on top of the read-only image, writing changes to a separate
> partition or file. This way, the original image remains unchanged, and
> you can save modifications.
I need to figure out how to handle the changes if it works.
My GRUB is installed on a USB stick without an operating system, so I can't use grub-mkconfig
.
So I have to make all the changes manually.
Is it possible to boot a disk-image
via GRUB
that is writable, make changes, and have those changes written directly to the image and how?
Is there another way besides memdisk
to boot where I can make changes?
If it works with loopback
and overlayfs
, what do I need to consider, how do I set it up, and what does the menuentry
looks like?
Is there some kind of small hack, or should I load additional files onto the GRUB stick to make this work and how?
The disk image itself also has GRUB, and the operating system on it is encrypted with LUKS.
Is it maybe possible to unpack the image into memory with GRUB, call GRUB from the disk image, unlock LUKS, boot the OS, make the changes, and save the whole thing as a new disk image to some partition?
Asked by ReflectYourCharacter
(8185 rep)
Aug 30, 2024, 05:54 PM
Last activity: Apr 19, 2025, 11:03 AM
Last activity: Apr 19, 2025, 11:03 AM