How to make a custom ISO image: Difference between revisions

From Alpine Linux
mNo edit summary
(14 intermediate revisions by the same user 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 scripts to re-build completely custom images, like
* [https://github.com/alpinelinux/alpine-make-vm-image alpine-make-vm-image]
and the original
* [[How_to_make_a_custom_ISO_image_with_mkimage|mkimg]].


== Live Disk customizations 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.)
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.
* 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 possible to [[Alpine_local_backup#|commit and load ISO image customizations]] to and from a writable storage.
 


* 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.
* From a dedicated boot media, obviously.
 
* [[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]]

Revision as of 20:48, 21 June 2020

ISO remastering

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

and the original


If you want to make a customized installer, you need to create .default_boot_services which will cause mkinitfs to create the defaults for the live image.


An alternative

It's possible to commit and load ISO image customizations to and from a writable storage.


Booting an ISO image with local customizations