How to make a custom ISO image: Difference between revisions

From Alpine Linux
 
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:


One way to completely re-build images is to use a script like [https://github.com/alpinelinux/alpine-make-vm-image alpine-make-vm-image].
== ISO remastering ==


But there is also an alternative:
There are third party scripts to re-build completely custom images, like
* [https://github.com/alpinelinux/alpine-make-vm-image alpine-make-vm-image]
(works to only make a disk based VM image)


== Live Disk customizations with APKOVL configurations ==
and there is Alpine's original
* [[How_to_make_a_custom_ISO_image_with_mkimage|mkimg]].
(creates a diskless ISO file - usually what you want for QEMU and Proxmox)


The "diskless" Alpine ISO images seem to look for an .apkovl volume in system partitions, and offer to save local backups and package cache to mountpoints below /media/. (Besides supporting a boot parameter that points to a web server.)
* Boot the diskless system from ISO, and if necessary create and format a partition.
* Edit /etc/fstab and mount the partition below /media/.
* Run alpine-setup and choose to save the state to the mounted partition.
* Customize the system.
* Generate an APKOVL file with [[Alpine_local_backup|lbu]] by executing <code>lbu commit</code>


* If instead you put the APKOVL file on a webserver, you need to supply a customized url with the <code>APKOVL</code> boot parameter.


Notes:
== An alternative ==
 
It's also possible to commit and load ISO image customizations to and from a writable partition when booting in [[Installation#Diskless_Mode|Diskless Mode]].
 


* Any packages you add to /etc/apk/world of your lbu will automatically be installed in the live system.
* See [[Alpine_Linux_package_management#Local_Cache]] about managing included packages.
* If you don't have a web server you can run busybox's httpd temporarily - <code>busybox httpd -p 127.0.0.1:80</code>
* See [[Alpine_local_backup|lbu]] about how to customize it to cover files outside of <code>/etc</code>.
* If you want to make a customized installer, you need to create <code>.default_boot_services</code> which will cause <code>mkinitfs</code> to create the defaults for the live image.


== Booting an ISO image with local customizations ==
== Booting an ISO image with local customizations ==


Booting an ISO image with an .apkovl in a [[Qemu#Live_mode| Qemu]] virtual machine.
* [[Directly booting an ISO file]]
 
Debian's grub-imageboot package is a way to boot .iso files directly.


[[Category:Package Manager]]
[[Category:Package Manager]]
[[Category:ISO]]
[[Category:ISO]]

Latest revision as of 04:29, 12 January 2024

ISO remastering

There are third party scripts to re-build completely custom images, like

(works to only make a disk based VM image)

and there is Alpine's original

(creates a diskless ISO file - usually what you want for QEMU and Proxmox)


An alternative

It's also possible to commit and load ISO image customizations to and from a writable partition when booting in Diskless Mode.


Booting an ISO image with local customizations