Good bye Gnome 3 , UNITY and we are Getting back to KDE ( Ubuntu live cd customization )


We all know Ubuntu Unity and Gnome-shell are sucks and crazy. They think we are 7 years kids who love the flash,nice images etc . So I am not going to use Gnome(Not too bad but enough sucks) or Fucking UNITY. Perhaps they are also permanent Windows users lol. And now trying to ripping off the Windows. So I customised my Ubuntu 12.04 and installed KDE based Interface. KDE is nice GUI and many distro such as Debian,Red hat enterprise, OpenSuse, Kubuntu Linux, Arch Linux  etc has the KDE for default use. Ubuntu live cd customization is not too hard. If you want to customize your ISO just follow this tutorial.


Do you believe that I did not even able to take all the screenshot when wrote this articles ? Perhaps I can't and i don't want to try. I don't think so, any power users or pentester will use GNOM 3 or UNITY. When I installed GNOME-SHELL on Ubuntu 12.04 and i saw it is able back to the classic style but still the classic style also sucks but use-able somehow.

Frankly, I used KDE and Gnome both. when I installed Ubuntu 11.10 and 12.04 it just makes me cry!!

Anyway, If you don't want to install the KDE,XFCE or other interface over and over whenever you install the fresh OS. If you decide to make your own ubuntu based Linux distro and install some hacking/pentesting tools on the CD  then this tutorial is for you.

First Install :

sudo apt-get install squashfs-tools genisoimage

Now we create a folder for our work:

mkdir kde-linux


Move or copy the iso to your working folder:

mv ubuntu-12.04-desktop-i386.iso kde-linux/

and

cd kde-linux

Now we need to mount the ISO. So first we create a folder:

mkdir mout

Now we mount the sucks ISO to mnt directory:

mount -o loop ubuntu-12.04-desktop-i386.iso mout


extract the ISO into a direcotry:

mkdir extracted
rsync --exclude=/casper/filesystem.squashfs -a mout/ extracted


Extracted the sqashfs filesystem and this will take some times, So wait:

unsquashfs mnt/casper/filesystem.squashfs

When extraction is 100% then just run the following command simply:
mv squashfs-root edit


What we need now? Now we chroot to be root for fully customization . But let's do something before doing it.:

cp /etc/resolv.conf edit/etc/
cp /etc/hosts edit/etc/
mount --bind /dev/ edit/dev
 
 
Now Chroot so that you can install anything you want , lol install some hacking tools too hehe:

chroot edit

Anyway, Now we need to mount :

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

And run blindly:

export HOME=/root
export LC_ALL=C


We are almost done correctly then all things. Now we need :
#dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
 
Now we can install anything we want... So let's install KDE first (kde-plasma-desktop,kde-full,kubuntu-desktop)

first we run :apt-get update

now lets run:

apt-get install kde-plasma-desktop

Oh shit, I get errors which maybe on your ISO or may not(Not sure!):
apt-get install kde-plasma-desktop
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package kde-plasma-desktop


So I saw  the sources.list:

nano /etc/apt/sources.list

and I get only 3 source .

And I quickly copy all the source from installed Ubuntu
::::
gedit /etc/apt/sources.list

Just copy all the source and paste to your editing sources.list

or you can completely replace the file by “cp” command.

Now run again apt-get update

search the software which we are going to install:
apt-cache search kde-plasma-desktop

 kde-plasma-desktop - KDE Plasma Desktop and minimal set of applications


apt-get install kde-plasma-desk

or you can just install kde-full:

apt-get install kde-full


Sucks , It will download 103 Megabyte. So Let's wait until it finish. But if you want to kde-full or kubuntu-desktop then it will download a lot. I prefer the minimal as I just want to leave the Gnome.


Anyway, If you want to install any other software :

apt-get install packagename #such asapt-get install vlc
apt-get install nmap
apt-get install skipfish
apt-get install gimp ksnapshot sqsh

If you want to install some deb file downloaded from internet then just copy the file to a folder ubuntu-kde/edit/somefolder. Example:

cp skype.deb ubuntu-kde/edit/home/somefolder

Now go to your chrooted terminal and : 
cd /home/somefolder                                     
dpkg -i skype.deb

Now we installed all necessary and it is time to build the ISO. Just we need to remove everything what created :

rm -rf /tmp/* ~/.bash_history                                                                
rm /etc/hosts
rm /etc/resolv.conf
rm /var/lib/dbus/machine-id
rm /sbin/initctl        

dpkg-divert --rename --remove /sbin/initctl


So now we need to umount what whatever we mounted .

umount /proc                                                                                 
umount /sys
umount /dev/pts
exit
sudo umount edit/dev   
                                                                                             
 
 
Now the real things blindly do:

chmod +w extracted/casper/filesystem.manifest

chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extracted/casper/filesystem.manifest

cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop

sed -i '/ubiquity/d' extracted/casper/filesystem.manifest-desktop

sed -i '/casper/d' extracted/casper/filesystem.manifest-desktop


Now we compress the filesystems :

mksquashfs edit extracted/casper/filesystem.squashfs  (It will take some time)


We need to update the size otherwise it will not match the correct installation when installing. So lets update the size :

printf $(sudo du -sx --block-size=1 edit | cut -f1) > extracted/casper/filesystem.size 

Now :

cd extracted
rm md5sum.txt

find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt


We are almost done :

 mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../your-new-linux-name.iso .

Now just burn the ISO into a blank DVD and Enjoy.

If you want to customize the Boot splash then you need more advance knowledge. Because Boot splash is related with plymouth( /lib/plymouth) and kernel.


I say Good Bye UNITY AND GNOME !!!! You made the power users crazy. Try to develop it soon.


Email me if you have any questions.