Directly booting an ISO file

From Alpine Linux

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 GRUB

Ensure that 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.

Loading intramfs

GRUB can be caused to load kernel and initramfs by one of the following two ways:

Adding menu entry

Add a menu entry in grub for the ISO image by creating an file /etc/grub.d/40_custom and insert the following :

Contents of /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 }

Proceed to create a new GRUB2 configuration file by issuing the command:

# grub-mkconfig -o /boot/grub/grub.cfg

Reboot the computer

# reboot

Select created menu entry and proceed to Mount ISO image section for further instructions.

Using GRUB commandline

Alternatively the statements loopback, linux and initrd can be entered manually in GRUB commandline as follows:

grub> loopback lb /boot/alpine-extended-3.14.0-x86_64.iso
grub> linux  (lb)/boot/vmlinuz-lts
grub> initrd (lb)/boot/initramfs-lts
grub> boot

Proceed to Mount ISO image section for further instructions.

Mount ISO image

Irrespective of method adopted, the boot will work until boot media is to be mounted. The following error will appear:

Mounting boot media: failed initramfs emergency recovery shell launched

Now mount the boot media manually in the initramfs emergency recovery shell:

# 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 issue the command # setup-alpine to proceed with Installation.

syslinux

No solution found yet.

Using grub-imageboot tool

The Debian package grub-imageboot allows booting .iso files placed in the /boot/images directory.

See also