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