These instructions will work the same on Linux mint 17.01 or Ubuntu 15.10, and probably any Debian based system

To keep this guide simple, just copy and paste each line one at a time.
For an explanation of what each step performs, read the original post where I found the instructions: link: Linux Mint Forums 

Note: a few of the commands are so long that they span multiple lines, depending on your screen size and word wrap, which may cause some confusion and errors if not copied completely. So I've alternated between 2 colors for each command.
For example, if a command is purple and takes up 3 lines, copy all 3 lines and paste in to your terminal.


Sections
1. Acquire the necessary software
2A. Create project from scratch
2B. Resume/continue your project
2C. Exit chroot environment
2D. Build .iso
3. Modify the system
4. Personalizing the desktop/theme

 


1. Acquire the necessary software

1a. Install packages from the repository

Open a terminal and type:

  • sudo apt-get install squashfs-tools genisoimage resolvconf

1b. Download Ubuntu: Ubuntu Downloads page

or

1b. Download Linux Mint: Linux Mint downloads page

move the downloaded .iso file from your /Downloads folder to your /home/user folder

2. Setting up, resuming, and building .iso

2A. Create project from scratch

Open a terminal and type/copy :

  • mkdir ~/livecdtmp

  • cd ~/livecdtmp

  • mkdir extract-cd mnt

  • sudo mount -o loop ~/INSERT-NAME-HERE.iso mnt (change the name to match the linux image you downloaded)

  • sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

  • sudo unsquashfs mnt/casper/filesystem.squashfs

  • sudo mv squashfs-root edit

  • sudo cp /etc/resolv.conf edit/etc/

  • sudo mount --bind /dev/ edit/dev

  • sudo chroot edit

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

  • export HOME=/root && export LC_ALL=C

  • cd /etc/skel

  • mkdir Desktop Documents Downloads Music Pictures Public Templates Videos

  • cd /

Your project is ready for modifications, make whatever changes you want like adding or removing software

Go to step 3 "Modify the system"

2B. Resume/continue your project

(To continue your project after you have rebooted or just need to make additional changes)

Open a terminal and type/copy :

  • cd livecdtmp (if you're not in there already)

  • sudo mount --bind /dev/ edit/dev

  • sudo chroot edit

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

At this point you are ready to resume your remaster project

You can add/remove programs and make whatever changes you want.

Go to step 3.Modify the system

2C. Exit chroot environment

When done making changes and are still in the chroot environment, type/copy :

  • apt-get clean

  • apt-get autoremove

  • rm -rf /tmp/* ~/.bash_history

  • umount /proc

  • umount /sys

  • umount /dev/pts

  • exit

  • sudo umount edit/dev

  • sudo umount mnt

The project is ready to build or you could go back later to make more changes by repeating step 2B

Go to step 2B: Resume/continue your project

2D. Build .iso

Open a terminal and type/copy :

  • sudo rm ~/livecdtmp/extract-cd/casper/filesystem.squashfs (only if rebuilding a project)

  • cd livecdtmp (if you're not in there already)

  • sudo mksquashfs edit extract-cd/casper/filesystem.squashfs

  • sudo nano extract-cd/README.diskdefines

  • cd extract-cd

  • sudo rm md5sum.txt

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

  • cd ..

  • sudo mkisofs -r -V "REMASTER" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../REMASTER.iso extract-cd

  • cd ..

  • sudo chmod 777 REMASTER.iso

Your project is ready to test

3. Modify the system (right after steps 2A and 2B)

Most modifications are done via the chroot terminal. 
In the chroot terminal you can type commands, install and remove packages as you would on a normally installed system.
These changes will manifest in the ISO you create.

If you just need to edit a text file or add/delete files and don't want to use the terminal, you can perform this by using a file manager as root instead.

The following steps reflect software that I wanted to add/remove and changes that I like
You can perform these too, or choose your own

3A. Get all the latest updates

in the chrooted terminal copy/paste the following:

  • apt-get update then
  • apt-get upgrade

note: It’s a good idea to reboot right now, after performing all these system updates, the /dev partition won’t unmount so you have to reboot to get things back to normal.

To get back to working on your project, go back to step 2B: Resume/continue your project

3B. Install software from the repository

in the chrooted terminal, install new software, for example

  • apt-get install inkscape testdisk unetbootin grsync gprename laptop-mode-tools preload audacity chntpw gufw gpodder phatch gimp easytag soundconverter

3C. Turn on the firewall by default

in the chrooted terminal copy/paste the following:

  • nano /etc/ufw/ufw.conf (change the “no” to “yes”, example: ENABLED=yes)

save and exit

3D. Customize fstab to reduce disk writes with the “noatime” option

in the chrooted terminal open the following file to edit:

  • nano /lib/partman/fstab.d/ext3

find the lines:

options="errors=remount-ro"

else

options="${options},errors=remount-ro" add (without the quotes) “noatime,nodiratime,” right before errors. It should look like this:

options="noatime,nodiratime,errors=remount-ro"

else

options="${options},noatime,nodiratime,errors=remount-ro" save and exit

3E. Install extra programs from web:

Google Chrome: link

Hangouts plugin: link

Teamviewer: link

Truecrypt: link

Insync: link

Dropbox: link

Boot-Repair: link

Indicator Stickynotes: link

4. Personalizing the desktop/theme

These steps will allow you to customize the live user session. The customizations will also carry over to users if your remaster is installed to a disk.

  • Boot to your newly created .iso
  • Customize it:

after you have booted into the remastered live session go ahead and customize the desktop to your liking.
you can rearrange the panel, change wallpaper, add icons to desktop, add items to the autostart list. pretty much anything.

  • Log out and back in again

For all your changes to take effect, you must log off from the live user session.
Log back in. username: mint      password:__________(no password, just press enter)

  • Save configuration files

have a USB stick handy to copy files into
open a file manager
you should now be in the home folder of the user “mint”
press “ctrl+h” to see the hidden files
copy the following folders from the “mint” home folder on to the USB flash drive:
“.config, .gconf, .mateconf, and .mateconfd”
If you have files on the desktop then copy over the “Desktop”  folder too.

  • Reboot

boot back into your own linux installation where you are remastering Linux Mint
open a file manager as root. In Mint Mate edition, press “alt+F2” to bring up the run window. Enter “gksu caja” , press enter and enter your password when prompted
copy the configuration files that you copied on to the USB drive and paste them into your working directory in the following location:
~/livecdtmp/edit/etc/skel/
of course, you need to find your own username and working directory name

  • Rebuild

once the files have been copied over, just rebuild the image like you did the first time
Jump to step 2D. Build .iso

  • Test

when the image is finished building, burn it to disk, or use “unetbootin”  to make a bootable USB stick.
boot into it and test it out.
the desktop should look exactly as it did when you customized it on the second step above.