There are many Linux distributions out there, and each one of them has its own features and programs. You may have asked yourself before about how to create a Linux distribution, we are explaining how to do it in our series about “Creating a Linux Distribution“, and today’s topic is about Ubuntu, previously we had:

Ubuntu is the most popular Linux distribution, featuring a lot of features that make life easier on end users, therefore creating a distribution based on it will be a good choice if you are beginner and want to learn a new thing, or share your own copy of the operating system with the world.

Why We Don’t Build a Distribution From Scratch?

Why should it always be based on other distributions instead of building everything from zero, just like the main major distributions? Well, that’s a possible approach you can take alone using Linux from Scratch, but it’s very hard and non-effective; you will need to do tons of work by yourself if you use this method.

You will have to maintain the main repositories holding at least 20000 packages for your users, you will have to fix any possible incompatibility between the components that you choose to ship in your distribution, you will have to create a very big community around you to keep the project up and running, you will have to hire a lot of people in order to ensure quality and security of your operating system.

That’s why people are always building their distributions on Debian, Ubuntu, openSUSE, Fedora… etc, no one is ready to take such effort to create another distributions with some extra features, that’s why we have building on other distributions, don’t re-invent the wheel, unless you will make a difference!

Create a Linux Distribution Based on Ubuntu

Create a Linux Distribution

You have many ways to do that actually, from using normal building software to manual building and customizing process and passing by combination of two:

The Easy Way

Just use programs; they are there for a reason, you know, to make life easier, you can use some already available special programs to build the ISO file you want from your local installed system and distribute it later.

For that, you can use PinguyBuilder, it’s a program that was originally forked of Remastersys (One of the first re-mixing software for Ubuntu) and developed by the PinguyOS team, it’s working well with Ubuntu 16.04 LTS and up.

I have personally tested it on Linux Mint 18 (Which is based on Ubuntu 16.04) to see how things will go, and it worked great, just choose the settings and files you want to ship in your distribution and wait the program while it builds the ISO file.

For installation, download the latest .deb file and install it, or run the following commands in terminal:

sudo dpkg -i pinguybuilder_5.1-7_all.deb

Then open the program from the applications menu:

Pinguy Builder Beta for 16.04
Pinguy Builder Beta for 16.04
  • The first option will create a file combining all your files and programs (Will be so big and may not work with huge data).
  • The second option will create an ISO combining the installed programs and the settings you choose only, not all your data, just the ones you choose from the settings to include.
  • The third option will create a file-system tree only, no ISO file, you can include files or packages in that file system manually using “chroot” command and then use the 4-th option.
  • The fourth option will create an ISO file from the file-system tree. You should have already used option 3 to do this.

As you can see also, you can choose the Plymouth theme (the graphics after the boot loader directly), edit the Live CD boot menu or choose whom user data you want to include. All files that you place under /etc/skel will be there by default in the users’ home directory who will use your distribution.

Switch for the settings tab for more option:

Pinguy Builder Settings
Pinguy Builder Settings

The options here are explaining themselves I guess.. After you finish, return to the main tab and choose whatever build option you want to start, you will see the ISO file beside the checksums in /home/PinguyBuilder/ folder:

Built ISO file and Checksums by PinguyBuilder
ISO file and Checksums  by built Pinguy Builder

The Hard Way

Ubuntu Customization Kit
Ubuntu Customization Kit

You can create your distribution based on Ubuntu by extracting the components of the ISO file of Ubuntu to a folder, modify them and then re-build the ISO file. This is how it works theoretically.

You can use this complete official guide from the Ubuntu community to learn how to do so, as you can see, it takes a lot of effort to do the same results, your time will be wasted between downloading packages and compressing and extracting file-systems, copying and modifying all the files manually, which is why people use programs.

If you want, you can use UCK (Ubuntu Customization Kit), it’s a tool that will do all the mentioned work in that article using graphical interfaces with less-need to tune things, it’s free and available to install from the repositories:

sudo apt install uck

If you want to be a first class-citizen in the Ubuntu family, you may consider building a distribution based on Ubuntu from the source ISO files for Ubuntu, you will have to download all the ISO files, combine them and then build your distribution manually using them.

Testing the Distribution

Testing the ISO file using VirtualBox
Testing the ISO file using VirtualBox

Don’t ever release a thing to the world without testing; it’s an essential thing today if you don’t want to get insults from users who will download your distribution and use it on their own.

You have a lot of methods to do so, like:

  • Using KVM, a virtual technology implemented in the kernel itself to run virtual systems. You can use many interfaces available to it like QEMU or GNOME Boxes. Read our guide on how to use QEMU to test your distribution.
  • VirtualBox, a famous program developed by Oracle to run and test virtual systems.

All are available from the official repositories for Ubuntu:

sudo apt install gnome-boxes qemu

Or to install VirtualBox:

sudo apt install virtualbox virtualbox-qt

Then just search in the applications menu for the program and launch it to start testing.


There are a lot of ways to build a customized Linux distribution based on Ubuntu, you may choose any one of them that fits your needs, but don’t forget testing; it’s a very important step in order to insure that your system is error-free and working well on any hardware that a user may have.

Have you ever built a distribution before? What methods did you use and how was your experience?


Inline Feedbacks
View all comments
Ahmed Alhaj

I never thought I’d make a distro based on Ubuntu again, thanks for the informative post 🙂

Oliver Jung

I made a own distribution based on elementaryOS without the disadvantages the original had (in my version it looks almost exatly like a macOS since i used the gtkl theme of the b00merang project, reactivated the desktop-icons, add other usefull features and software and so on). So now my problem is: How can I share this with the world? I have a website created where I offer my distro to the world but no forum allows advertising/promoting custom linux distros. So how can I tell the world where they can download my distro?

M.Hanny Sabbagh

And if your distribution is good, you can try sending it to the guys in Softpedia or Distrowatch.

Oliver Jung

Yes i am planning to suggest it to distrowatch but not now since it is just a customization of elementaryOS, improving it in certain ways but it’s not outstanding in a way that i think distrowatch would accept it as an official distribution, i don’t know. We will see how the project goes on 🙂

Oliver Jung

Hmn thanks for just deleting my post without any information. I just wanted to know where, if you created your own distribution, you can share it. Obviously not here as I see now. Well yeah, thanks for showing how to make your own distributions and thanks for not showing how to show them to others – which would be the sense of “to distribute”…

M.Hanny Sabbagh

Can you calm down for a moment? Your “post” contained a link. All comments which contain links in the Disqus comment system (the one we use) must be moderated before being published. This is an automated thing.

Now talking about where you can publish it, you can share it on +Google communities or Reddit subreddits. A lot of FOSS people are there.

Oliver Jung

I am calmed, it was a post, not a “post” – just because it contained a link doesn’t mean i didn’t had something to say related to the topic, since the topic is also mentioning Pinguy Builder and I wanted to share my experiances since i followed this tutorial and created my own distribution like described. The link was just to share what i did so others except only me could also benefit from it if they find it useful. Sadly the project “” didn’t suceed, they offered a portal where you could share custom distributions easily. Maybe in the… Read more »


I ve made already 3-4 disto’s now i am thinking adding some extra cool features like chatbot or assistance for my distros, Can you help me? how to add this home made software in my customized distros?


Another method is cloning the entire disk or vm and re-deploying it wherever you like. You don’t get any shiny installers but what you do get is a universal method for practically cloning any os even Windows. With your running configurations in tact or not up to you.

What makes this method better?

No file size limits you can exceed 4gb even span blu ray discs best of all you can also use compression and encryption.

Mondo Rescue is one such tool!


Great Article,

Is there any way to install the ISO ( created by easy step ) on hard disk?
menu based like default ubuntu installation?


Easy way – Recycle the ISO

Hard Way – Learn C and compile from source code and write your own installer.

Funny how its more easier to just customize your own Windows using something Like NtLite, then any of the ten thousand useless regurgitated guides that lead nowhere. Ultimately anyone can customize a Linux buy simply running and installing a distro, its the two other essential parts that seem to be the missing kinks in actualizing it as a custom distro basically a way to install it and way to burn it with all your customizations in tact.


Hi there, I have been trying to install your pinguybuilder, but I keep getting errors!
When using the terminal, it says it can not find the package, when downloading it from the links on this page it says “dependency is not satisfiable”
So how to I get around that?


Ok, so I got it to download, but now it can’t seem to build an iso correctly. I gave it a name to use but not only does the iso just come out as custom.iso, it is only 32 kilobytes! So what’s wrong now?


Well, it looks like the builder just can’t read my system properly. It might because I used a minimal install and added all the packages I wanted after.
Thanks anyway, I might go try something else.


I found out about this recently and wanted to use it to create my own distro.
But I got a problem. when my iso is created the live session asked for username and password. but no matter what I type in its always incorrect. Am I doing something wrong? I was running the source os (ubuntu 18.04) in virtualbox. sometimes it lists a user called vboxadd and sometimes it just says enter a username.
I also tried it on my real system and it just the same live session asked for username and password and nothing works.


Thanks for the advice. I’ve got a few ideas on what to try.
I think I’ll come back here and post what worked if any.


hey i wanna remaster xubuntu 20 and i can’t install punguy builder on it, how can posible to install that apps


Same problem. Not punguy builder,not uck.  Just Cubic.



Become a Supporter

For the price of one cup of coffee per month:

  • Support the FOSS Post to produce more content.
  • Get a special account on our website.
  • Remove all the ads you are seeing (including this one!).
  • Help us get to our goal of 100 supporters, to start many initiatives.

Opinions Column

Recent Comments

Tools We Use