How to get custom release CD to boot without floppies?

James Long list at museum.rain.com
Tue Jan 24 17:35:51 PST 2006


I am trying to create bootable installation media for 6.0-RELEASE.  
This is my first attempt at doing this, so I am learning a lot and
fumbling even more as I go.

First, I wish to thank Masafumi Watari for his helpful step-by-step
procedure, based on RELENG_4, found at
http://www.sfc.wide.ad.jp/~watari/FreeBSD/boot.html.  It has gotten 
me much farther than any other resource that I've found on the web.

Actually, I think I'm building a snapshot release of 6-STABLE, since 
I started by cvsup-ing:

cvsup -g cvs-supfile

with this cvs-supfile:
--- snip
*default host=cvsup4.FreeBSD.org
*default base=/var/db
*default prefix=/home/ncvs
*default release=cvs
*default delete use-rel-suffix

*default compress

src-all

cvsroot-all
--- snip

I am intentionally omitting ports and docs because I believe I do
not require them for my purposes.

I then went into /usr/src and did 'make -j4 buildworld' which ran 
without errors.

The 'make release' was done thus:

export NODOC=1
export NOPORTS=1

cd /usr/src/release
make release CHROOTDIR=/usr/tmp/CHROOTDIR BUILDNAME=6.0-REL-TEST CVSROOT=/usr/home/ncvs RELEASETAG=RELENG_6


Watari's document talks about customizing install.cfg, but in my
limited understanding, this file automates installation tasks.
I don't think I need this.  I will be happy to just have a custom
release which boots into a standard sysinstall.

Watari also discusses modifying sysinstall itself, again, beyond the
scope of my needs.

So I proceeded directly to burning the CD-R.  I don't have a burner
on the build machine, nor do I have mkisofs installed.  So I tarred
up the release CHROOTDIR:

cd /usr/tmp
tar cf CHROOTDIR.tar CHROOTDIR

and un-tarred on my burner-equipped machine:

cd /work/
tar xpf ~/CHROOTDIR.tar

Finally, I made an ISO image:

cd CHROOTDIR
export CHROOTDIR="."
mkisofs -d -D -N -R -T -V "FreeBSD6.0-RELEASE" \
        -P "Test Distribution" \
        -o ~/tinn.iso -b floppies/boot.flp \
        -c floppies/boot.catalog $CHROOTDIR/R/cdrom/disc1

# /* -V is your CD name */
# /* -P is for some comments */
# /* -o is your image name */
# /* -b and -c should be left how it is. It's set for auto boot. These paths should not be a full path */


I then took an md5 of the iso file, burned it to disc, and got
a disc with the same md5 value.

The disc does boot, but asks for kernel floppies:

Insert disk labelled "Kernel floppy 1" and press any key...

I want to make a CD which doesn't require floppies to boot.  In 
diff'ing the CD against a genuine 6.0-RELEASE I find that the 
boot.catalog didn't make it on the disc (apparently because there 
just plain isn't one anywhere in the CHROOTDIR tree I built), but 
I can't find anything by Googling that definitively points to that 
being the problem.  I have compared some files between my release 
and 6.0-RELEASE (/boot/*boot*, /boot/defaults/loader.conf, 
/boot/loader.rc, etc.), and in general, binaries are the same size, 
and text files have trivial differences.  But perhaps I have 
overlooked some key files somewhere.

The mkisofs option "-b floppies/boot.flp" makes me squint a lot,
but my searches haven't led me to a file which seems a more likely
El Torito boot image.

So....

I'm going to go rustle up some floppies -- I don't think I have any
around -- and  see if my release at least does boot via the floppy
method.  That will be valuable knowledge to have before attempting
a second "release candidate."  I should make diskettes from the images
$CHROOTDIR/R/cdrom/disc1/floppies/kern1.flp and kern2.flp, yes?

In the meantime, can anyone shed light on why my CD asks for floppies
in the first place?  If it is the lack of the boot.catalog file, can
I simply copy the boot.catalog from the official 6.0-RELEASE disc,
and place it in $CHROOTDIR/floppies/ as per where mkisofs was told
to find it?  If it is the wrong choice of boot image with the "-b"
switch, which file should I use instead?

In case it helps,

$(ls -lR) of $CHROOTDIR is at: ftp://www.umpquanet.com/pub/make-rel-chrootdir-ls-lR.txt
$(ls -lR) of burned CD is at: ftp://www.umpquanet.com/pub/make-rel-cd-ls-lR.txt


Thank you very much!


Jim


More information about the freebsd-stable mailing list