> I want to thank all of you who replied on my previous mail about the live
> cd. I've seen many of those links you sent me which talk on how you can
> create a live cd. I would have done it my self but unfortunatelly I cant due
> to tech reasons right now. Also I dont know if it would have been good since
> i am an openbsd noob ! As i said I study at the American College of Greece
> and the head of dept agreed to use obsd for the teaching of unix instead of
> the crapy linux and asked me to get it to him. So if someone can create this
> live cd and upload it on the web just to download it and dist to all college
> I would really apriciate it. I know that time is precious for everybody so
> if noone can do it I will understand. But if you can you will help openbsd
> grow not only in many ppl but in the educational system of c.i.s as well.
> Thank you all very much again !
>
> Best Regards
> Alex
Okay here is my own REAL EASY Step-by-Step howto for an OpenBSD live CD
Sorry for the possible bad english, my english is not the best at 2am, but I
wanted to help you quick.
The original (much better) How-To is in German, thus if you can speak German I
could mail you the much better version.
(If anybody is interested in a Live CD I could also translate it 1 : 1 )
Since I really love to show off my OpenBSD Live CD to friends.
<anti_flame_request>
IMHO Knoppix sucks compared to an OpenBSD live cd
</anti_flame_request>
(If you can't understand something just ASK and I will answer ASAP because I'm
just to darn tired to even READ through it again)
Here we go:
The easy way (don't even ask for the complicated way):
NOTE YOU NEED TO ADJUST THE SIZE OF THE MFS PARTITIONS TO YOUR NEEDS!
You need a current system with the right (current) source code for it.
Best thing is to make a release
man 8 release
Grab a virgin harddrive and put it into a spare i386 box, install openbsd onto
this harddrive.
DON'T make Partitions (actually you could BUT IMHO it makes everything much more
complicated )
Configure it ( with X, packages, configs ) the way it should
boot from the CD later on. Although you COULD use a DVD as medium, I would
RECOMMEND you not to get over the size of a normal CD for the complete install.
Once you have the System exactly the way you want it to be read on:
Rip the harddrive out of the test box and put it into another box ( with cd/dvd
burner ). Mount the drive somewhere and tar it up
cd /mnt/ && tar pczf ~/livecd_root.tar.gz *
Create a directory, this will be the root directory on the CD.
# Of course you need a large enough /usr/ Partition
"mkdir -p /usr/livecd/backups/dev"
Untar the Stuff into the above livecd directory.
cd /usr/livecd && tar pxzf ~/livecd_root.tar.gz
We need some "backup" directories that will be used later
cp -pR /usr/livecd/{var,etc,root,home} /usr/livecd/backups/
cp -pR /usr/livecd/dev/MAKEDEV /usr/livecd/backups/dev/
We need MFS partitions in order to be able to make config changes ...
the content of the backup directories will be copied into them.
For this purpose we use a modified "etc/rc" script
--------------------------- /usr/livecd/etc/rc ---------------------------------
# ...
# After: rm -f /fastboot # XXX (root
now writeable)
echo 'mounting mfs'
mount_mfs -s 51200 -o async,nosuid,nodev,noatime swap /var
mount_mfs -i 4096 -s 6144 -o async,nosuid,nodev,noatime swap /etc
mount_mfs -i 128 -s 2048 -o async,noatime swap /dev
mount_mfs -s 6144 -o async,nosuid,nodev,noatime swap /tmp
mount_mfs -s 8192 -o async,nosuid,nodev,noatime swap /home
mount_mfs -s 8192 -o async,nosuid,nodev,noatime swap /root
sleep 2
echo -n 'copying files: var '
cp -pR /backups/var/* /var
echo -n 'etc '
cp -pR /backups/etc/* /etc
echo -n 'dev '
cp -pR /backups/dev/* /dev
echo -n 'home '
cp -pR /backups/home/* /home
echo 'root'
cp -pR /backups/root/.[a-z]* /root
echo 'creating device nodes'
cd /dev && sh MAKEDEV all
# ...
# After: if [ -f
/sbin/kbd -a -f /etc/kbdtype ]; then
# We need a root Password
echo 'Need to set a root password'
passwd
--------------------------------------------------------------------------------
We need some basic devices (just create all) on the temporary boot /dev
cd /usr/livecd/dev && ./MAKEDEV all
Now we create the custom kernel (not much customization!)
"cd /usr/src/sys/arch/i386/conf"
"mv RAMDISK_CD RAMDISK_CD.old && cp GENERIC RAMDISK_CD"
------------------- /usr/src/sys/$arch/conf/RAMDISK_CD -------------------------
...
# config bsd swap generic < - was commented OUT!
option RAMDISK_HOOKS
option MINIROOTSIZE=3800
config bsd root on cd0a
...
--------------------------------------------------------------------------------
Compile the new RAMDISK kernel
config RAMDISK_CD && cd ../compile/RAMDISK_CD/ && make clean && make depend \
&& make
Copy the new ramdisk kernel to the livecd folder:
cp bsd /usr/livecd
We need to patch the Makefile.inc
NOTE:
YOU JUST NEED TO FIND THE APPROPRIATE TWO LINES BECAUSE THEY CHANGE KIND OF
FREQUENTLY!
THIS PATCH IS NOT AN EXACT DIFF PATCH ! FIND THE RIGHT LINES!
-------------------------- patch-Makefile.in -----------------------------------
--- src/distrib/i386/common/Makefile.inc.orig Thu Mar 3 09:16:02 2005
+++ src/distrib/i386/common/Makefile.inc Thu Mar 3 09:16:32 2005
@@ -33,8 +33,7 @@
newfs -m 0 -o space -i 524288 -c 80 ${VND_RDEV}
mount ${VND_DEV} ${MOUNT_POINT}
cp ${BOOT} ${.OBJDIR}/boot
-strip ${.OBJDIR}/boot
-strip -R .comment ${.OBJDIR}/boot
+strip -s -R .comment -K cngetc ${.OBJDIR}/boot
dd if=${.OBJDIR}/boot of=${MOUNT_POINT}/boot bs=512
dd if=bsd.gz of=${MOUNT_POINT}/bsd bs=512
/usr/mdec/installboot -v ${MOUNT_POINT}/boot \
@@ -54,8 +53,7 @@
bsd.gz: bsd.rd
cp bsd.rd bsd.strip
-strip bsd.strip
-strip -R .comment bsd.strip
+strip -s -R .comment -K cngetc bsd.strip
gzip -c9 bsd.strip > bsd.gz
bsd.rd:${IMAGE} bsd rdsetroot
--------------------------------------------------------------------------------
We need to install crunch:
cd /usr/src/distrib/crunch && make obj depend all install
Create the boot image and insert new kernel
cd /usr/src/distrib/i386/ramdisk_cd && rm -rf obj/* && make
Copy the Boot Image to the livecd folder
cp /usr/src/distrib/i386/ramdisk_cd/obj/cdromXX.fs /usr/livecd/
Change the fstab files so that you can boot correctly:
----------------------- /usr/livecd/etc/fstab ----------------------------------
/dev/cd0a / cd9660 ro,noatime 0 0
/dev/cd0a / cd9660 ro,noatime 0 0
swap /dev mfs rw,noatime,-s=12000 0 0
swap /tmp mfs rw,noatime,-s=262144 0 0
swap /var mfs rw,noatime,-s=262144 0 0
swap /root mfs rw,noatime,-s=262144 0 0
swap /home mfs rw,noatime,-s=262144 0 0
swap /etc mfs rw,noatime,-s=131072 0 0
--------------------------------------------------------------------------------
Now just create an ISO Image to burn
"cd /usr/livecd"
"mkisofs -b cdromXX.fs -c boot.catalog -R -v -o /tmp/livecd.iso /usr/livecd"
and burn it with your favorite app (I love cdrecord)
Kind regards
ahb
(hope you will have fun with a NICE live CD)
p.s. THANKS to all developers and everybody involved with OBSD! Great system for
all situations (besides playing games ;) )!