( This document was written in connection with a one day ubuntu ramastering workshop held at College of Engineering Attingal. See this post)
System Requirement
You need a reasonably good PC with Ubuntu 9.04 installed. It should have plenty of free space ( say 4 GB ) and minimum 1 GB
Preparing the host system
Create a work directory
# mkdir jaunty
Create the following sub directoires
# mkdir jaunty/cdrom
# mkdir jaunty/tmp
# mkdir jaunty/root
#mkdir jaunty/remaster
Mount the jaunty iso image on jaunty/cdrom directory
#mount -o loop jaunty.iso jaunty/cdrom
Copy everything from the cdrom to jaunty/image directory
#cp -r jaunty/cdrom jaunty/image
Now the image directory has the content of your cdrom.
You may refer to this post for an explanation of the contents of the image directory.
Rebuilding the squashfs image.
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
Mount the filesystem.squashfs under jaunty/root direct
#mount -o loop jaunty/tmp/filesystem.squashfs jaunty/root
Copy the contents of fileystem.squashfs to jaunty/remaster
#cp -r jaunty/root jaunty/remaster
Now the jaunty/remaster directory holds the uncompressed root filesystem for your live CD.
Copy resolv.conf and sources.list from the host system
#cp /etc/resolv.conf jaunty/remaster/etc/
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
Now you can chroot to jaunty/remaster .
#chroot jaunty/remaster
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.
# apt-get update
Install/remove necessary packages using apt.
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
Exit chroot
#exit
Now replace the sources.list with the original sources.list
#cp jaunty/remaster/etc/apt/soures.list.backup jaunty/remaster/etc/apt/soures.list
Repack squashfs
# cd jaunty
#mksquashfs remaster image/casper/filesystem.squashfs
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
Recreate md5sum
#cd image && find . -type f -print0 | xargs -0 md5sum > md5sum.txt
Recreate the iso image.
# mkisofs -r -V “Jaunty_remix” -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 ..
You can test the new image with virtual box.