The officially official Devuan Forum!

You are not logged in.

#1 2020-11-18 11:44:49

From: France
Registered: 2020-04-20
Posts: 40  

Make Devuan Ceres ISO


How can I produce a Debuan Ceres ISO?
I use currently Devuan Ceres.

But I dont known how to create an ISO system.

Any documentation? suggestion?


#2 2020-11-18 15:07:32

Registered: 2016-11-25
Posts: 2,103  

Re: Make Devuan Ceres ISO

refracta tools - installer and snapshot - are in the Devuan repos


#3 2020-11-20 11:04:00

From: France
Registered: 2020-04-20
Posts: 40  

Re: Make Devuan Ceres ISO

OK, Thanks.


#4 2020-11-20 18:04:59

From: London
Registered: 2019-03-24
Posts: 1,283  

Re: Make Devuan Ceres ISO

There's also live-sdk.

EDIT: and Debian's live-build but I haven't been able to make that work with sysvinit as PID1. Of course that could just be because I'm useless big_smile

Last edited by Head_on_a_Stick (2020-11-20 18:37:49)

Black Lives Matter


#5 2020-11-21 11:53:06

From: basque country
Registered: 2016-12-03
Posts: 45  

Re: Make Devuan Ceres ISO

PengouinPdt wrote:

I use currently Devuan Ceres.

But I dont known how to create an ISO system.

Any documentation? suggestion?

I build all the images of gnuinos using the live-sdk. But why Ceres and not Chimaera? Ok... One could say that unstable branch is less subject to change compared to testing. Anyway, the point is that I compile both debian-installer and syslinux from source and It would seem, though, that they need some workaround in chimaera/ceres. For instance, in chimaera syslinux requires a patch pulled from ceres in order to build with gcc-10: … bug=957858

not to mention some missing builddeps like python-is-python2 | python-is-python3.

But still, if people are willing to get images of Ceres, I can build them continuing on the subject of the mailing list I opened time ago, and named "Devuan Drafts" (or something similar?)

Last edited by aitor (2020-11-21 13:41:14)

If you work systematically, things will come by itself (Lev D. Landau)


#6 2020-11-23 07:29:51

From: basque country
Registered: 2016-12-03
Posts: 45  

Re: Make Devuan Ceres ISO


The image contains three extra packages non existent in devuan:

  • libnetaid: shared library for simple-netaid

  • snetaid: daemon for simple-netaid

  • simple-netaid-cdk: ncurses interface for simple-netaid

One clarification: shortly simple-netaid will be compatible with both ifupdown and ifupdown2 (an alternative for ifupdown written in python and including some additional features), but it breaks with ifupdown2 so far because, even being their commands very similar, some arguments differ from eachother. In the case of simple-netaid, this breaking is due to the differences between the arguments used for the ifquery command.

The desktop environment is xfce, and you don't need any password during live sessions.

If you work systematically, things will come by itself (Lev D. Landau)


#7 2020-11-24 22:35:51

From: France
Registered: 2020-04-20
Posts: 40  

Re: Make Devuan Ceres ISO

OK. @all thanks.

@altor: thanks for your repository. Wait : 1.2Go your iso! more big.
But, I had more in mind to propose netinst or mini iso's…


#8 2020-11-25 11:53:05

Registered: 2016-11-25
Posts: 1,697  

Re: Make Devuan Ceres ISO

This will build the mini.iso(s). Look at the suites/beowulf branch. I'm pretty sure that one is most current.

This will build the installer isos. (netinstall, CDs, DVD)

I haven't used either of the above, so I have no idea what you need to change for ceres.

Refractainstaller and live-sdk make isos for live-CD, DVD, USB.


#9 2020-12-10 00:48:46

From: France
Registered: 2020-04-20
Posts: 40  

Re: Make Devuan Ceres ISO

OK, I attempt to build with the DebianInstaller segun the wiki page

I use this custom build config common:

# Common configuration options for all images.
# Note that you might find it useful to create a config/local file and
# override settings from this file there instead of modifying this file for
# local setting such as EXTRAFILES. That way you won't accidentially commit
# your local changes.

# set DEBUG to y if you want to get the source for and compile
# debug versions of the needed udebs
#DEBUG = y

# Default kernel ABI version to use. Append a kernel flavour to

# Always "di" these days

# List here any extra udebs that are not in the list file but that
# should still be included on the system.

# This variable can be used to copy in additional files from the system
# that is doing the build. Useful if you need to include strace, or gdb,
# etc.
#EXTRAFILES = /usr/bin/strace

# This variable can be used to add a preseed file to the initrd itself.
# It will be loaded by the initrd-preseed udeb.

# Normally the sources.list for building d-i will be derived from your
# "normal" sources.list. However, you can specify a mirror here to override
# this. You can use copy:/ to use a local mirror

# Options to pass to dpkg when it is unpacking the udebs to create the
# image. None should be needed, but --force-overwrite might need to be
# enabled from time to time if udebs have conflicting files.
DPKG_UNPACK_OPTIONS = --force-overwrite

# The codename of the Debian release that should be installed by default.

# The version (number and codename) of the Debian release targeted by the
# installation images. (Only the codename is used while the version number
# has not yet been determined.)
DEBIAN_VERSION = 11 (ceres)

# Define here from what release (codename!) components (udebs) should be taken
# to build debian-installer. By default this is set to 'unstable' for building
# daily images. For official builds this is overruled in debian/rules.
USE_UDEBS_FROM ?= unstable

# Archive components from which to fetch debian-installer modules.
UDEB_COMPONENTS ?= main/debian-installer

# The date the installer source was last changed;  we prefer that the
# caller defines a meaningful value, but below is a safe fallback.
SOURCE_DATE_EPOCH ?= $(shell date '+%s')

# The date the installer was built. We use second-level resolution to ensure
# the generated image implicitly contains the SOURCE_DATE_EPOCH value required
# to reproduce the build.
BUILD_DATE ?= $(shell date -u '+%Y%m%d-%H:%M:%S' -d '@$(SOURCE_DATE_EPOCH)')

# Set consistent file creation modes for a reproducible build, taking care
# not to modify existing executable bits on files.
DIR_MODE = 755
FILE_MODE = u+rw,g+r-w,o+r-w

# Produce a beep at boot menu

# Filesystem type for the initrd, currently valid values are ext2, cramfs,
# and initramfs.
# NOTE: Your kernel must support this filesystem, not just a module.
INITRD_FS = initramfs

# What device to write floppies on
FLOPPYDEV = /dev/fd0

# What qemu to use, with any options.
QEMU = qemu

# media where images may be written to (via dd).
WRITE_MEDIA = floppy

# HACK Alert:
# pkg-lists is still sorted by type, so we have to provide
# some mapping MEDIUM -> TYPE

# Used to write a /etc/lsb-release file in the installer initrd.
LSB_DISTRIB_DESCRIPTION="Devuan $(shell uname -o) installer"
# Inlude the build date of the installer in here.

# This keyring is only used to verify udeb downloads using apt. Since the
# build process does not run as root, apt cannot read /etc/apt/trusted.gpg.

# All images that include cdebconf should include symbols needed by these
# plugins.
EXTRAUDEBS=cdebconf-newt-entropy cdebconf-text-entropy

# List of languages only supported with the graphical cdebconf frontend.
GI_LANGS = '(am|bn|dz|ka|gu|hi|km|ml|mr|ne|pa|ta)'
# They should be dropped by default, so this must be set only in targets
# that build graphical installer images.

I hope and see the result! tongue
(after the command: fakeroot make build_cdrom_isolinux)

update-manifest dest/cdrom/debian-cd_info.tar.gz "isolinux config files for CD"
# Ensure build results have reproducible mtimes

I think, now, it's time to create iso, is not-it?!


Ok, I created my first mini.iso, with the command:

$ sudo fakeroot make build_netboot
install -m 644 -D ./tmp/netboot/mini.iso dest/netboot/mini.iso
update-manifest dest/netboot/mini.iso "tiny CD image that boots the netboot installer" ./tmp/netboot/udeb.list
# Ensure build results have reproducible mtimes

$ ls -al dest/netboot/
total 85868
drwxr-xr-x 3 root root     4096 10 déc.  02:20 .
drwxr-xr-x 3 root root     4096 10 déc.  02:20 ..
drwxr-xr-x 3 root root     4096 10 déc.  02:20 debian-installer
-rw-r--r-- 1 root root 50331648 10 déc.  02:20 mini.iso
-rw-r--r-- 1 root root 37558754 10 déc.  02:20 netboot.tar.gz
lrwxrwxrwx 1 root root       33 10 déc.  02:20 pxelinux.0 -> debian-installer/amd64/pxelinux.0
lrwxrwxrwx 1 root root       35 10 déc.  02:20 pxelinux.cfg -> debian-installer/amd64/pxelinux.cfg

The next step will be to create netinstall iso.

For the moment, I dont known how to use the debian-cd tool, with my resulted debian-installer for devuan ceres!

any idea?!

Last edited by PengouinPdt (2020-12-10 01:34:00)


#10 2020-12-12 18:11:54

From: France
Registered: 2020-04-20
Posts: 40  

Re: Make Devuan Ceres ISO

OK, today I continue the aventure, with the tool 'simple-cdd', and the command 'build-simple-cdd'.

My config file:

# simple-cdd.conf detailed configuration file

# Note: this is an example list of configuration options: it is *strongly*
# advised to merely create a new file using only the options you actually need.

# Note: Variables in lowercase are only used by simple-cdd.

# Profile Selection
# The following four files get included on the CD if present:
# $profile.preseed 
#   Debconf selections.
# $profile.packages 
#   Packages to be installed with the profile. Dependencies also will
#   be installed.
# $profile.downloads 
#   Additional packages to be included on the CD with this profile, but
#   not installed by default.
# $profile.postinst 
#   Post-install script that is run after installing packages.
# During the install after base system setup, it will give you the
# options to determine which profiles you want to install.

# Profiles to include on the CD
#profiles="x-basic ltsp"

# To automatically select profiles (must also be listed in profiles):
# auto_profiles="foo bar baz"

# To include profiles which only effect the CD build
# build_profiles="foo bar baz"

# Mirror tools
# mirror_tools="download reprepro"

# Mirror variables

# which components to get from the mirror
#mirror_components="main contrib"

# Mirror for security updates
#   Expects security updates to be in dists/DEBIAN_DIST/updates

# Extra mirror
#   Only works with "download reprepro" mirror tools.

#mirror_components_extra="main non-free"

# Extra files to include onto the CD
#   These will get copied to /simple-cdd dir on the CD
#   Paths starting with '/' are interpreted as absolute, otherwise relative
#   to the currect directory.

# Generate a simple package repository on the CD with the debs cited
#   Please insert full paths.

# Call mirror tools at each build- defaults to true.

# Set your proxy (if any).
#export http_proxy=http://localhost:3128

# Enable serial console settings: true/false
# useful when testing with qemu's -nographic mode

# Set to automatically boot after a timeout, in tenth's of a second.
# i.e. for a 5 second timeout:

# Location of debian-cd files

# Set target architecture for build
export ARCH=amd64
#export ARCHES="amd64 i386"

# You can use a alternative splash image using a PNG image (640 x 480,
# 4-bit colormap, non-interlaced), other formats should work but weren't
# tested. Keep in mind that the alternative splash image will be displayed
# only at the installer boot prompt.
# export SPLASHPNG="/path/to/yourimage.png"

# Don't include the manual or release notes, respectively, to save space.
#export OMIT_MANUAL=1

# Don't generate JIGDO files
#export DOJIGDO=0

# Define the CD label
#export DISKINFO="Simple-cdd Installer: Debian GNU/Linux 10 buster 20190529"

# Where debian-cd expects to find itself smile
export BASEDIR=/usr/share/debian-cd
# Kernel parameters passed to the CD bootloader works with isolinux on i386.
#export KERNEL_PARAMS="preseed/file=/cdrom/simple-cdd/default.preseed"

# download a specific installer release, such as 20041118 or rc2

# custom debian-installer images to use. must contain one sub-directory for
# each architecture.

# files needed to build the CD, downloaded from the default mirror
#mirror_files="README doc/ tools/"

## Values used by both the various mirror tools and debian-cd
# directory of debian mirror
#export MIRROR=/path/to/mirror/

## debian-cd options

# Increase the size limit if debian-cd tries to make more CDs than you want,
# and the generated CDs are smaller than 650MB, or if you want to generate
# larger than "normal" CD images.
#export SIZELIMIT=838860800

# Don't include contrib
export CONTRIB=0

# Only generate one CD
export MAXCDS=1

# Only put the installer onto the cd (set NORECOMMENDS,... as well).
# INSTALLER_CD=0: nothing special (default)
# INSTALLER_CD=1: just add debian-installer (use TASK=tasks/debian-installer)
# INSTALLER_CD=2: add d-i and base (use TASK=tasks/debian-installer+kernel)
# What I understand it does is saying "I do want the installer [and base], so
# make sure they're always in"  (--Enrico)

## qemu options
# Location of the hard disk image (used with qemu's -hda option)

# size of qemu hard disk image to create (if not already present)

# additional options that get passed to qemu
#qemu_opts="-vga std -m 1024"

But, the tool fails to download:

$ build-simple-cdd --conf profiles/simple-cdd-detailed.conf --dist ceres --logfile build.log --verbose
2020-12-12 19:05:37 INFO Reading configuration file profiles/simple-cdd-detailed.conf
2020-12-12 19:05:37 INFO profiles/simple-cdd-detailed.conf: new var
2020-12-12 19:05:37 INFO profiles/simple-cdd-detailed.conf: new var custom_installer=/home/zou/Documents/Projets/debian-installer/
2020-12-12 19:05:37 INFO profiles/simple-cdd-detailed.conf: new var INSTALLER_CD=2
2020-12-12 19:05:37 INFO profiles/simple-cdd-detailed.conf: new var debian_cd_dir=/usr/share/debian-cd
2020-12-12 19:05:37 INFO profiles/simple-cdd-detailed.conf: new var di_release=20201212
2020-12-12 19:05:37 INFO profiles/simple-cdd-detailed.conf: new var mirror_components=main
2020-12-12 19:05:37 INFO profiles/simple-cdd-detailed.conf: new var
2020-12-12 19:05:37 INFO profiles/simple-cdd-detailed.conf: new var CONTRIB=0
2020-12-12 19:05:37 INFO profiles/simple-cdd-detailed.conf: new var BASEDIR=/usr/share/debian-cd
2020-12-12 19:05:37 INFO profiles/simple-cdd-detailed.conf: new var ARCH=amd64
2020-12-12 19:05:37 INFO profiles/simple-cdd-detailed.conf: new var MAXCDS=1
Traceback (most recent call last):
  File "/usr/bin/build-simple-cdd", line 679, in <module>
  File "/usr/bin/build-simple-cdd", line 290, in build_mirror
    self.run_tool("mirror", tool)
  File "/usr/bin/build-simple-cdd", line 387, in run_tool
  File "/usr/lib/python3/dist-packages/simple_cdd/tools/", line 64, in run
    _download(download_extrafiles_file, extrafiles_file_inlinesig)
  File "/usr/lib/python3/dist-packages/simple_cdd/tools/", line 55, in _download
    request.urlretrieve(url, filename=output)
  File "/usr/lib/python3.9/urllib/", line 239, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "/usr/lib/python3.9/urllib/", line 214, in urlopen
    return, data, timeout)
  File "/usr/lib/python3.9/urllib/", line 523, in open
    response = meth(req, response)
  File "/usr/lib/python3.9/urllib/", line 632, in http_response
    response = self.parent.error(
  File "/usr/lib/python3.9/urllib/", line 561, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.9/urllib/", line 494, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.9/urllib/", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

It's same error if I set debian_mirror and not rsync_debian_mirror variable.

I hope; any idea?!

OK, this seems to be a false good idea! sad
I abandon!

Last edited by PengouinPdt (2020-12-12 19:34:25)


#11 2020-12-12 20:00:20

From: France
Registered: 2020-04-20
Posts: 40  

Re: Make Devuan Ceres ISO

OK, I tried to with
I modified Makefile and pool/Makefile as:


DISTNAME = ceres
DISTVERSION = 2020.12.12


CODENAME := ceres

But that failed:

$ make ISO=netinstall
Makefile:33: ISOTREE=build/amd64/netinstall ARCH=amd64 build/amd64/netinstall/boot/isolinux/ build/amd64/netinstall/boot/grub/ build/amd64/netinstall/ UDEBSELECT = kernel base "UDEBS:kernel for KERNELVERSION=5.9.0-4-amd64-di" "UDEBS:base" INITRD_BUILDDIR = build/amd64/initrd ISO = netinstall (of NETINSTALL INSTALL DVD1 CD2 CD3 CD4) adding links for all *firmware* and *microcode* in the pool Devuan 2020.12.12  = Devuan ceres 2020.12.12 SAVERUNDIR = content/ceres-2020.12.12-amd64/netinstall-20201212204339
make[1] : on entre dans le répertoire « /home/me/Documents/Projets/installer-iso/pool »
Makefile:20: kernel for amd64 is linux-image-amd64
make[1]: ***  Aucune règle pour fabriquer la cible « /var/lib/apt/lists/pkgmaster.devuan.org_merged_dists_ceres_main_binary-amd64_Packages », nécessaire pour « library-amd64-main ». Arrêt.
make[1] : on quitte le répertoire « /home/me/Documents/Projets/installer-iso/pool »
make: *** [ : pool.NETINSTALL] Erreur 2

The loose!
And basta, I abandonne too… because I dont see/known what need changes.


I can at least generate the mini.iso image of the modified debian-installer for devuan ceres, apparently! big_smile
(but, for the moment, I cant install qemu, I cant check if runs correctly)

Last edited by PengouinPdt (2020-12-12 20:08:35)


Board footer