Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 May 2007 08:13:59 +1000
From:      "Jan Mikkelsen" <janm@transactionware.com>
To:        <freebsd-stable@freebsd.org>
Subject:   RE: Creating one's own installer/mfsroot
Message-ID:  <001601c79287$58721420$0502a8c0@IBMA618C20271E>
In-Reply-To: <f1t5os$doi$1@sea.gmane.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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=20
> 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).
> >=20
> > You could see how make release & FreeSBiE do it.
>=20
> You could also look at the INSTALL guides for (early versions of?)
> Dragonfly, it taught me how to install a BSD system from=20
> scratch, using
> only what's in base of liveCD :)
>=20
> (I consider it a bad sign that I've actually needed that=20
> 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@transactionware.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?001601c79287$58721420$0502a8c0>