Installation Program for Windows

michael installer at dslextreme.com
Tue Jul 12 18:45:41 CDT 2005


For a while, I've thought that if Windows users could install Linux as 
easily as they can install any Windows program, they might be more 
likely to give Linux a try. When found out that WINGRUB allows a 
computer to boot linux from a Windows partition, I realized that it 
could be fairly simple to create such an installation program using 
existing tools. I've created a wiki page at 
https://wiki.ubuntu.com/InstallUbuntuWithoutRemoveableMedia describing 
how to do the process manually. Here's a rough sketch of how such an 
installer might work.

intro explanation
automatic (or guided) installation?
determine (confirm) language
determine time, date, timezone, keyboard layout
guess (confirm) good amount of space for linux partition
create installation script based on previous information
prompt to close programs, eject media, click restart
determine whether windows=NT or =9x
if NT
append WINGRUB to boot.ini, set as default boot option
copy kernel, initrd, linux.iso, boot.lst to \boot
if 9x
something similar with GRUB4DOS , never done it myself
reboot
user selects or defaults to WINGRUB/GRUB4DOS
linux boots and autodetects hardware (logged)
script removes WINGRUB/GRUB4DOS from boot.ini (if installation fails, 
computer will not keep booting into linux)
installation program runs using install script, auto-detected hardware 
settings, installs GRUB to MBR (all logged)
reboot
next boot (windows or linux)
check installation log
ask to send results to database
delete \boot
first linux boot
set up user

Let me explain the installation process in plain English. In the first 
step, I imagine that the installer will give the user the choice between 
accepting all of the installer's guesses or having a chance to modify 
those choices. The installer would then examine the registry to 
determine the user's language, the system time/date/timezone, and the 
keyboard layout. It would then determine the amount of free space on the 
hard drive and, based on the amount of space needed for an installation 
and the amount of free space remaining, make a guess as to the proper 
amount of space to partition away for linux. Based on all this 
information, the installer would then create an installation sript for 
anaconda or the debian-installer or whatever the distro uses. It would 
place this script, the kernel, initrd, and installation program, the 
distro's base installation packages, and either WINGRUB or GRUB4DOS 
(depending on what version of Windows the user is running) in the \boot 
directory, and modify the user's startup files to boot into linux. On 
reboot, the computer would start up into linux and run the installation 
program using the installation script. In case something goes wrong and 
the installation cannot finish, the installer should set the computer to 
boot into Windows on the next boot as soon as possible. The installer 
would then partition the disk, install the base packages, install GRUB 
to the master boot record, and reboot. At startup, GRUB would greet the 
user and ask whether to boot into Windows or linux. Regardless of which 
OS the user boots, a program would run that would check the installation 
log to see if everything went well with the installation. With the 
user's permission, it would send a copy of the log to a database that 
would allow the distro to better assess it's installer. The program 
would then delete the installation program and the supporting files 
(like the kernel, initrd, and packages that were still on the windows 
partition). On the first linux boot, the user would be prompted to 
create a user. At this point, the user would have a workable linux 
distribution that would dual-boot with windows, all without having to so 
much as burn a CD.

Unfortunately, although I am computer literate, I have only the most 
basic programming skills and do not have the knowledge necessary to 
create this system. Obviously a lot of the work is already done: WINGRUB 
and GRUB4DOS can facilitate a diskless installation, the Nullsoft 
Scriptable Install System could serve as the base for the Windows part 
of the installer, and debian-installer linux part of the installer 
(perhaps the work being done for an OEM installer will help) . The only 
thing left to do is to put these pieces together. If anybody actually 
reads this far, what do you think? Is this even a good idea? Would you 
be willing to work on this? Do you have any suggestions on other places 
to post this message (so far, I've only posted it to the Ubuntu users 
list and Breezy Forum)? Is there an install team for Ubuntu that I could 
propose this idea to? Thank you for taking the time to read and consider 
this idea.
Best, Michael



More information about the ubuntu-devel mailing list