How do I build a custom Ubuntu ISO that can be booted from USB and used without modification?

I have a very specific and fairly unusual need. I'm trying to set up a customized version of Ubuntu Studio to run a preconfigured version of Jamulus. This is similar to the JamulusOS project on SourceForge except I want to set up the connection parameters for a specific audience. (I also want to use more recent versions of software than what's available in JamulusOS). I have downloaded the ISO for Ubuntu Studio 18.04, installed it to USB and booted it, but of course any modifications I make to the running OS are lost when the system is rebooted. Likewise if I boot a VM from the ISO and install software there. I can also mount the ISO on my production system and copy the contents into a folder, but then I can't boot it or install software on it.

When I search for this topic, all I get is sites that tell me how to install an ISO onto a flash drive, nothing about how to create the ISO in the first place. Any advice on this?


You can use systemback https://sourceforge.net/projects/systemback-source-1-9-4/, that allows you to make a live system, system copy, system install and the possibility to prepare if you want a personalized ISO. Personally I use it to copy my system to a different backup pendrive.

enter image description here

How to install

from sourceforge:

$ cd Downloads/
$ tar xvf systemback-install_pack-1.9.4.tar.gz 
$ cd systemback-install_pack-1.9.4/ 
$ chmod +x install.sh
$ sudo ./install.sh 

from Github:

$ git clone https://github.com/fconidi/systemback-install_pack-1.9.4.git
$ cd systemback-install_pack-1.9.4/
$ chmod +x install.sh
$ sudo ./install.sh

How to use

Create an ISO from your Linux System (*)

You can learn here how to create a live, fully bootable and installable image from your current system and convert it to ISO.

At the end you can create your modified linux distribution customizing installed SW and its configuration as you prefer and distribute the package as you like.

Backup/Restore your Linux System (*)

Systemback makes it easy to create backups of the system and the users configuration files. In case of problems you can easily restore the previous state of the system. There are extra features like system copying, system installation and Live system creation.

NOTE (*):

I 've tested only installation by file as indicated from sourgeforce. Installation from PPAs are often referred to old ubuntu releases and can give you problems and waste of time.


Cubic did the job, thanks for the reference. I was able to do most of what I needed. I put icons on the desktop by generating them on the host system using ubuntu-tweaks and then copying them over to the Cubic VM. I was not able to configure qjackctl, but I covered that by putting a readme on the desktop explaining how everything had to be set up. I never did figure out the problem that kept me from doing apt update, but I will try building a system from the Ubuntu distribution instead of Ubuntu Studio and see if that fixes it. I've got a nice shiny test system to distribute to a few select people. Thanks again.


You can use Cubic.

Cubic (Custom Ubuntu ISO Creator) is a GUI wizard to create a customized Ubuntu Live ISO image.

See How to use Cubic to create a custom Ubuntu live CD image? for general instructions.

To install Cubic use PPA...

sudo apt-add-repository ppa:cubic-wizard/release
sudo apt update
sudo apt install cubic

To use Cubic...

  1. Create a new customization project directory.

    Cubic Start Page

  2. Accept defaults for some important parameters, or enter your own values (like file name, release name, etc.)

    Cubic Project Page

  3. Make your customizations using the command line.

    This is where you will need to be familiar with certain commands. Use apt to install packages, use nano to edit files, and configure defaults such as background and theme (see Cubic Answer 681051 or Cubic Answer 692588 for examples).

    Cubic Terminal Page

  4. Automatically generate a new custom ISO.

    Cubic Generate Page