New to Linux and the open source world? We have compiled a huge list of resources to help you go through Linux and its distributions. Visit the full Linux guide page right now.


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?



  1. Ahmed Alhaj

    August 1, 2016 at 11:33 am

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


  2. Oliver Jung

    April 17, 2017 at 8:20 am

    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

      April 17, 2017 at 2:40 pm

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


      • Oliver Jung

        April 17, 2017 at 7:23 pm

        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 🙂


  3. Oliver Jung

    April 17, 2017 at 9:54 am

    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

      April 17, 2017 at 2:39 pm

      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

        April 17, 2017 at 7:21 pm

        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 future a similar project will open. I would do it by myself but as a hobby project this would be way too much effort in time and costs sadly.


  4. pranto007

    May 15, 2017 at 5:50 pm

    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?



    September 17, 2018 at 8:36 am

    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!


  6. Mike

    December 20, 2018 at 10:30 am

    Great Article,

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


    • M.Hanny Sabbagh

      December 21, 2018 at 9:23 am

      Make sure the “ubiquity” package is installed. It’s the same installer in the official Ubuntu ISO images.


  7. Leenucks

    March 24, 2019 at 5:11 pm

    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.


  8. Matthew

    January 4, 2020 at 1:34 am

    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?


    • M.Hanny Sabbagh

      January 4, 2020 at 9:08 am

      Just apply “sudo apt -f install” after you install the .deb package.


  9. Matthew

    January 6, 2020 at 11:35 pm

    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?


    • M.Hanny Sabbagh

      January 6, 2020 at 11:56 pm

      I don’t know, you’ll have to check the log files and see why your build failed.

      For me, I can confirm that the program is perfectly working and making ISO images on the latest versions of Ubuntu.


  10. Matthew

    January 7, 2020 at 12:28 am

    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.


  11. Robert

    January 27, 2020 at 3:41 am

    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.


    • M.Hanny Sabbagh

      January 27, 2020 at 4:28 pm

      This is a common bug in the program since Remastersys days (The original program, 2008), if you activated auto-login when you installed your system no your hard disk, then normally you wouldn’t face the issue. But if not, then you need to apply some quick-and-dirty fixes until you find a solution. I can’t specifify just one solution for you because it depends on what software you are shipping inside your distro.

      E.g VirtualBox addons are known to cause the issue, and any other app which creates its own user in the system can cause the issue too. Sometimes it’s caused without even installing any other program than the original distribution.

      That’s why you’ll need to read the forum posts by yourself:


      • Robert

        January 27, 2020 at 7:44 pm

        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.


Leave a Reply