How to make a custom ISO image

From Alpine Linux
Revision as of 02:46, 27 May 2010 by Mhavela (talk | contribs) (Adding a tip for those who wants to test home-built apks in the iso we are about to build)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This document explains how to build a custom ISO image using the alpine-iso scripts.

First make sure we have the needed tools

apk add alpine-sdk

Then we clone (or update) the alpine-iso git repository.

git clone git://git.alpinelinux.org/alpine-iso

The alpine-iso scripts is a simple makefile which you need to feed with a <name>.conf.mk file and a <name>.packages.

In the <name>.conf.mk we specify

ALPINE_NAME
name of iso image
ALPINE_VERSION
(optional) version string. Will default to todays date.
KERNEL_FLAVOR
(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

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:

ALPINE_NAME := alpine-rescue
KERNEL_FLAVOR := grsec
MODLOOP_EXTRA :=

And then the alpine-rescue.packages as:

alpine-base
bkeymaps
openssh
e2fsprogs
mdadm
lvm2
parted
debootstrap
ntfs-3g
Tip: If you have home-built apk's that you would like to include in the iso you are about to create:

Make sure your developer keys are placed in /etc/apk/keys/

Learn apk-tools to find your home-built apk's:

echo "~/.cache/apks" >> /etc/apk/repositories

Make sure the apk index is up to date (so apk finds the packages):

apk update

We create the ISO image by telling the makefile the profile name. The makefile target is iso.

make PROFILE=alpine-rescue iso

To generate the sha1 sum we use the sha1 make target.

make PROFILE=alpine-rescue sha1