InstallerForWindows
Launchpad Entry: installer-for-windows
Created: 2007-04-26
Contributors: HenrikOmma
Packages affected:
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:
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]
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]
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.
Comments
[http://www.colinux.org/ Cooperative Linux] could be used instead of virtualbox for better performance. - JohnMeuser