<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M0e</id>
	<title>Alpine Linux - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M0e"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/M0e"/>
	<updated>2026-04-26T04:22:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=How_to_make_a_custom_ISO_image&amp;diff=6379</id>
		<title>How to make a custom ISO image</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=How_to_make_a_custom_ISO_image&amp;diff=6379"/>
		<updated>2012-03-07T05:25:59Z</updated>

		<summary type="html">&lt;p&gt;M0e: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document explains how to build a custom ISO image using the alpine-iso scripts.&lt;br /&gt;
&lt;br /&gt;
First make sure we have the needed tools&lt;br /&gt;
{{Cmd|apk add alpine-sdk}}&lt;br /&gt;
&lt;br /&gt;
Then we clone (or update) the [http://git.alpinelinux.org/cgit/alpine-iso.git/ alpine-iso git repository].&lt;br /&gt;
{{Cmd|git clone git://git.alpinelinux.org/alpine-iso}}&lt;br /&gt;
&lt;br /&gt;
The alpine-iso scripts is a simple makefile which you need to feed with a &#039;&#039;&amp;lt;name&amp;gt;.conf.mk&#039;&#039; file and a &#039;&#039;&amp;lt;name&amp;gt;.packages&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
In the &#039;&#039;&amp;lt;name&amp;gt;.conf.mk&#039;&#039; we specify&lt;br /&gt;
&lt;br /&gt;
;ALPINE_NAME&lt;br /&gt;
:name of iso image&lt;br /&gt;
&lt;br /&gt;
;ALPINE_VERSION&lt;br /&gt;
:(optional) version string. Will default to todays date.&lt;br /&gt;
&lt;br /&gt;
;KERNEL_FLAVOR&lt;br /&gt;
:(optional) either &#039;&#039;grsec&#039;&#039;, &#039;&#039;vserver&#039;&#039; or &#039;&#039;pae&#039;&#039;. Will default to grsec.&lt;br /&gt;
&lt;br /&gt;
;MODLOOP_EXTRA&lt;br /&gt;
:(optional) Extra kernel module packages for the modloop image. For example: &#039;&#039;dahdi-linux-vserver&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&amp;lt;name&amp;gt;.packages&#039;&#039; is just a plaintext list of packages that should be included in the ISO image. You should always add &#039;&#039;alpine-base&#039;&#039; in there or the CD might not be able to boot. The dependencies for the packages will automatically be pulled in.&lt;br /&gt;
&lt;br /&gt;
== A rescue CD example ==&lt;br /&gt;
As an example, let us make a rescue ISO image with packages needed for rescue operations. We call it &#039;&#039;alpine-rescue&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We create the &#039;&#039;alpine-rescue.conf.mk&#039;&#039; as follows:&lt;br /&gt;
 ALPINE_NAME   := alpine-rescue&lt;br /&gt;
 KERNEL_FLAVOR := grsec&lt;br /&gt;
 MODLOOP_EXTRA :=&lt;br /&gt;
&lt;br /&gt;
If you are going to use a custom kernel, don&#039;t forget to specify KERNEL_FLAVOR_DEFAULT which will set the default kernel to boot.&lt;br /&gt;
&lt;br /&gt;
And then the &#039;&#039;alpine-rescue.packages&#039;&#039; as:&lt;br /&gt;
 alpine-base&lt;br /&gt;
 bkeymaps&lt;br /&gt;
 openssh&lt;br /&gt;
 e2fsprogs&lt;br /&gt;
 mdadm&lt;br /&gt;
 lvm2&lt;br /&gt;
 parted&lt;br /&gt;
 debootstrap&lt;br /&gt;
 ntfs-3g&lt;br /&gt;
&lt;br /&gt;
{{Tip| Make sure your public keys are placed in /etc/apk/keys/ (example: root-xxxxxxxx.rsa.pub):&lt;br /&gt;
{{Cmd|ls /etc/apk/keys/}}&lt;br /&gt;
&lt;br /&gt;
Learn apk-tools to find your home-built apk&#039;s:&lt;br /&gt;
{{Cmd|echo &amp;quot;~/.cache/apks&amp;quot; &amp;gt;&amp;gt; /etc/apk/repositories}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Make sure the apk index is up to date (so apk finds the packages):&lt;br /&gt;
{{Cmd|apk update}}&lt;br /&gt;
&lt;br /&gt;
We create the ISO image by telling the makefile the profile name. The makefile target is &#039;&#039;iso&#039;&#039;.&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;make PROFILE=alpine-rescue iso&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
To generate the sha1 sum we use the &#039;&#039;sha1&#039;&#039; make target.&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;make PROFILE=alpine-rescue sha1&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Package lists ==&lt;br /&gt;
&lt;br /&gt;
Beside the plaintext package lists in the git repository, there are more documented package lists contributed by Alpine users. Those lists can be transformed into a plaintext to use with &amp;lt;tt&amp;gt;alpine-iso&amp;lt;/tt&amp;gt; list with the simple python-based &amp;lt;tt&amp;gt;[http://git.alpinelinux.org/cgit/fab/alpine-iso/tree/config-builder.py]&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
So far the lists below are available:&lt;br /&gt;
&lt;br /&gt;
* [[Alpine_mini|Alpine Mini]]&lt;br /&gt;
* [[Alpine_rescue|Alpine Rescue]]&lt;br /&gt;
* [[Alpine_security|Alpine Security]]&lt;br /&gt;
&lt;br /&gt;
== Testing your ISO image ==&lt;br /&gt;
&lt;br /&gt;
[[Qemu#Live_mode| Qemu]] is useful for a quick test of your created ISO image.&lt;/div&gt;</summary>
		<author><name>M0e</name></author>
	</entry>
</feed>