BSDInstall ISO images

Nathan Whitehorn nwhitehorn at freebsd.org
Sun Jan 23 19:23:48 UTC 2011


On 01/23/11 12:59, Garrett Cooper wrote:
> On Sat, Jan 8, 2011 at 2:54 PM, Nathan Whitehorn<nwhitehorn at freebsd.org>  wrote:
>> I've spent some time integrating bsdinstall into startup of install CDs,
>> mostly related to building useful live-CD-based installers. An i386 image
>> can be found here (other architectures may follow, as my very slow DSL line
>> permits):
>>
>> http://people.freebsd.org/~nwhitehorn/bsdinstall-i386-20110108.iso.bz2
>>
>> The source for this can be found at:
>>
>> svn://svn.freebsd.org/base/user/nwhitehorn/bsdinstall
>>
>> The bits related to live CD usage are the testsystem.sh and rc.local files.
>> Instead of running sysinstall as an init replacement, I have written a small
>> rc.local script that gives the user the option to either start the
>> installer, open a single-user-mode style shell, or to continue to boot to a
>> multi-user live CD. Also, instead of the md root used by sysinstall, this
>> just boots from the CD directly. This prevents the need for sysinstall's
>> media selection, since the distribution files are in the mounted root file
>> system.
>>
>> I would appreciate any comments or test results.
> Not sure if it matters anymore, but here are my comments:

It does very much matter. And all the CD environment stuff and the 
bsdinstall UI (which most of your comments are about) will be extremely 
similar to a merged pc-sysinstall installer. There is also a chance we 
will end up with bsdinstall basically as-is as the 9.0 installer if we 
can't get the merge done in time.

> NOTE: this was using
> http://people.freebsd.org/~nwhitehorn/bsdinstall-i386-20110118.iso.bz2
> .
>
> 1. The i386 image (apparently) isn't compiled with ATACAM, etc support
> so opening /dev/cd0 always fails with ENODEV.
Yes. But it will fall back to acd0. This is for people with SCSI or USB 
CD drives. The real problem is if the CD ends up in [a]cd1, so cdboot 
needs a more robust mechanism here.
> 2. There's a lot of noise at bootup related to missing files. Putting
> in a dummy /etc/fstab, adding hostid_enable="NO", and setting
> hostname="" to a dummy value in rc.conf will help weed out some noise.

That's a good point. I've followed your suggestions.

> 3. The initial dialog beeped when I first pressed the right key on my
> keyboard. Maybe hw.syscons.bell=0 would help?
Interesting.
> 4. Splitting up the Keyboard Menu into regions and providing human
> readable names would help.

The keyboard menu just calls kbdmap, which is where the GUI comes from. 
The suggestion is good, but the change should be made there.

> Partition Editor (I used Manual for the first try):
> 1. It would be helpful if the cursor was at the end of the textbox so
> that I didn't have to position the cursor at the end or press the
> delete key.
I'll see if there's a way to change this.
> 2. K is a bogus suffix for kilo-; k is correct.
This comes from humanize_number() in libutil, and would need to be 
changed there.
> 3. Having a mountpoint for a bsdlabel partition doesn't make sense and
> is confusing.
That is true. Since the same form with the mountpoint also has the 
partition type, I could not find a clean way to make the last line go 
away. The same issue applies to swap. Ideas for this part of the UI 
would be very much appreciated.
> 4. Backing out of the Partition Manager and going back to the previous
> dialogs is impossible.

Which previous dialogs do you mean? Do you want to back out of the 
partition manager to use the auto paritioner? If you press "Abort", you 
can restart the installation, which isn't so far off from that. There 
wasn't a whole lot of room at the bottom of the partitioner screen for a 
sysinstall-like "Auto Defaults" button.

> 5. Noting that the values (freebsd-ufs, etc) map back to gpart driven
> values would be helpful.

There's a help line at the bottom of the screen with this information. 
Do you have a suggestion for making it more intuitive? Dialog doesn't 
support drop-down menus, which is what I would ordinarily use on this field.

> I exited the install and tried again on the command line. Couldn't
> conjure up the right gpart commands (manpage sucks for what I was
> looking for -- creating a new partition), I went back into the
> partedit command that was in /usr/libexec/ and entered in data
> manually . Committed my changes which threw me back into the prompt
> and then hit ^d to get back into the installer proper. The first run
> around failed for some odd reason (claimed it couldn't create
> boot/kernel.gz, or whatever, so there might be some error checking
> missing with mount, mkdir, etc).

Interesting. Let me know if you find out how this happened.

> Chose restart, walked through the process again and chose manual, made
> sure the slice was properly configured for / and swap was setup, then
> continued. This time the install went through properly.
>
> Progress bar:
> I think you're on the right track by simplifying the install, but it
> could be polished to say:
>
> kernel
> world
> distribution (in what context is distribution? Is it configuration
> files, etc from `make distribution' ?)

That is exactly what "distribution" is. What goes in which files, and 
how many parts there are, is an interesting question. I think sysinstall 
splits up the base system a little too much. You suggest dropping the 
".tgz" suffixes?

> Configuring Network (etc)
>
> Seems like this could have been done earlier on to shrink the CD size
> down a bit.

Why would that shrink the CD size? It is done earlier if you need it to 
download the distfiles. I had placed it towards the end because it's 
part of a series of optional system configuration steps.

> Add Users (YAY! something that finally works)
>
> - Prompts seem ok.
> - Login class - getting too specific IMO; this should be done after
> the first boot.
> - Home directory - /usr/home was the traditional home directory root
> for BSD I thought.
> - Home directory permissions - as an aside, what are the default?
> - Use password-based authentication - what other options are there
> other than not having a password or using a non-master.passwd backend
> like LDAP, etc?
> - Lock out account after creation - I would remove this; again, it
> seems like something that an admin can do after first boot.

As you probably noticed, all this does (like the root password screen) 
is to run adduser in a chroot in the new system, so this is just the set 
of questions adduser asks. This could probably be prettified (and maybe 
simplified) somewhat.

> In general:
>
> Some of the dialogs are a bit small (like the DHCP status dialog).
> Enlarging them might help.

All the dialogs just use the automatic sizing option in dialog. I think 
that its autosizing algorithm may be a little wonky, but I haven't 
looked too much at changing it.

> Hopefully this feedback is helpful.

It is! Please keep sending it.
-Nathan


More information about the freebsd-arch mailing list