How to make a custom ISO image: Difference between revisions

From Alpine Linux
(explain who to build iso without building sha1)
 
(63 intermediate revisions by 17 users not shown)
Line 1: Line 1:
This document explains how to build a custom ISO image using the alpine-iso scripts.


First make sure we have the needed tools
== ISO remastering ==
{{Cmd|apk add alpine-sdk}}


Then we clone (or update) the alpine-iso git repository.
There are third party scripts to re-build completely custom images, like
{{Cmd|git clone git://git.alpinelinux.org/alpine-iso}}
* [https://github.com/alpinelinux/alpine-make-vm-image alpine-make-vm-image]
(works to only make a disk based VM image)


The alpine-iso scripts is a simple makefile which you need to feed with a ''<name>.conf.mk'' file and a ''<name>.packages''.
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)


In the ''<name>.conf.mk'' we specify


;ALPINE_NAME
:name of iso image


;ALPINE_VERSION
== An alternative ==
:(optional) version string. Will default to todays date.


;KERNEL_FLAVOR
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]].
:(opional) either ''grsec'', ''vserver'' or ''pae''. Will default to grsec.


;MODLOOP_EXTRA
:(optional) Extra kernel module packages for the modloop image. For example: ''dahdi-linux-vserver''


The ''<name>.packages'' is just a plaintext list of packages that should be included in the iso. You should always add ''alpine-base'' in there or the CD migh not be able to boot. The dependencies for the packages will automatically be pulled in.


== A rescue CD example ==
== Booting an ISO image with local customizations ==
As an example, let us make a rescue ISO with packages needed for rescue operations. We call it ''alpine-rescue''


We create the alpine-rescue.conf.mk as follows:
* [[Directly booting an ISO file]]
ALPINE_NAME := alpine-rescue
KERNEL_FLAVOR := grsec
MODLOOP_EXTRA :=


And then the ''alpine-rescue.packages'' as:
[[Category:Package Manager]]
alpine-base
[[Category:ISO]]
bkeymaps
openssh
e2fsprogs
mdadm
lvm2
parted
debootstrap
ntfs-3g
 
Make sure the apk index is up to date (so apk finds the packages):
{{Cmd|apk update}}
 
We create the ISO image by telling the makefile the profile name. The makefile target is ''iso''.
{{Cmd|<nowiki>make PROFILE=alpine-rescue iso</nowiki>}}
 
To generate the sha1 sum we use the ''sha1'' make target.
{{Cmd|<nowiki>make PROFILE=alpine-rescue sha1</nowiki>}}

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