How to mess with a isolinux CD iso file
For developers. If you would like to take out
modules that are causing troubles, or want to
try small changes to start up scripts to fix
problems or debug a beta version, this process
will let you change anything within a isolinux
CD iso file and create a new bootable CD when
done.
Please, please report back anything you fix!
There are a lot of other people out there
that need your help! It's appreciated!
If you don't remember what you fixed in a
script, use "diff" to create a diff file.
diff -u oldfilename newfilename > outputfile.txt
WARNING: This is for brave developer types
only! You can crash your system, write
over things and generally make yourself
go mad! You have been warned!
Please DO NOT redistribute your modified iso!
It's hard enough to figure out what version
people are reporting bugs for! Please send in
a bug report with a diff file where possible.
My reference for this was:
http://www.virtual-linux.org/hackvl.html
This example is for Linux Red Hat or Mandrake
type systems, latest versions +/- a year. And
specifically the 09 rc3 iso MeshBox CD setup.
The "UN" is your username on your box. Change
it accordingly.
Make a new directory in your home dir called
"myiso". So you now have /home/UN/myiso/
su to be root then copy everything from
the current CD to the "myiso" directory.
You will only have to do this once, after that
you just change the files within "initrd".
cp -a /mnt/cdrom/* /home/UN/myiso/
Create a new mount point for the next step.
mkdir /mnt/isotemp
Now comes the fun part, we are going to mount
the initrd file to /mnt/isotemp just like
any other file system, like a hard drive.
Warning: A corrupt file may crash your system.
mount -o loop /home/UN/myiso/isolinux/initrd /mnt/isotemp
cd /mnt/isotemp
ls
Now have at it, be careful to only change a
little at a time, so you know where you went
wrong. Small steps that work are better than a
big change that doesn't work at all.
You want to make modifications as root to the
files in /mnt/isotemp this is actually the
file "initrd" on your hard drive mounted
as if it was it's own little file system.
Don't worry, you get used to it. Just make
sure you aren't changing things on your own
root file system.
To add commands after boot, see
/mnt/isotemp/etc/rc.d/rc.local and modules
are loaded at
/mnt/isotemp/etc/rc.d/rc.modules and
/mnt/isotemp/hj has a lot of scripts in it.
Compiling modules to add to this may be a
lot of work, you will need to find the source
for the kernel for this specific build. Build
them for i386 for best results on many systems.
When done, un mount the file system, if you
don't it shouldn't cause any problems, I did
a few times with no problems, but it's best.
umount /mnt/isotemp
Then to make a new iso file, issue this very
long command. e-mail will probably wrap this
several times, you need to make it just one
long line. See man mkisofs for more info.
After that you are done, burn the CD as
usual. The file is in your home dir.
You should be able to do just about the same
thing to a CF image file.
Let me know if I missed anything in these
instructions.
mkisofs -o /home/UN/mynew.iso -R -T -d -D -N -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -pad -boot-info-table /home/UN/myiso