Tuesday, August 4, 2009

Customize or Remaster ubuntu 9.04 jaunty from an image file

This tutorial will show you how to customize and remaster your ubuntu 9.04 jaunty using a jaunty iso file.

1. Create a work directory

# mkdir jaunty

2. Create the following directoires
# mkdir jaunty/cdrom
# mkdir jaunty/tmp
# mkdir jaunty/root

3. Mount the jaunty iso image on jaunty/cdrom directory
# mount -o loop jaunty.iso jaunty/cdrom
4. Copy everything from the cdrom to jaunty/image directory
# cp -r jaunty/cdrom jaunty/image
5. Now the image directory has the content of your cdrom

We are going to rebuild filesystem.squashfs under jaunty/image/casper

Move the filesystem.squashfs image to jaunty/tmp directory

# mv jaunty/image/casper/filesystem.squashfs jaunty/tmp
6. Mount the filesystem.squashfs under jaunty/root direct
# mount -o loop jaunty/tmp/filesystem.squashfs jaunty/root
7. Copy the contents of fileystem.squashfs to jaunty/remaster
# cp -r jaunty/root jaunty/remaster
8. Copy resolv.conf and sources.list from the host system
# cp /etc/resolv.conf jaunty/remaster/etc/
9. Preserve original sources.list.
# cp jaunty/remaster/etc/apt/soures.list jaunty/remaster/etc/apt/soures.list.backup
# cp /etc/apt/sources.list /jaunty/remaster/etc/apt/

Make sure that sources.list points to jaunty archive

10. Now you can chroot to jaunty/remaster
# chroot jaunty/remaster
11. Now run the following ( You are inside chroot )
# mount /proc

# mount /sys

# mount -t devpts none /dev/pts
The above commands mount the respective directories inside chroot.

12. Now you can install/remove necessary packages using apt.

eg:
# apt-get install vlc
# apt-get remove gimp

13. Cleanup the unwanted files.

# apt-get clean
# rm -rf /tmp/*
# rm /etc/resolv.conf

# umount -l -f /proc

# umount -l -f /sys

#umount /dev/pts

14. Now replace the sources.list with the original sources.list

# cp jaunty/remaster/etc/apt/sources.list.backup jaunty/remaster/etc/apt/sources.list

15. Repack squashfs:
# mksquashfs remaster image/casper/filesystem.squashfs -e remaster/boot
16. Recreate filesystem.manifest& filesystem.manifest.desktop:

Run the following commands.

# chroot remaster dpkg-query -W --showformat='${Package} ${Version}\n' | tee image/casper/filesystem.manifest

# cp -v image/casper/filesystem.manifest{,-desktop}

# REMOVE='ubiquity casper live-initramfs user-setup discover xresprobe os-prober libdebian-installer4'

# for i in $REMOVE
do
sed -i "/${i}/d" image/casper/filesystem.manifest-desktop
done

17. Recreate md5sum

# cd image && find . -type f -print0 | xargs -0 md5sum > md5sum.txt

18. Copy filesytem.squashfs manifest to imag dirtorey

Recreate the iso image:

# mkisofs -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 ../ubuntu-jaunty-remix.iso .
# cd ..

Now your remastered ubuntu 9.04 jaunty is achived.

Now install the image on to a hard disk.

No comments:

Post a Comment