Needs Expansion
This article is incomplete, and needs to be expanded. More info...


This document could potentially cause damage to your system and will have many errors in while it is is currently in development. Anyone following this should do so at their own risk and be aware that there are currently errors in the document

This document should be used for reference/interest only as this process provides an install exactly the same as the Ubuntu install process but without community support. Using this guide to build an Ubuntu base system is discouraged due to it providing the same install as an Ubuntu installer, but without support, thus making this document pointless as a practical system.


There are three different areas to think about: The host system, the Disk Partitioning and mounting and the chroot.

1- The host system. This is your current Ubuntu install.(not tested on live cd)

2- The Disk Partitioning. The Disk Partitioning stage is when you set up partition install to. The disk partition will be created in the host environmen not chroot.

3- The chroot environment. This is the system that will run from the partition.

Make the chroot environment

install debootstrap. (Note, the latest version of debootstrap is available here.

Below Replace the word USER with your username and run Run

mkdir ~/UFS
cd ~/UFS

mkdir disk
sudo mount /dev/sdb1 /home/USER/UFS/disk

export UFS=hardy
sudo debootstrap --arch i386 $UFS disk 

Change hardy to what codename for version you want. That will create a directory with a chroot directory within it. It will then install a bare ubuntu system there. It is important to install custom applications such as MySQL after linux-generic is installed as the application requires kernel modules for post-install configuration.

Setup Chroot

sudo cp /etc/resolv.conf disk/etc/resolv.conf
sudo cp /etc/apt/sources.list disk/etc/apt/sources.list

This Copies resolv.conf for internet and source.list and you may want to edit it for you codename sudo gedit disk/etc/apt/sources.list

Enter Chroot

sudo chroot disk

mount /proc
mount /sys
mount -t devpts none /dev/pts

Install Software

apt-get update
locale-gen en_US.UTF-8

apt-get -y install ubuntu-standard casper
apt-get -y install laptop-detect os-prober
apt-get -y install linux-generic

Choose Desktop-Environment

For Ubuntu Desktop (GNOME)

apt-get -y install ubuntu-desktop

For Kubuntu Desktop (KDE)

apt-get -y install kubuntu-desktop

For Xbuntu Desktop (XFCE)

apt-get -y install xbuntu-desktop

For Edubuntu Desktop (Gnome)

apt-get -y install edubuntu-desktop

For Edubuntu Desktop (KDE)

apt-get -y install edubuntu-desktop-kde

Extra Software

apt-get install (whatever other packages you want)

Create Users

So far this new Ubuntu System doesn't have any users. so before we exit we need to make some. and also add some groups

Work in progress to assign the correct user, groups, uid and gids

Exit Chroot

apt-get clean

rm -rf /tmp/*

rm /etc/resolv.conf

umount -l -f /proc
umount -l -f /sys
umount /dev/pts

That will allow you to enter that chroot and install packages, then clean up and leave. This is where you build your custom system

  • using packages from the Ubuntu archives.

Install Grub

To install grub Replace the word USER with your username and run Run

sudo grub-install --root-directory=/home/USER/UFS/disk --recheck '(hd1)'

and make ~/UFS/disk/boot/grub/menu.lst

Place holder for valid Ubuntu menu.lst configuration file

The End


CustomizationFromScratch (last edited 2008-11-15 20:33:00 by matt-darcy)