How to make a custom ISO image: Difference between revisions

From Alpine Linux
mNo edit summary
 
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:


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


* 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.
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)


But there is also an alternative:
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)


== Live Disk customization with APKOVL configurations ==


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.)


So
== An alternative ==
* Boot the diskless system from ISO, and if necessary create and format a partition.
* Edit /etc/fstab and mount the writable 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 would need to supply a custom url with the <code>APKOVL</code> kernel boot parameter.)
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]].


Notes:


* See [[Alpine_Linux_package_management#Local_Cache]] about managing included packages.
* See [[Alpine_local_backup|lbu]] about how to customize it to cover files outside of <code>/etc</code>.
* Any packages you add to /etc/apk/world of your lbu will also automatically be installed in the live system.
* 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>


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


* From dedicated boot media, obviously.
* [[Directly booting an ISO file]]
* (Example included) Booting and customizing an ISO image with an .apkovl in a [[Qemu#Live_mode| Qemu]] virtual machine.
* Using e.g. Debian's grub-imageboot package and booting .iso files directly, instead of partitions.


[[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