How To Turn Your Current System To An Installable ISO (For Debian, Ubuntu, Arch Linux and Manjaro)

penguins-eggs is a command line tool to turn your current Debian, Ubuntu, Arch Linux or Manjaro system to a redistributable live ISO image. Debian / Ubuntu flavors are also supported (so you can also use this for Xubuntu, Kubuntu, etc.), as well as Linux distributions based on these, like Devuan, Linux Mint and elementary OS.

Using this, you can create an installable live ISO with your Debian / Devuan / Ubuntu-based, Arch Linux or Manjaro system, and include all installed applications as well as your home folder (personal files, configurations, etc.). If you're not creating the ISO for you, but instead you want to redistribute it, Eggs can completely remove the user and system data from the generated ISO.

penguins-eggs custom Linux iso
A live ISO generated from my laptop using penguins-eggs; in the screenshot you can see the Calamares graphical installer

The live ISO image created by Eggs can be installed using a graphical user interface (Calamares) or from the command line, using a TUI tool especially created for penguins-eggs, called krill. This command line installer includes support for unattended installations.

Eggs also has various advanced features, like the ability to set the generated ISO to install without an Internet connection (see eggs help tools yolk for details), a script mode to generate scripts to manage the ISO, addons, set the theme for the livecd and Calamares installer (images), and more. There's also "penguins-wardrobe", a repository with YAML and Bash scripts used by Eggs to customize Linux systems starting from a minimal (naked) installed CLI system.

It's worth noting that as far as I know, penguins-eggs is the only real alternative to the now defunct remastersys which could create a customized live ISO of Debian, Ubuntu and derivatives, as well as back up an entire Debian / Ubuntu system, including user data, to an installable live ISO.

Below, you'll find a quick guide on how to remaster your current system and redistribute it as a live ISO file (with or without user and system data). Please note that I've only tested this on Ubuntu because time is not on my side right now 😀️.

You might also like: How To Customize Ubuntu Or Linux Mint Live ISO With Cubic

How to turn your current Debian, Ubuntu or Arch Linux system to an installable live ISO


[[Edit]] This does not currently work on Manjaro due to a bug!

1. Install penguins-eggs

On Debian, Devuan, Linux Mint, elementary OS, Ubuntu and its flavors (Xubuntu, Ubuntu MATE, Kubuntu, etc.), you can download the latest penguins-eggs DEB from Sourceforge. Or, if you prefer to add the penguins-eggs APT repository, to receive updates for this tool, add the repository, then install penguins-eggs using the following commands:

sudo apt install curl #in case it's not installed

curl -fsSL | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/penguins-eggs.gpg

echo "deb [arch=$(dpkg --print-architecture)] ./" | sudo tee /etc/apt/sources.list.d/penguins-eggs.list > /dev/null

sudo apt update

sudo apt install eggs

You might also be interested in: apt-key Is Deprecated. How To Add OpenPGP Repository Signing Keys Without It On Debian, Ubuntu, Linux Mint, Pop!_OS, Etc.

On Arch Linux and Manjaro, you can install penguins-eggs from AUR.

2. (Optional) Install Calamares if you want to use a graphical installer for the live ISO (without this, you can only use the TUI installer).

Note that this does not currently work on Arch Linux / Manjaro.

Install Calamares using:

sudo eggs calamares --install

3. Start the live ISO creation

Notes before starting the ISO creation:

  • Besides the options (arguments) specified for the commands below, you can also change the live ISO username and password (when not saving user data), timezone, and more, by editing the /etc/penguins-eggs.d/eggs.yaml as root with a text editor
  • If you plan on installing the generated ISO unattended (so using krill, the command-line Eggs ISO installer), edit the installation details in the /etc/penguins-eggs.d/krill.yaml file

To start creating a live ISO from your current system WITHOUT user data, with the ISO filename <NAME>-[arch]-YYYY-MM-DD_HHMM.iso, and standard compression, use:

sudo eggs produce --basename <NAME> --standard

Instead of standard (--standard) compression, you could use maximum (--max) compression, which creates a smaller ISO file size but takes more time to build.

The default username used by the live ISO in this case is live, and the password is evolution. The root password is the same, evolution.

To start creating a live ISO from your current system WITH UNENCRYPTED user data, with the ISO filename <NAME>-[arch]-YYYY-MM-DD_HHMM.iso, and standard compression, use:

sudo eggs produce --clone --basename <NAME> --standard

You can also create a live ISO from the current system WITH ENCRYPTED user data (user data is saved encrypted in a LUKS volume inside the live system; the data is not accessible on the live ISO, but is restored when installing the system using the TUI installer; the user data cannot be restored when using the graphical installer - Calamares), with the ISO filename <NAME>-[arch]-YYYY-MM-DD_HHMM.iso, and standard compression:

sudo eggs produce --cryptedclone --basename <NAME> --standard

Once the ISO file has been created, you'll find it in /home/eggs/.

For more on penguins-eggs, check out its documentation.

thanks to u/sudo_nick