auto probe for hardware with fallback on a manual configuration if auto probe fails

a standard GUI front end needs to be implemented something along the lines of mac OS X installer.


 The UI should probably assume
 nothing beyond VGA text mode
 (as in the current installer), since
 X will only work if the hardware
 detection was successful.

Every question asked by the installer should have a best-guess answer and some way of selecting that answer. For example, take the Linux kernel configuation (e.g. make menuconfig): the help text will tell you things like "it's generally safe to answer Y here", or "unless you know what ?ICMPv9 is, select N here", but these hints are not in an obvious place, and there is no option of telling it "do the obvious thing" -- you either have to say Y (or M) or N, but you can't hit O and have it select the option that's most likely the right one. Figuring out which option that is will involve some amount of second guessing. Specifically, the installer could ask "what country are you in" and based on that suggest both a time zone (or prompt for more details) and a keyboard layout. The list of countries could be ordered depending on an answer to a prior question about the user's preferred language, e.g., if she selected French, then put France, Canada, Switzerland, Belgium, Senegal, etc. on top of the list of countries.

The installation process must be scriptable. A sysadmin might want to deploy the same installation to all newly installed desktops, and she should be able to customize one machine, save her customization options to a file, remove anything that she knows is going to be different on some desktops (e.g. all her machines have a qwerty keyboard, but they use different sound cards), and then be able to feed subsequent installations from a common script.

Ideally, I'd like to have all system-wide defaults that are not tied to hardware recorded in one central place on the machine. I'd like to be able to take those configurations and use them during the installation of a new machine (with possibly different hardware), NFS mount the user partitions on the new machine, without (m)any user-visible changes. This way, it doesn't matter if the box sitting under my desk changes, as long as the system-wide defaults (and the per-user defaults, but those are on remote file systems) are roughly the same.