Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Mar 2007 14:32:33 -0500
From:      Kevin Kinsey <kdk@daleco.biz>
To:        Olivier Regnier <oregnier@steelbox.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Making Customized Bootable FreeBSD
Message-ID:  <46081FD1.8010604@daleco.biz>
In-Reply-To: <4607E8C0.9050608@steelbox.org>
References:  <4607E8C0.9050608@steelbox.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46081FD1.8010604>