Directly booting an ISO file
![]() See Discuss |
It is technically possible to boot an .iso
file directly, without flashing it to a disk or device.
Using a virtual machine
The QEMU page shows how an ISO image and .apkovl customizations are booted with a virtual machine. This works very well with Proxmox as well - just attach the ISO and Alpine boots to RAM on startup. You can customize your .iso file by building a custom ISO image by following the instructions on How to make a custom ISO image with mkimage
Using an installed Bootloader
grub-imageboot
In addition to standard partitions or drives, the Debian package grub-imageboot allows booting .iso files placed in the /boot/images directory.
Suppose Alpine ISO image is stored in partition 1 of a disk or SSD in directory /boot
and
the installed Linux in that partition has GRUB2.
Then insert the following in /etc/grub.d/40_custom
:
menuentry 'Alpine Linux 3.22 (loopback from /dev/sda1)' --class alpine --class gnu-linux --class gnu --class os { echo Device: $root set isofile=/boot/alpine-extended-3.22.1-x86_64.iso loopback lb $isofile echo ISO root: $root echo ISO image: $isofile echo "Alpine Linux 3.22 is booting from $isofile" echo 'loading the kernel' linux (lb)/boot/vmlinuz-lts echo 'loading initial root filesystem' initrd (lb)/boot/initramfs-lts }
Alternatively the statements loopback
, linux
and initrd
can be entered manually in GRUB2 commandline.
Create a new GRUB2 configuration file:
# grub-mkconfig -o /boot/grub/grub.cfg
# reboot
Select created menu entry.
Boot will work until boot media is to be mounted:
Mounting boot media: failed initramfs emergency recovery shell launched
So mount it manually:
# mount /dev/sda1 /media/sda1 # mount -o loop -t iso9660 /media/sda1/boot/alpine-extended-3.22.1-x86_64.iso /media/cdrom # exit
Then login as root and
# setup-alpine
syslinux
No solution found yet.