InstallerForWindows

Differences between revisions 21 and 47 (spanning 26 versions)
Revision 21 as of 2007-05-01 11:22:12
Size: 10473
Editor: netmail
Comment:
Revision 47 as of 2008-08-06 16:32:01
Size: 15962
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
 '''Launchpad Entry''': UbuntuSpec:installer-for-windows
 * '''Created''': 2007-04-26
 * '''Contributors''': HenrikOmma
 * '''Packages affected''':
##(see the SpecSpec for an explanation)
Line 6: Line 3:
'''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. ''This specification is marked as Approved in Launchpad. Please contact the Assignee or another knowledgeable person before making changes.''

 * '''Launchpad Entry''': UbuntuSpec:installer-for-windows
 * '''Packages affected''': [[Ubiquity]], [[Casper]], [[Winfoss]], [[Wubi]]
Line 10: Line 10:
A simple install procedure for Ubuntu initiated in Windows. A loop-mounted Ubuntu install initiated in Windows. The installer asks fewer questions and does not partition or format drives. The installer behaves like a normal application installer, allowing users to uninstall Ubuntu via the control panel, yet provides a dual boot setup.

== Release Note ==

Installing Ubuntu is now even easier for Windows users! The small installer program will copy a fully-functional Ubuntu system into a directory on your Windows drive (this includes a USB keydrive), which you can then boot in a "dual-boot" configuration. This is a great way to try out Ubuntu over a period of time, with no re-partitioning or formatting required. For long-term use, we recommend migrating to a native disk install.

Please note that suspend functionality may be disabled when using this Ubuntu configuration.
Line 14: Line 20:
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/ QUEMU]

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
Windows users are often more comfortable downloading and running a small ubuntu-setup.exe file than downloading and burning an ISO. This also avoids the requirement of booting from the CD, which can be troublesome as some laptops do not have a CD drive and many systems are configured to boot from the hard disk first.
Line 107: Line 25:
 * No CD burning required  * No CD burning required, works on laptops without CD drives
Line 110: Line 28:
 * 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.
 * Ubuntu is installed/uninstalled as any other Windows application, which is comfortable for the user
 * Runs at near-native speeds using all system resources (provided the loop mounting is efficient)
 * Uses all available hardware as a normal install would (in like a virtualbox install)
 * It can install Ubuntu in a USB keydrive (and optionally add a bootloader in the keydrive)

== Use Cases ==

 * Sindre wants to give Linux a try but uses his only computer for work and does not want to repartition his drive, worried that something will break. The Live CD he received guides him through installing Ubuntu in a file on his widows system, which he then boots into.
 * Hellena writes tech reviews for on-line journals. She has tested various Linux distros in the past using VMware, but this does not quite yield a native experience. On the Ubuntu website she finds a small download that runs in Windows and produces a loop mounted install. After testing and reviewing she can delete it easily.

== Design ==

=== Bundled LiveCD Version ===

A small executable that can be included on the CD which does the following:

 * If an Ubuntu CD is not present in a CD drive, locates the ISO on your system or downloads it via [[http://hampus.vox.nu/metadl/|metadl]] (which can be taught to perform mirror selection)
 * Asks for a user name and password
 * Gathers information from Windows for the remaining install settings
 * Creates a 5GB image file in a user-defined location, {{{C:\ubuntu}}} by default
 * Creates a pre-seed file for the install
 * Adds Ubuntu entry to the Windows bootloader
 * Reboots to start an install process (non-interactive)
  * if a CD is present in a drive, uses that; otherwise loop-mounts an ISO image from the Windows drive
  * loop-mounts disk image from the Windows drive
 * Uses a pre-seed enabled version of ubiquity
 * Reboot again to start Ubuntu (or Windows)
 * Allows simple removal of Ubuntu if desired, via a Windows-based uninstaller in add/remove programs
 * Installer can be launched from the WinFOSS browser

=== Standalone Version ===

Prominent download location on the Ubuntu website providing a standalone version of Wubi as an installation option for Windows users. Some of the advantages of this approach:
Line 120: Line 62:
==== Comparison to other methods ====  * No CD burning
 * The installer itself is less than 1MB, it takes more bandwidth to send a picture of Ubuntu to a friend... => Easy to "pass it around"
 * Built-in advanced download manager with automatic mirror selection, segmented downloads (not yet available), (partial) checksums, and download resume => No nee to ask about a mirror.
 * Automatic architecture detection => No need to ask about the architecture.
 * Allows to choose any member of the Ubuntu family with a single installer. => More exposure for other flavors
Line 122: Line 68:
 * 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.
=== CD Boot Version ===
Line 131: Line 70:
==== 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 will be 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
 * Asks for confirmation then allows to boot from a physical CD even if the BIOS tries to boot from hard disk, thus allowing users to boot the CD without having to edit their BIOS. Already in Gutsy, a confirmation dialog will be added for Hardy.
Line 176: Line 74:
Depends on the design choice.  * The installer will be based on the Wubi installer
 * The installer will ship with early Hardy builds to ensure extensive testing
 * Wubi is written in NSIS with various plug-ins (metadl, hashing, isoburner, isoextractor, image creation...)
 * Gradually merge upstream the patches now in lupin-support and wubi/override_files
 * While there will be only a single installer, it will detect which distro is in use from metadata on the detected CD or ISO image, and select artwork and kernel boot parameters (preseed files, etc.) appropriately. Hence different versions for Ubuntu, Edubuntu, Kubuntu and Xubuntu, will be provided where only the artwork and ISO differ.
  
=== Outstanding Issues ===
Line 178: Line 82:
== Outstanding Issues ==  * Unmounting of userspace filesystems should be improved upstream (sendsigs)
 * Unmounting of host filesystems should be improved upstream (umountfs)
 * Fix update-grub/grub-installer to take into account loopinstallations
 * Fsck in ntfs-3g (ntfs-3g, Szaka)
 * Image generation: support fallocate in ntfs-3g and vfat to generate preallocated disk images quickly (or support windows-side diskimage creation) (ntfs-3g , Szaka + kernel devs for VFAT)
 * Improve on syctl hacks, check whether there is a better way to improve journal robustness in nested filesystems
  * check power manager issues with sysctl seetings
  * Add alt+sysrq+rsub shortcut to Ubuntu and document for Wubi
 * Allow suspend-to-ram with fuse filesystems (Matthew Garrett may look into this)
 * Proper external override hooks for installation ISO are very useful, they hopefully will not be needed for wubi-8.04, but they should be improved and generalized (ubuntu-installer), documentation on those should be improved
 * Official isolist/metalink support ([WWW] https://bugs.launchpad.net/ubuntu-cdimage/+bug/140458)
 * Better detection of existing settings (active screen readers, other accessibility tools, sys/inf files for screen resolution and other hardware settings, propietary fonts?, codecs? wireless drivers?).
 * Make Ubiquity aware of existing loop-installations
 * Improved downloader with segmented downloads
 * Proper build scripts.
Line 180: Line 98:
Pick a design. === What installation types should be supported? ===
Line 182: Line 100:
== BoF agenda and discussion == Wubi can support different type of installations: loopinstallations, r/o ISO booting, physiscal CD booting, netboot (debian-style), hdmedia-style (install from predownloaded ISO saved on hard disk, requires online resizing). The following methods will be provided:
Line 184: Line 102:
Discuss at UDS Seville.  * Loopinstallations (4+ GB)
 * Boot CD. If a physical CD is detected the option to simply boot it will be offered (cannot extract ISO because of online partitioning issues)
 * Boot from ISO on HD in r/o mode (provided only if free space is less than 4GB, so that users can still experience Ubuntu)
 * Burn & Boot: Built-in CD Burner, we are evaluating the possibility of bundling an ISO burner. Cdrtools would be a good match but the license is an issue. A mingw build of cdrkit might be a good solution (if possible).
Line 186: Line 107:
=== Interface changes ===

 * Generic flag icon
 * Customized artwork (artwork team)
 * Installation size -> Installation type? Or get rid of it.
 * Simplification, 1-click: remove language selector, postpone username/password selector to first reboot?

=== Optional features ===

 * Online resizing to support hd-media type installations (unlikely, but there is always hope!)
 * Netboot support (via alternate initrd, alternative to hdmedia-like installations). Mixing ubiquity interface and d-i interface might be confusing.
 * Allow suspend-to-disk with swap on file (kernel devs, unlikely for hardy)
 * Bittorrent client
 * Expandable images: using hybrid images zeroed for the first 4-5GB (via fallocate) and sparse for n GB more. It depends on how well new version of ntfs-3g can cope with that, alternatively can use LVM with several files of 2GB.
 * Better post-install management features. A control panel running in windows that lets you resize disks, make backups, select between different installed systems.
 * See Also the [[CommunityGutsyIdeas/Installation]] for more windows-friendly installation methods
 * Tighten the graphical design with a nice NSIS skin and suitable ubuntu graphics (Ngompa: look at ExperienceUI)

== Test/Demo Plan ==

 * Ship Wubi with early builds of Hardy
 * Widespread community testing
 * Test the install procedure on a range of hardware and Windows versions

== Comments ==

=== With the emergence of new technologies that provide the same advantages, is there even a need anymore for officially supporting loopmounted-installs? ===
With Windows Vista's new dynamic partitions and ability to safely resize its own partitions while running, the partitioning phase can be done in the initial installation phase itself via the Windows Vista Drive Management API, while still running in Windows.
 * The dangers and inconveniences of drive partitioning, which the loopmounted-install approach was meant to alleviate, are thus eliminated. Although this will only be compatible with Windows Vista and newer, Vista market share is rapidly rising and is expected to be the dominant OS by the release of Ubuntu 8.04 LTS, or soon afterwards. Users of older OSes can always use the traditional CD install or a (third-party) netboot-based solution such as [[http://lubi.sourceforge.net/unetbootin.html|UNetbootin]].

The CD iso can be placed on the existing NTFS drive, the installer can be run from the iso, and the installation can be automatically targeted towards the free space that was created while running Windows by shrinking the existing NTFS partition using the Windows Drive Management API, to be used as the root partition for Ubuntu.
 * The other advantage, the no-CD install and automated-install, can thus also be retained while avoiding the problems of a loopmounted-install. The clean-uninstallation advantage will also be retained, as the Windows Vista bootloader recovery utilities can be used to re-install the Vista bootloader while running the uninstaller (thus removing GRUB) and the Drive Management API can be used to delete the Ubuntu ext3 partition and expand the Windows NTFS partition to claim the unused space, thus allowing for a clean uninstallation.

Is the 2-step process for installation (first to loopmounted partition, then to dedicated partition) too complicated? Would it be better to simply go for a dedicated-partition install the first way around, using an approach like to the one above, thus eliminating the need for LVPM?

Are the trivial (if any) advantages provided by a loopmounted installation over a dedicated-partition install, which are not provided by the approach above, worth the extra work of officially maintaining and supporting both the modified loopmounted-booting patches and the LVPM tool?

The above assumes a wide market penetration of Vista, and with Vista struggling to reach 5%, I doubt it will be a viable option for the coming years. It is also arguable that using the Windows partitioning tool as opposed to the Linux one will make users any more comfortable with the idea of changing their partitions. -- Ago
 * [[http://www.xbitlabs.com/news/other/display/20071002235454.html|Estimates]] put Vista market penetration as of October 2007 at over 7%; most other neutral sources generally range between 6-9%. Given that basically all new PCs come pre-installed with Vista, this will only increase drastically over time; it's not "struggling". As for the changing of partitions via Windows, since it's handled by official drive management tools not reverse-engineered utilities, there's essentially no chance of data loss; if data corruption or other partition errors are detected, Vista will simply refuse to resize the drive. The rest can be done automatically and transparently to the user (due to the flexibility of the Vista drive-management APIs, a custom, simpler interface may be written and used instead of the official Vista Drive Management GUI), much like how Ubuntu's partitioner currently works; the user simply selects the percent of space to split between Ubuntu and Windows, and the rest of the partitioning is all done automatically; that's just as easy, safe, and transparent as Wubi's approach is currently. Most users' fears of partitioning result not from the interface, but from the risk of data loss; using Vista's dynamic partition features eliminates that risk.
 * Also note that even if the adoption of Windows Vista is slower than expected, and it will only be on the majority of PCs within 1.5 or 2 years, rather than the predicted 12-14 months, this approach is still better in the long term. Work, support, and resources should not go into a temporary approach that will be made obsolete within 2 years, especially since 8.04 is an LTS release that will have to be supported for 3 years, and thus, stability, security and resilience, which a loopmounted install lacks compared to a dedicated-partition install, should be the priorities.

=== Security Concerns ===

Any windows based installer potentially subjects the Ubuntu install to corruption by malware running in MS Windows, during the installation process. Hypotheticly, Microsoft could even write an ubuntu virus into MS Windows, that causes the user to have a "bad ubuntu experience" and give up on it because they think it's unstable or "not ready for the desktop".
 * This situation is extremely unlikely (MS would rather avoid the potential uproar from consumer-rights groups if such code were ever embedded into Windows, therefore they would never do it), so that portion of speculation is unwarranted. However, it is indeed true that a loopmounted-install is more vulnerable, at least to a certain degree, to being damaged by malware than a standard, dedicated-partition install is, as any modern antivirus or security application would raise alarms and block the action if malware attempted delete the Ubuntu ext3 partition, but the deletion of the loopmounted disk image files in C:\ubuntu, thus wiping out the Wubi-generated install, will simply be looked upon as a simple file deletion, and therefore may not be detected or blocked by security applications due to the lower level of scrutiny applied to file deletion than partition or MBR modification.
 * However, this increased vulnerability to malware is only applicable to loopmounted installs and not "any windows based installer" in general, as with the approach proposed in the "With the emergence of new technologies that provide the same advantages, is there even a need anymore for officially supporting loopmounted-installs?" section, as well as other direct-to-partition install approaches, Windows is only needed for resizing its own partitions and launching the main installer, and the bootloader modifications are undone the next reboot, therefore a dedicated-partition install approach initiated from Windows is no more vulnerable to malware than a standard Ubuntu install would be.

This specification is marked as Approved in Launchpad. Please contact the Assignee or another knowledgeable person before making changes.

Summary

A loop-mounted Ubuntu install initiated in Windows. The installer asks fewer questions and does not partition or format drives. The installer behaves like a normal application installer, allowing users to uninstall Ubuntu via the control panel, yet provides a dual boot setup.

Release Note

Installing Ubuntu is now even easier for Windows users! The small installer program will copy a fully-functional Ubuntu system into a directory on your Windows drive (this includes a USB keydrive), which you can then boot in a "dual-boot" configuration. This is a great way to try out Ubuntu over a period of time, with no re-partitioning or formatting required. For long-term use, we recommend migrating to a native disk install.

Please note that suspend functionality may be disabled when using this Ubuntu configuration.

Rationale

Windows users are often more comfortable downloading and running a small ubuntu-setup.exe file than downloading and burning an ISO. This also avoids the requirement of booting from the CD, which can be troublesome as some laptops do not have a CD drive and many systems are configured to boot from the hard disk first.

Advantages

  • No disk resizing or partitioning required
  • No CD burning required, works on laptops without CD drives
  • 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 Windows application, which is comfortable for the user
  • Runs at near-native speeds using all system resources (provided the loop mounting is efficient)
  • Uses all available hardware as a normal install would (in like a virtualbox install)
  • It can install Ubuntu in a USB keydrive (and optionally add a bootloader in the keydrive)

Use Cases

  • Sindre wants to give Linux a try but uses his only computer for work and does not want to repartition his drive, worried that something will break. The Live CD he received guides him through installing Ubuntu in a file on his widows system, which he then boots into.
  • Hellena writes tech reviews for on-line journals. She has tested various Linux distros in the past using VMware, but this does not quite yield a native experience. On the Ubuntu website she finds a small download that runs in Windows and produces a loop mounted install. After testing and reviewing she can delete it easily.

Design

Bundled LiveCD Version

A small executable that can be included on the CD which does the following:

  • If an Ubuntu CD is not present in a CD drive, locates the ISO on your system or downloads it via metadl (which can be taught to perform mirror selection)

  • Asks for a user name and password
  • Gathers information from Windows for the remaining install settings
  • Creates a 5GB image file in a user-defined location, C:\ubuntu by default

  • Creates a pre-seed file for the install
  • Adds Ubuntu entry to the Windows bootloader
  • Reboots to start an install process (non-interactive)
    • if a CD is present in a drive, uses that; otherwise loop-mounts an ISO image from the Windows drive
    • loop-mounts disk image from the Windows drive
  • Uses a pre-seed enabled version of ubiquity
  • Reboot again to start Ubuntu (or Windows)
  • Allows simple removal of Ubuntu if desired, via a Windows-based uninstaller in add/remove programs
  • Installer can be launched from the WinFOSS browser

Standalone Version

Prominent download location on the Ubuntu website providing a standalone version of Wubi as an installation option for Windows users. Some of the advantages of this approach:

  • No CD burning
  • The installer itself is less than 1MB, it takes more bandwidth to send a picture of Ubuntu to a friend... => Easy to "pass it around"

  • Built-in advanced download manager with automatic mirror selection, segmented downloads (not yet available), (partial) checksums, and download resume => No nee to ask about a mirror.

  • Automatic architecture detection => No need to ask about the architecture.

  • Allows to choose any member of the Ubuntu family with a single installer. => More exposure for other flavors

CD Boot Version

  • Asks for confirmation then allows to boot from a physical CD even if the BIOS tries to boot from hard disk, thus allowing users to boot the CD without having to edit their BIOS. Already in Gutsy, a confirmation dialog will be added for Hardy.

Implementation

  • The installer will be based on the Wubi installer
  • The installer will ship with early Hardy builds to ensure extensive testing
  • Wubi is written in NSIS with various plug-ins (metadl, hashing, isoburner, isoextractor, image creation...)
  • Gradually merge upstream the patches now in lupin-support and wubi/override_files
  • While there will be only a single installer, it will detect which distro is in use from metadata on the detected CD or ISO image, and select artwork and kernel boot parameters (preseed files, etc.) appropriately. Hence different versions for Ubuntu, Edubuntu, Kubuntu and Xubuntu, will be provided where only the artwork and ISO differ.

Outstanding Issues

  • Unmounting of userspace filesystems should be improved upstream (sendsigs)
  • Unmounting of host filesystems should be improved upstream (umountfs)
  • Fix update-grub/grub-installer to take into account loopinstallations
  • Fsck in ntfs-3g (ntfs-3g, Szaka)
  • Image generation: support fallocate in ntfs-3g and vfat to generate preallocated disk images quickly (or support windows-side diskimage creation) (ntfs-3g , Szaka + kernel devs for VFAT)
  • Improve on syctl hacks, check whether there is a better way to improve journal robustness in nested filesystems
    • check power manager issues with sysctl seetings
    • Add alt+sysrq+rsub shortcut to Ubuntu and document for Wubi
  • Allow suspend-to-ram with fuse filesystems (Matthew Garrett may look into this)
  • Proper external override hooks for installation ISO are very useful, they hopefully will not be needed for wubi-8.04, but they should be improved and generalized (ubuntu-installer), documentation on those should be improved
  • Official isolist/metalink support ([WWW] https://bugs.launchpad.net/ubuntu-cdimage/+bug/140458)

  • Better detection of existing settings (active screen readers, other accessibility tools, sys/inf files for screen resolution and other hardware settings, propietary fonts?, codecs? wireless drivers?).
  • Make Ubiquity aware of existing loop-installations
  • Improved downloader with segmented downloads
  • Proper build scripts.

What installation types should be supported?

Wubi can support different type of installations: loopinstallations, r/o ISO booting, physiscal CD booting, netboot (debian-style), hdmedia-style (install from predownloaded ISO saved on hard disk, requires online resizing). The following methods will be provided:

  • Loopinstallations (4+ GB)
  • Boot CD. If a physical CD is detected the option to simply boot it will be offered (cannot extract ISO because of online partitioning issues)
  • Boot from ISO on HD in r/o mode (provided only if free space is less than 4GB, so that users can still experience Ubuntu)
  • Burn & Boot: Built-in CD Burner, we are evaluating the possibility of bundling an ISO burner. Cdrtools would be a good match but the license is an issue. A mingw build of cdrkit might be a good solution (if possible).

Interface changes

  • Generic flag icon
  • Customized artwork (artwork team)
  • Installation size -> Installation type? Or get rid of it.

  • Simplification, 1-click: remove language selector, postpone username/password selector to first reboot?

Optional features

  • Online resizing to support hd-media type installations (unlikely, but there is always hope!)
  • Netboot support (via alternate initrd, alternative to hdmedia-like installations). Mixing ubiquity interface and d-i interface might be confusing.
  • Allow suspend-to-disk with swap on file (kernel devs, unlikely for hardy)
  • Bittorrent client
  • Expandable images: using hybrid images zeroed for the first 4-5GB (via fallocate) and sparse for n GB more. It depends on how well new version of ntfs-3g can cope with that, alternatively can use LVM with several files of 2GB.
  • Better post-install management features. A control panel running in windows that lets you resize disks, make backups, select between different installed systems.
  • See Also the CommunityGutsyIdeas/Installation for more windows-friendly installation methods

  • Tighten the graphical design with a nice NSIS skin and suitable ubuntu graphics (Ngompa: look at ExperienceUI)

Test/Demo Plan

  • Ship Wubi with early builds of Hardy
  • Widespread community testing
  • Test the install procedure on a range of hardware and Windows versions

Comments

With the emergence of new technologies that provide the same advantages, is there even a need anymore for officially supporting loopmounted-installs?

With Windows Vista's new dynamic partitions and ability to safely resize its own partitions while running, the partitioning phase can be done in the initial installation phase itself via the Windows Vista Drive Management API, while still running in Windows.

  • The dangers and inconveniences of drive partitioning, which the loopmounted-install approach was meant to alleviate, are thus eliminated. Although this will only be compatible with Windows Vista and newer, Vista market share is rapidly rising and is expected to be the dominant OS by the release of Ubuntu 8.04 LTS, or soon afterwards. Users of older OSes can always use the traditional CD install or a (third-party) netboot-based solution such as UNetbootin.

The CD iso can be placed on the existing NTFS drive, the installer can be run from the iso, and the installation can be automatically targeted towards the free space that was created while running Windows by shrinking the existing NTFS partition using the Windows Drive Management API, to be used as the root partition for Ubuntu.

  • The other advantage, the no-CD install and automated-install, can thus also be retained while avoiding the problems of a loopmounted-install. The clean-uninstallation advantage will also be retained, as the Windows Vista bootloader recovery utilities can be used to re-install the Vista bootloader while running the uninstaller (thus removing GRUB) and the Drive Management API can be used to delete the Ubuntu ext3 partition and expand the Windows NTFS partition to claim the unused space, thus allowing for a clean uninstallation.

Is the 2-step process for installation (first to loopmounted partition, then to dedicated partition) too complicated? Would it be better to simply go for a dedicated-partition install the first way around, using an approach like to the one above, thus eliminating the need for LVPM?

Are the trivial (if any) advantages provided by a loopmounted installation over a dedicated-partition install, which are not provided by the approach above, worth the extra work of officially maintaining and supporting both the modified loopmounted-booting patches and the LVPM tool?

The above assumes a wide market penetration of Vista, and with Vista struggling to reach 5%, I doubt it will be a viable option for the coming years. It is also arguable that using the Windows partitioning tool as opposed to the Linux one will make users any more comfortable with the idea of changing their partitions. -- Ago

  • Estimates put Vista market penetration as of October 2007 at over 7%; most other neutral sources generally range between 6-9%. Given that basically all new PCs come pre-installed with Vista, this will only increase drastically over time; it's not "struggling". As for the changing of partitions via Windows, since it's handled by official drive management tools not reverse-engineered utilities, there's essentially no chance of data loss; if data corruption or other partition errors are detected, Vista will simply refuse to resize the drive. The rest can be done automatically and transparently to the user (due to the flexibility of the Vista drive-management APIs, a custom, simpler interface may be written and used instead of the official Vista Drive Management GUI), much like how Ubuntu's partitioner currently works; the user simply selects the percent of space to split between Ubuntu and Windows, and the rest of the partitioning is all done automatically; that's just as easy, safe, and transparent as Wubi's approach is currently. Most users' fears of partitioning result not from the interface, but from the risk of data loss; using Vista's dynamic partition features eliminates that risk.

  • Also note that even if the adoption of Windows Vista is slower than expected, and it will only be on the majority of PCs within 1.5 or 2 years, rather than the predicted 12-14 months, this approach is still better in the long term. Work, support, and resources should not go into a temporary approach that will be made obsolete within 2 years, especially since 8.04 is an LTS release that will have to be supported for 3 years, and thus, stability, security and resilience, which a loopmounted install lacks compared to a dedicated-partition install, should be the priorities.

Security Concerns

Any windows based installer potentially subjects the Ubuntu install to corruption by malware running in MS Windows, during the installation process. Hypotheticly, Microsoft could even write an ubuntu virus into MS Windows, that causes the user to have a "bad ubuntu experience" and give up on it because they think it's unstable or "not ready for the desktop".

  • This situation is extremely unlikely (MS would rather avoid the potential uproar from consumer-rights groups if such code were ever embedded into Windows, therefore they would never do it), so that portion of speculation is unwarranted. However, it is indeed true that a loopmounted-install is more vulnerable, at least to a certain degree, to being damaged by malware than a standard, dedicated-partition install is, as any modern antivirus or security application would raise alarms and block the action if malware attempted delete the Ubuntu ext3 partition, but the deletion of the loopmounted disk image files in C:\ubuntu, thus wiping out the Wubi-generated install, will simply be looked upon as a simple file deletion, and therefore may not be detected or blocked by security applications due to the lower level of scrutiny applied to file deletion than partition or MBR modification.
  • However, this increased vulnerability to malware is only applicable to loopmounted installs and not "any windows based installer" in general, as with the approach proposed in the "With the emergence of new technologies that provide the same advantages, is there even a need anymore for officially supporting loopmounted-installs?" section, as well as other direct-to-partition install approaches, Windows is only needed for resizing its own partitions and launching the main installer, and the bootloader modifications are undone the next reboot, therefore a dedicated-partition install approach initiated from Windows is no more vulnerable to malware than a standard Ubuntu install would be.


CategorySpec

InstallerForWindows (last edited 2008-08-06 16:32:01 by localhost)