BSDInstall: merging to HEAD

Warner Losh imp at bsdimp.com
Mon Jan 17 16:05:39 UTC 2011


On 01/16/2011 08:46, Nathan Whitehorn wrote:
> On 01/16/11 05:48, Garrett Cooper wrote:
>> On Sun, Jan 16, 2011 at 3:06 AM, krad<kraduk at gmail.com>  wrote:
>>> On 14 January 2011 18:26, Nathan Whitehorn<nwhitehorn at freebsd.org>  
>>> wrote:
>>>> 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: 
>>>> http://people.freebsd.org/~nwhitehorn/bsdinstall-i386-20110114.iso.bz2
>>>> SVN repository: svn://svn.freebsd.org/base/user/nwhitehorn/bsdinstall
>>>> Wiki page: http://wiki.freebsd.org/BSDInstall
>>>>
>>>> Goals
>>>> -----
>>>> 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
>>>>   images
>>>> - Works on PowerPC
>>>> - Streamlined system installation
>>>> - More flexible scripting
>>>> - Easily tweakable
>>>> - All install CDs are live CDs
>>>>
>>>> Architecture
>>>> ------------
>>>> 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.
>>>>
>>>> Status
>>>> ------
>>>> 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.
>>> I dont follow the freebsd-sysinstall and freebsd-arc list so sorry if
>>> this has already been discussed. From what I have seen pc-sysinstall
>>> already does all these things, and can install freebsd. Therefore why
>>> are we reinventing the wheel?
>>>
>>> I don't mean this as any disrespect to the work you have done.
>> Hi Krad,
>>      I asked this two weeks ago and in summary:
>>
>> - pc-sysinstall is x86-centric and porting to powerpc is non-trivial,
>> and sysinstall is incomplete on powerpc. Nate sought to get a working
>> powerpc port with minimal effort.
>>
>>      Please read other replies in the archives on freebsd-arch /
>> freebsd-sysinstall to get more info as to why things have been done
>> the way they have been done.
>
> Here's the summary of why this doesn't use pc-sysinstall. 
> PC-sysinstall is the backend of the PC-BSD installer, and was imported 
> into FreeBSD in June 2010 with the goal of replacing sysinstall. It is 
> much more full-featured that either bsdinstall or sysinstall, 
> providing support for encrypted disks, ZFS, and mirroring. These are 
> all good things. However, 9.0 is coming up quite soon, and 
> pc-sysinstall still does not have a usable front-end (the code in the 
> tree is just a script interpreter) nor support for non-x86 platforms. 
> Adding these things appeared to be quite difficult and, in the second 
> case, to require major rearchitecting of the installer backend. Since 
> the original goal that Garrett alluded to was to provide an installer 
> on PowerPC, this was obviously a non-starter.

so we should screw up our installer story so people with ancient Apple 
hardware can install FreeBSD on their old G4's?  That doesn't sound very 
wise to me.

> What BSDinstall is is a stopgap, designed to provide a subset of 
> pc-sysinstall's features but to be available quickly, in time for 9.0, 
> and to have all of the features it does provide actually hooked up and 
> usable. At the same time, I have architectured bsdinstall in such a 
> way that (a) I would be happy enough to be stuck with it permanently 
> (i.e. it is not a quick hack and was designed to be easily 
> maintainable and extendable) and (b) it could be later adapted into 
> the missing front-end for pc-sysinstall without an enormous amount of 
> trouble. Many of the issues we need to face now to integrate 
> bsdinstall (making bootable live CDs or the integration of a newer 
> libdialog, for instance) are common to any later effort to import a 
> pc-sysinstall front-end. Having these things in use and in the tree 
> will only help pc-sysinstall whenever it is finished.

Do we really need another half-assed solution in the tree?  that's how 
we got into the pickle we're in with sysinstall in the first place.

As such, we're moving forward with our plans to import txt-sysinstall.  
We'll be doing it today or tomorrow.  We had wanted to work with 
bsdinstaller, but so far all we've received is lip service and then this 
push to put bsdinstaller into the tree and make it the default in an 
insanely short period of time.  That's crazy.  Since talks have broken 
down, we're also going to push txt-sysinstall into the tree so it can 
mature and get more exposure.

Warner



More information about the freebsd-arch mailing list