Creating one's own installer/mfsroot

Jan Mikkelsen janm at transactionware.com
Wed May 9 22:14:07 UTC 2007


Ivan Voras wrote:
> Daniel O'Connor wrote:
> > On Wednesday 09 May 2007 03:40, Matthew X. Economou wrote:
> >> Could anyone recommend a good guide for developing one's 
> own mfsroot
> >> images suitable for recovery or scripted installation (not using
> >> sysinstall)?  It appears that one could develop a simplified
> >> network-based installation process based around fdisk, disklabel,
> >> newfs, mount_ufs, fetch, and pax, perhaps tied together with the
> >> usual scripting tools (maybe miniperl or sh/sed/awk).
> > 
> > You could see how make release & FreeSBiE do it.
> 
> You could also look at the INSTALL guides for (early versions of?)
> Dragonfly, it taught me how to install a BSD system from 
> scratch, using
> only what's in base of liveCD :)
> 
> (I consider it a bad sign that I've actually needed that 
> knowledge once
> to set up a production machine - I thought we're not in the stone age
> anymore :( )

Well, that kind of knowledge is also what lets us leave (say) the bronze
age.

We have set up a boot CD (or pxeboot/nfs environment) where we can run a
Ruby script that will take directives from a configuration file, configure
the disks, slices and partitions, align the partitions to start on a block
boundary appropriate for the underlying RAID system, to end on a cylinder
boundary, populate filesystems as required, etc.  Also useful for using an
existing system to set up CF cards for Soekris systems with the correct
geometry, etc.

Building the system images and installation time filesystems is done from a
build system that builds everything in chroot environments, with as little
dependency on the host system as possible.  It manages make
buildworld/installworld/kernel, ports, non-ports installations (ie: user
generated scripts), dependencies, parallel builds, making jails, etc.

>From this we have a system where system installations are reproducible and
recoverable.  Upgrading uses the same output from the build process using a
nanobsd-like second slice allowing inplace upgrades with little downtime and
recovery to the previous version.  But the most important thing is that the
upgrade image was created using the same process as the installation image,
so we can always get to the same image after a full system rebuild.

If anyone is interested, let me know and I'll see what I have to do to
release it.

Regards,

Jan Mikkelsen
janm at transactionware.com



More information about the freebsd-stable mailing list