How to easily build your own Linux Distro?

Take a look on Linux From Scratch, LFS they have a tutorial which teaches you how to build your own Linux System, once you understood that you can select a package manager and a set of packages hence creating your own distro.

A thing to make the answer a bit more complete, ArchLinux is a Linux Distribuition which uses almost 100% vanilla packages. This means almost no patching is done by the distro mantainers. Also it does not have a default set of packages as *buntu distros do.

These characteristics make Arch a very customizable distro. It is your "own distro" in the sense that it is your own setup. But not as in LFS where it is your own kernel, modules, packages...


The Yocto Project is a "distribution builder".

There is extensive documentation and a graphical builder, called Hob.

Hob GUI

Update as of 2017

According to the Yocto website the Hob project is being deprecated and the replacement is called Toaster.


Part of the answer depends on what you mean by your own distro. if you mean a version of Linux custom built to your own purposes for you to use on your own machines, or even in your own office, there are a couple of pretty cool tools that allow you to customize existing distributions that are known working.

http://www.centos.org/docs/5/html/Installation_Guide-en-US/ch-kickstart2.html covers kickstart installations of CentOS (also applies to Scientific, Fedora and RedHat.) There's also http://susestudio.com/ which allows you to make a customized installation disk of SuSe Linux, meaning you can get the packages you want installed right off the bat. The advantage to this method, more so with the kickstart, is that you can choose individual packages and leave out whatever fluff you don't want to bother with, but also get the advantages of knowing that updated packages will be available to you and work without a significant amount of testing and overhead on your part.

If you're just looking to make it look the way you want to look, custom splash screens, logos, etc, there are a ton of guides available for making these kinds of changes.

Now, if you really just want to get nuts and bolts and really do up your own thing, then the suggestion by @vfbsilva to look at LFS is irreplaceable. You really do learn how things get put together and what the requirements are to make Linux ... well, Linux. However, doing this a couple of times was just enough for me personally to realize I didn't want to have to deal with rebuilding every package that had a security update released on a weekly basis. :)