BSDInstall: merging to HEAD

Nathan Whitehorn nwhitehorn at
Fri Jan 14 18:26:44 UTC 2011

As those of you who have been reading freebsd-sysinstall and 
freebsd-arch know, I have been working for a few weeks on a lightweight 
new installer named 'bsdinstall'. This is designed to replace sysinstall 
for the 9.0 release.

After two weeks of testing and bug fixes on the sysinstall list, I 
believe this now has all required functionality and is ready to be 
merged into the main source tree. I would like to do this on Tuesday, 18 
January. Switching this to be the default installer would happen a few 
weeks after that, pending discussion on release formats with the release 
engineering team. This should provide a sufficient testing period before 
9.0 and allow a maximal number of bugs to be discovered and solved 
before the release is shipped.

Demo ISO for i386:
SVN repository: svn://
Wiki page:

The primary goal of BSDInstall is to provide an easily extensible 
installer without the limitations of sysinstall, in order to allow more 
modern installations of FreeBSD. This means that it should have 
additional features to support modern setups, but simultaneously frees 
us to remove complicating features of sysinstall like making sure 
everything fits in floppy disk-sized chunks.

New Features:
- Allows installation onto GPT disks on x86 systems
- Can do installations spanning multiple disks
- Allows installation into jails
- Eases PXE installation
- Virtualization friendly: can install from a live system onto disk
- Works on PowerPC
- Streamlined system installation
- More flexible scripting
- Easily tweakable
- All install CDs are live CDs

BSDInstall is a set of tools that are called in sequence by a master 
script. These tools are, for example, the partition editor, the thing 
that fetches the distributions from the network, the thing that untars 
them, etc. Since these are just called in sequence from a shell script, 
a scripted installation can easily replace them with other things, (e.g. 
hard-coded gpart commands), leave steps out, add new ones, or interleave 
additional system modifications.

This provides functionality most similar to the existing sysinstall 
'Express' track. It installs working, bootable systems you can ssh into 
immediately after reboot on i386, amd64, sparc64, powerpc, and 
powerpc64. There is untested support for pc98. The final architecture on 
which we use sysinstall, ia64, is currently unsupported, because I don't 
know how to set up booting on those systems -- patches to solve this are 
very much welcome.

There are still some missing features that I would like to see in the 
release, but these do not significantly impact the functionality of the 
installer. Some will be addressed before merging to HEAD, in particular 
the lack of a man page for bsdinstall. Others, like configuration of 
wireless networking and ZFS installation, can happen between merge and 
release. The test ISOs are also lacking a ports tree at the moment, 
which is a statement about the slow upload speed of my DSL line and not 
about the final layout of releases.

Please send any questions, comments, or patches you may have, and please 
be aware when replying that this email has been cross-posted to three 
lists. Technical discussion (bug reports, for instance) should be 
directed to the freebsd-sysinstall list only. Most other discussion 
belongs on -sysinstall and -current.

More information about the freebsd-sysinstall mailing list