InstallerForWindows

Revision 24 as of 2007-05-14 16:02:56

Clear message

Note: spec revamped for Feisty. Related specs exist in the wiki and LP for specific technical solutions. Please keep this spec neutral until a technical approach has been selected.

Summary

A simple install procedure for Ubuntu initiated in Windows.

Rationale

Windows users are often more comfortable with downloading a small ubuntu.setup.exe file than downloading and burning an ISO. Some laptops do not have a CD drive and many systems are configured to boot from the HD first.

Use Cases

Scope

Select the most suitable technical solution.

Design

TODO: Select from one of several possible technical solutions.

Windows installers for Ubuntu

Several Windows-based installers for Linux (including Ubuntu) have appeared recently, each using different methods. The common goal of these is to provide a simple path to Ubuntu that starts with downloading a small executable installer, and removes the need to use a CD. The three main approaches are:

  1. Repartition and install

    • downloads packages or ISO
    • an entry in the Windows bootloader is created
    • reboot to start an installer (text-based, graphical or Live CD based) asking the usual questions
    • The disk is resized or free space is used (ie. normal install)
    • GRUB is installed
    • Boot again to start Ubuntu
    • Next time you start Windows the entry from the Windows bootloader
    • Implementation: [http://goodbye-microsoft.com/ win32-loader], [http://instlux.sourceforge.net/ instlux]

  2. Install on a loop mounted disk image

    • downloads packages or ISO
    • Gathers information from Windows and simply asks for a user name and password
    • Adds Ubuntu entry to the Windows bootloader
    • Reboots to start an install process (non-interactive)
    • Reboot again to start Ubuntu (or Windows)
    • Painless removal of Ubuntu of desired
    • Implementations: [http://www.cutlersoftware.com/ubuntusetup/wubi/en-US/index.html Wubi]

  3. Install a virtual machine

    • Installer contains a copy of Virtualbox and downloads a pre-made virtual machine of Ubuntu
    • Simple NSIS install and launch VM directly without reboot
    • Simple unistall
    • Has to share resources so performance will be reduced and hardware support may be limited
    • Implementations: [http://www.virtualbox.org/ Virtualbox], [http://www.h7.dion.ne.jp/~qemu-win/ QEMU]

An overview of existing implementations follows.

win32-loader

Summary: Download a small executable which downloads the netboot files, modifies the NT bootloader and reboots.

Links: http://goodbye-microsoft.com/

Advantages

  • Fast download in first installer stage (netboot stuff only)
  • A real ubuntu install on a real partition

Disadvantages

  • Mistakenly grabbed the 64-bit version on a 32-bit virtual system and failed to boot (admittedly an odd test case)
  • Leaves the bootloader behind
  • No accessibility support in alternate installer
  • Does not work with Vista

instlux

Summary: same principle as win32-loader, but a slightly cleaner implementation usability-wise.

Advantages

  • Fast download in first installer stage (netboot versions)
  • A real ubuntu install on a real partition
  • Cleans up the NT bootloader after install

Disadvantages

  • Text-based install (could use graphical d-i)
  • No accessibility support in alternate installer
  • Does not work with Vista
  • Does not work on Win9x
  • Only currently supports Ubuntu 6.06 and older

Wubi

Summary: An Ubuntu community project the Windows Ubuntu Installer uses method 2, a loop mounted disk. Download a simple .exe file which launches an NSIS installer. It asks for your user name and password and reboots to install. Ubuntu is actually installed on a loop-mounted drive stored as an image file within the Windows file system. Previously known as 'install.exe' in the wiki. The back-end relies upon debian-installer with preseed. The preseed file is generated by the Windows front-end. The only modifications to a stock d-i mechanism are those required to support loop-installation mode, see [http://launchpad.net/lupin lupin] for technical details. Current development is taking place within the [http://launchpad.net/lupin lupin] (back-end) and [http://launchpad.net/wubi wubi] (front-end) projects hosted on Launchpad.

Links: [http://www.cutlersoftware.com/ubuntusetup website], [http://ubuntuforums.org/forumdisplay.php?f=234 forum], [https://wiki.ubuntu.com/install.exe wiki], [http://launchpad.net/lupin lupin], [http://launchpad.net/wubi wubi]

http://www.cutlersoftware.com/ubuntusetup/wubi/en-US/screenshots/wubi3.jpg

Advantages

  • No disk resizing or partitioning required
  • No CD burning required
  • Easy to remove Ubuntu from the system, restoring the system to its previous state
  • The bootloader is not replaced, an additional boot option is addded to it
  • Ubuntu is installed/uninstalled as any other application, which is comfortable for the user
  • Runs at native speeds using all system resources (provided the loop mounting is efficient)
  • Installed system behaves as an official Ubuntu dual-boot installation (the only modifications are required to boot from a loopfile, reboot cleanly and upgrade the kernel, but a regular user would not spot the difference).
  • Virtual disk image can potentially be migrated to a real partition in a second moment, so that the user will have time to appreciate Ubuntu and "accumulate goodwill" before facing partitioning. Note: a migration tool has not yet been developed.
  • Simplyfied installer: asks very few questions during installation as it gathers required information from a working OS. The installer supports migration-assistant and download resume. The same installer works with any Ubuntu (and Debian) flavours that provide an alternate ISO.
  • It works in offline mode, by placing the installer and the ISO file within the same folder.
  • Separation of front-end and back-end, allows to port the installer to different platforms by only changing the front-end.
  • Being based on d-i, all features supported by d-i are available, therefore installation to a real partition can also be implemented as an option.
  • The back-end consists mostly of a set of patches to be applied to the stock initramfs and the alternate ISO (the latter are applied at runtime) in order to add loop-installation support, therefore its functionalities could be added to the official initrd/installer. A blueprint (https://blueprints.launchpad.net/ubuntu/+spec/lupin) has been proposed to merge such functionalities within Ubuntu.

Comparison to other methods

  • Like Netboot/Virtualmachines installations there is no need to burn an ISO
  • Unlike a LiveCD, Wubi offers an install-then-try approach as opposed to a try-then-install approach.
  • Unlike a LiveCD/Virtualmachines there is no distinction between "demo" mode and "real" mode.
  • Unlike Virtualmachines there is no need for the host OS to be running and the user can concentrate on the new OS.
  • Unlike Virtualmachines there is full hardware access and no performance degradation (other than disk I/O)
  • Unlike Netboot methods, installation files (sourced from the alternate ISO) are pre-downloaded by the front-end within Windows, avoiding potential networking issues which might affect netboot methods that rely on Linux networking
  • Unlike Netboot/Traditional installation methods, there is no repartitioning and bootloader replacement.
  • Unlike Netboot/Traditional installation methods, the installation can be removed cleanly, restoring the system to its previous state.

Disadvantages

  • Does not yet work with Vista
  • Uses alternate disc to install from, that said, the ISO is used only in the background as a source of packages, the only difference from netboot methods is that by pre-downloading the ISO, all packages are available in one go without having to rely on Linux networking
  • Fixed size disc image: virtual disk size is selectable from the installer, and an extra virtual disk can be added, but it would be nice to have a dynamic image or manual resize option
  • Requires write access to the host file system, which in the case of windows requires installation of ntfs-3g
  • Windows fragmentation can impact disk I/O performance of Ubuntu.
  • It uses grldr (grub for windows), which is less reliable than a standard grub bootloader. For instance, grldr fails when the initrd/kernel is fragmented.
  • On FAT filesystems the file size limit of 4GB applies to the virtual disks.

Work oustanding

  • Needs a dash of usplash in a few places
  • Needs a graphical installer front-end to d-i, even though once d-i gtk frontend is included in the alternate ISO that can be used for progress bars
  • Better post-install management features. A control panel running in windows that lets you resize discs, make backups, select between different installed systems.

Outsanding questions

  • How efficient is the loop mounted drive?
  • How easy would it be to move such an install out from under windows to a separate partition (perhaps an improved version of the migration tool could be used?)

Virtual Box

Summary: The GPL version of Virtualbox can be packaged and distributed on the net and on 3rd party CDs.

Link: http://www.virtualbox.org/

Advantages

  • Simple install with no need to reboot
  • Simple unistall
  • Dynamic disk images that lets users install and explore more software
  • Runs in parallel with the Windows session, allowing you to switch back and forth
  • Several distro flavours can be installed simultaneously
  • Runs under Vista

Disadvantages

  • Poor peformance
  • Driver problems, no support for Beryl/Compiz
  • GPL version lacks some features like USB support
  • Host OS is needed, which makes the user less focused on the new OS

Implementation

Depends on the design choice.

Outstanding Issues

Pick a design.

BoF agenda and discussion

Discuss at UDS Seville.


CategorySpec

Comments