Making Customized Bootable FreeBSD

Kevin Kinsey kdk at
Mon Mar 26 19:32:43 UTC 2007

Olivier Regnier wrote:
> Hello,
> After 3 hours, i made my bootable FreeBSD CD/Floppies. Actually, i 
> finished my install.cfg but i have a problem because i don't understand 
> the final step :

I'm not sure I do either, but I'm willing to attempt to help.  Bearing
in mind IANAE, I *think* this is what you're seeing:
> # mkdir /img
> # cd $CHROOTDIR/R/cdrom/disk1/floppies

Should be self-explanatory; $CHROOTDIR should be 
set in the environment if you are doing "make release"....
> /* Get mfsroot.gz from mfsroot.flp */
> # vnconfig /dev/vn0c mfsroot.flp
> # mount /dev/vn0c /img
> # cp /img/mfsroot.gz .
> # umount /img
> # vnconfig -u /dev/vn0c
Create a "memory disk" from the floppy image "mfsroot.flp",
mount it, copy the "mfsroot.gz" to the current working dir,
unmount it and destroy the "memory disk".

> /* Unzip mfsroot.gz to get mfsroot */
> # gunzip mfsroot.gz

Obvious, I hope.

> /* Put your config file in mfsroot */
> # vnconfig /dev/vn0c mfsroot
> # mount /dev/vn0c /img
> # cp install.cfg /img/.
> # umount /img
> # vnconfig -u /dev/vn0c
> /* (If you 'gzip mfsroot' here, you can use that for bootable 
> mfsroot.flp for floppies) */

Mount the unzipped "mfsroot" file in a memory disk,
cp your install.cfg to this memory disk, unmount it
and destroy the memory disk.

(Note of concern ... I don't see this getting moved
back to anywhere were it will do some good before moving
to the next step.  Where did you get these instructions?)

> /* Put mfsroot in kernel so that it will read it when boot time */
> # vnconfig /dev/vn0c boot.flp
> # mount /dev/vn0c /img
> # cp /img/kernel.gz .
> # gunzip kernel.gz
> # write_mfs_in_kernel -f kernel mfsroot
> /* write_mfs_in_kernel can be found at /usr/src/release.  Compile it if 
> you haven't. */
> # gzip kernel
> # cp kernel.gz /img/.
> # umount /img
> # vnconfig -u /dev/vn0c

Mount the "boot.flp" image in a memory disk, grab the kernel,
unzip it, add the altered "mfsroot" to the kernel using the
write_mfs_in_kernel program/script, zip up the new kernel, 
copy it to the image and unmount said image.

I'm concerned though about this documentation; for one thing
vnconfig is deprecated (except for 4.X releases, which are, uh,
deprecated<?>), and  "write_mfs_in_kernel" was "nuked" from CVS 
**8 years ago**  by the venerable jkh himself, so I have to 
wonder, "Where did this 'how-to' come from?"

You may need someone more familiar with the modern RELENG
system to help with this....

Kevin Kinsey
Fortune favors the lucky.

More information about the freebsd-questions mailing list