FreeBSD installers. BSDInstall and pc-sysinstall to merge

Most readers here will agree that FreeBSD would benefit from an updated installer with more functionalities. One of many reasons e.g. is support for the Zetabyte File System (ZFS). A number of FreeBSD users even think that FreeBSD can do with a more attractive installer (me included).

I’m aware of the reasons why many FreeBSD users prefer a text-based installer, but I think a GUI installer is nicer. Please don’t start a flame war ;-) Remember, for new users, first impressions count…..

FreeBSD sysinstall

Over the last couple of  years there have been a few projects endeavouring to create a user friendly graphical installer for FreeBSD. As far as I’m aware these have now been discontinued. Two of which are:

Kris Moore, the founder of the PC-BSD Project, saw the need for an alternative installer for his project and created pc-sysinstall, a visually more pleasing installer with more advanced features than FreeBSD’s sysinstall. There’s an article in this month’s BSD Magazine (FreeBSD and ZFS) with some background and technical details of pc-sysinstall.


Last year work was undertaken by iXsystems to port PC-BSD’s graphical pc-sysinstall to a text-based installer as a replacement for the current sysinstall FreeBSD installer: txt-sysinstall, but this hasn’t been worked on for the last nine months. Will Backman has an interview with John Hixson on this: bsdtalk 199.

I was somewhat disappointed when Nathan Whitehorn (nwhitehorn@) announced his BSD Install project. Instead of working with the guys from iXsystems/PC-BSD and improving pc-sysinstall/txt-sysinstall he deciced to create BSD Install to replace FreeBSD’s current installer:

This project started because we have never, in three major releases, shipped an installer on PowerPC capable of installing a booting system without absurd amounts of handholding and use of external tools. This is especially galling when we have tools in the base (gpart, newfs, and tar) fully capable of doing this. As it turns out, by the time you’ve written a shell script to combine these things, you’re well on your way to deciding to write a new installer.

The goal of this project then, was to maximally reuse existing tools and to make the installer a chain of easily modifiable or replaceable components so that future installer-tinkerers will not run away in terror as quickly as I and many others have from sysinstall and libdisk.

PC-BSD pc-sysinstall

Choice and competion are a good thing, but sometimes cooperation towards a common goal is the better option.

Nathan recently emailed (FreeBSD Installer Roadmap) that he is now together with Josh Paetzel and  Warner Losh, both from iXsystems, and it was agreed to merge the BSD Install frontend with the pc-sysinstall backend:

After some discussion with M. Warner Losh and Josh Paetzel of iXsystems, we’ve come up with the following roadmap for an installer for 9.0. Over the next month, we intend to try to adapt bsdinstall as the front-end for the more featureful, but lacking a terminal-compatible user interface, pc-sysinstall. This implies that the user interface and installation flow for the hybrid installer will be extremely similar to what is currently available in bsdinstall, so please continue sending feedback and bug reports on it. What will be different is the backend code, which will allow use of additional features not currently present in bsdinstall, such as ZFS installation.

I’m happy that the two teams/projects are working together now to create the best installer for the upcoming FreeBSD 9.0.

It is my personal opinion, but I think FreeBSD should come with a graphical installer by default. However, when launched there should be an option to exit the GUI and continue with the text based installer for those who prefer this.

As most of you will know there’s also a BSD Installer which is used by pfSenseDragonflyBSD and previously by FreeNAS.

If you want, please take part in the “what FreeBSD Installer do you like” poll.

6 thoughts on “FreeBSD installers. BSDInstall and pc-sysinstall to merge

  1. nestux says:

    For me its ok only if I can choose the option, GUI is nice to beginners but I prefer a text-based installer because is more ligth and easy to use.

  2. Jared says:

    This is the right move!

    The new pc-sysinstall is both designed and written well. It is simple in that it takes a settings file and installs. Anybody can write a front-end to build the settings file, it would seem like a waste to do anything more than make a new front end.

    If they hadn’t come together I would have been sorely disappointed. Disappointment averted!

  3. Justin says:

    I think this is really good news.

    I think that FreeBSD should definitely provide a solid backend that does all the heavy lifting and covers all the features of a modern system and I believe the pc-sysinstall system is that backend. In my opinion it is well designed and provides a modern feature set IE: ZFS and scripted installs. I don’t know BSD Install well enough to comment.

    With a solid backend the Front Ends then are really just simple UI wizards. Having the ability to choose between a GUI system or a text system is in my opinion vital for keep current admins and users happy and driving new users and devs to the project.

    BSD Installer and pc-sysinstall is really both trying to do the same thing. We need them both to come together and put all the effort into one well designed system that will benefit all related OS’s not just PCBSD or not just FreeBSD. pfSense and DragonFly BSD should also be able to use the installer.

    I cant wait to see how things turn out, but I really don’t want to be disappointed again. The FreeBSD installer has come up for discussion since before 7.x and I really hope we find some direction before 9.x is released.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>