How to make a custom ISO image: Difference between revisions

From Alpine Linux
mNo edit summary
mNo edit summary
(10 intermediate revisions by the same user 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 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]].


But there is also an alternative:


== Live Disk customization with APKOVL configurations ==
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.


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


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.
* From a dedicated boot media, obviously.
* (Example included) Booting and customizing an ISO image with an .apkovl in a [[Qemu#Live_mode| Qemu]] virtual machine.
* [[Directly_booting_an_ISO_file]]
* 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]]

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