InstallerForWindows

Differences between revisions 1 and 40 (spanning 39 versions)
Revision 1 as of 2005-10-06 21:16:49
Size: 808
Editor: wbs-146-160-94
Comment:
Revision 40 as of 2007-10-29 19:26:19
Size: 13241
Editor: adsl-69-235-43-132
Comment: merged comments from the LVPM spec page concerning Vista's dynamic partitions
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
 * Created: [[Date(2005-10-06T21:16:48Z)]] by JaneWeideman
 * Priority: NeedsPriority
 * People: NeedsLead, NeedsSecond
 * Contributors: JaneWeideman
 * Interested:
 * Status: UbzSpecification, BrainDump (then DraftSpecification then EditedSpecification then ApprovedSpecification), DistroSpecification
 * Branch: UbuntuTrack
 * Malone bug:
 * Packages affected:
 * Depends:
 * Dependents:
 [[FullSearch()]]
 * BoF sessions: none yet
''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 18: Line 9:
Installer for Windows -Ubuntu installer forWindows ([WWW] old mailing list post)
A loop-mounted Ubuntu install initiated in Windows. The installer asks fewer questions and does not partition or format drives.

== 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, 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 is disabled when using this Ubuntu configuration.
Line 22: Line 20:
== Use cases == 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 24: Line 22:
== Scope == ==== 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 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)

== 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.
Line 28: Line 39:
=== 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
 * Will use 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 ===

Evaluate the possibility of providing the standalone version of Wubi as an installation option on Ubuntu website. Some of the advantages:
 
 * 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
 * Several installation techniques can be used (whether the end user is made aware of that is a different issue). Wubi might come with built-in CD burner and/or hd-media-like installation support (requires online resizing) and/or netboot installations as well as loop-installations.

=== Optional features ===

 * Teach the ubiquity migration assistant to migrate from a loop-mounted file in Windows
 * Improved downloader with segmented downloads and bittorrent client
 * 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).
 * 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.
 * Option to install to a real partition (would result in hdmedia-like installations, requires online resizing)
 * Netboot support (via alternate initrd, alternative to hdmedia-like installations)
 * Expandable image files
 * Support native NTFS installation, it does not require much change on Wubi side, but it requires additional ntfs-3g features (unlikely in the short term)
 * Better post-install management features. A control panel running in windows that lets you resize disks, make backups, select between different installed systems.
 * Improved detection of settings of live windows session (inf files for monitor resolution, screen readers...)
 * See Also the ["CommunityGutsyIdeas/Installation"] for more windows-friendly installation methods
 * Debian's [http://goodbye-microsoft.com/more.html win32-installer] can be considered a good alternative - it install's a real debian (not loopmounted) using ntloader. [It would be easy to add netboot capabilities to Wubi, hdmedia type installations would be a better option, but are technically more challenging -- Ago ]
Line 30: Line 85:
=== Code ===  * Windows installer is written in NSIS with various plug-ins (bittorrent, what else?)
 * Tighten the graphical design with a nice NSIS skin and suitable ubuntu graphics (Ngompa: look at ExperienceUI)
 * Merge upstream the patches now in lupin-support and wubi/override_files
 * Refinement and testing of Vista support
 * Different versions for Ubuntu, Edubuntu, Kubuntu and Xubuntu, where only the artwork and ISO differ.
 * 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. [Implemented]
Line 32: Line 92:
=== Data preservation and migration === === Website ===
Line 34: Line 94:
== Outstanding issues ==  * Prominent download location on the website
Line 36: Line 96:
== BoF agenda and discussion == == Test/Demo Plan ==

 * Widespread community testing
 * Test the install procedure on a range of hardware and Windows versions

== Outstanding Issues ==

 * Unmounting of userspace filesystems should be improved upstream (sendsigs)
 * Unmounting of host filesystems should be improved upstream (umountfs)
 * Fix update-grub and grub-installer to take into account loopinstallations
 * Support fallocate in ntfs-3g and vfat to generate preallocated disk images quickly (or support windows-side diskimage creation) (ntfs-3g + kernel devs)
 * Improve on syctl hacks, check whether there is a better way to improve journal robustness in nested filesystems
 * Allow suspend-to-ram/disk with fuse filesystems (kernel devs)
 * Allow suspend-to-disk with swap on file (kernel devs)
 * Fsck in ntfs-3g (ntfs-3g)
 * Online resizing to support hd-media type installations (unlikely, but there is always hope!)
 * 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)
 * Official isolist/metalink support (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 (part of the https://blueprints.launchpad.net/ubuntu/+spec/ubiquity-preserve-home discussion?)
 * Proper build scripts.

=== 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.

----
CategorySpec

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.

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, 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 is 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 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)

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
  • Will use 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

Evaluate the possibility of providing the standalone version of Wubi as an installation option on Ubuntu website. Some of the advantages:

  • 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

  • Several installation techniques can be used (whether the end user is made aware of that is a different issue). Wubi might come with built-in CD burner and/or hd-media-like installation support (requires online resizing) and/or netboot installations as well as loop-installations.

Optional features

  • Teach the ubiquity migration assistant to migrate from a loop-mounted file in Windows
  • Improved downloader with segmented downloads and bittorrent client
  • 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).
  • 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.
  • Option to install to a real partition (would result in hdmedia-like installations, requires online resizing)
  • Netboot support (via alternate initrd, alternative to hdmedia-like installations)
  • Expandable image files
  • Support native NTFS installation, it does not require much change on Wubi side, but it requires additional ntfs-3g features (unlikely in the short term)
  • Better post-install management features. A control panel running in windows that lets you resize disks, make backups, select between different installed systems.
  • Improved detection of settings of live windows session (inf files for monitor resolution, screen readers...)
  • See Also the ["CommunityGutsyIdeas/Installation"] for more windows-friendly installation methods
  • Debian's [http://goodbye-microsoft.com/more.html win32-installer] can be considered a good alternative - it install's a real debian (not loopmounted) using ntloader. [It would be easy to add netboot capabilities to Wubi, hdmedia type installations would be a better option, but are technically more challenging -- Ago ]

Implementation

  • Windows installer is written in NSIS with various plug-ins (bittorrent, what else?)
  • Tighten the graphical design with a nice NSIS skin and suitable ubuntu graphics (Ngompa: look at ExperienceUI)
  • Merge upstream the patches now in lupin-support and wubi/override_files
  • Refinement and testing of Vista support
  • Different versions for Ubuntu, Edubuntu, Kubuntu and Xubuntu, where only the artwork and ISO differ.
  • 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. [Implemented]

Website

  • Prominent download location on the website

Test/Demo Plan

  • Widespread community testing
  • Test the install procedure on a range of hardware and Windows versions

Outstanding Issues

  • Unmounting of userspace filesystems should be improved upstream (sendsigs)
  • Unmounting of host filesystems should be improved upstream (umountfs)
  • Fix update-grub and grub-installer to take into account loopinstallations
  • Support fallocate in ntfs-3g and vfat to generate preallocated disk images quickly (or support windows-side diskimage creation) (ntfs-3g + kernel devs)
  • Improve on syctl hacks, check whether there is a better way to improve journal robustness in nested filesystems
  • Allow suspend-to-ram/disk with fuse filesystems (kernel devs)
  • Allow suspend-to-disk with swap on file (kernel devs)
  • Fsck in ntfs-3g (ntfs-3g)
  • Online resizing to support hd-media type installations (unlikely, but there is always hope!)
  • 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)
  • Official isolist/metalink support (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 (part of the https://blueprints.launchpad.net/ubuntu/+spec/ubiquity-preserve-home discussion?)

  • Proper build scripts.

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.


CategorySpec

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