Suggestion: Installation Program for Windows

Michael akikkeg02 at
Thu Jun 30 16:58:43 UTC 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 I came across I realized that it could be fairly simple to create such an installation program using existing tools.  Here's a rough sketch of how such an installer might work, taking advantage of WINGRUB or GRUB4DOS ( to allow a removeable media-less installation.  (WINGRUB and GRUB4DOS allow a computer to boot into linux on a FAT or NTFS partion.)  This system need not be wedded to any particular distribution, and different distributions will surely have varying ideas on how best to implement it.

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


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)


next boot (windows or linux)

    check installation log

    ask to send results to database

    delete \boot

first linux boot

    set up user

    run program to copy over all windows documents, pictures, audio      files, maybe even some settings

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.  In an ideal world, a linux program would offer to copy over the user's files (and possibly some settings) from the windows partition.

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 and anaconda could serve as the linux part of the installer.  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 the Fedora Core desktop list)?  Thank you for taking the time to read and consider this idea.

Best, Michael

More information about the ubuntu-users mailing list