• Provide a tool to help users migrate a Wubi installation to a dedicated partition
  • Enhance Wubi
  • Macbook Port: UbuntCamp (?)

The main goal for this specification is the migration tool, other aspects may or may not be implemented

Colinux integration (see PortableUbuntu) will not be pursued. The Ubuntu kernel team looked over the patches and noted two critical issues:

  • The patches are against 2.6.22
  • They are deeply invasive. Some replace entire bus drivers.

As the kernel team bear responsibility for any kernel shipped as part of Ubuntu, be it in Wubi or any other variant, the decision and the work needed to maintain a separate kernel tree rests on them. This work would potentially require full time developers, and the audience is not large enough to warrant that allocation of resource.

Release Note for Wubi Migration

The Live CD and USB image will now detect an existing Wubi installation and provide the option to migrate the existing installation to a dedicated partition.

Rationale for Wubi Migration

An installation within a dedicated partition is more robust (particularly in case of hard reboots) and provides faster I/O performance. This is the desired way to install Ubuntu. Many Windows users try Wubi in order to decide whether they like the new operating system, since that installation path is non-invasive and can be uninstalled easily. If those users decide to stick with Ubuntu, they should be able to migrate their current installation to a dedicated partition without having to reinstall everything from scratch. A system installed via Wubi and later migrated should be identical to a system installed directly from CD/USB key.

User stories for Wubi Migration

Caroline has tried Ubuntu using Wubi, she made several customizations and has installed many applications, she decides that she wants to use Ubuntu in the long term but she does not want to reinstall everything.

Implementation of Wubi Migration

Rely on existing Ubuntu CD or USB stick.

  • When Ubiquity is started autodetect existing Wubi installations (OS-Prober -> find OS -> scan windows OS)

  • If an installation is found ask the user whether they want to migrate or they want to do a fresh installation
  • Show the partitioning page disabling options that are inappropriate (such as wiping the full disk or the partition hosting wubi)
  • Confirmation Page
  • mount partitions and clear if necessary (i.e. normal bottom half of partman)
    • Have to take care of /host /usr /home partitions and mount them accordingly (i.e. mount root.disk, then read fstab, then mount other disks.)
  • copy - potential checksumming will depend on method of copying:
    • (see components/install which calls scripts/install.py)
    • dd + resize filesystem (only if we have a sane method of dding a sparse file)
    • file-level copy as usual in ubiquity
  • shall we try to upgrade the packages at all?
  • skip all extra setps except grub installation
  • regenerate fstab from scratch
  • remove lupin-support package
  • install grub package and do usual grub installation
  • regenerate initramfs
  • (post-install) Notify the user that they can remove Wubi from the Windows side.

Macbook Port

  • Check progress with Grub2-EFI
  • It would not be possible to perform loop installations because it is not possible to write on HFS+ when journaling is enabled
  • The only option is to resize the existing partition from within OSX very much like BootCamp and install into a dedicated partition

  • Follow the UI of BootCamp

Given the other projects, implementation is unlikely in this cycle without contributions.

Wubi Enhancement

  • Try to use persistent storage by union mounting the ISO and a persistance file
    • This would make it possible to install (almost) directly from Windows
    • It would provide a better integration with Colinux
    • Although, as noted by Colin Watson, this would make it substantially more difficult to migrate a Wubi installation because of Casper changes
  • Update Wubi to use Grub2
    • try to use the Grub2 loop module to avoid having an external /boot directory that needs to be bind-mounted
      • This involves loading the kernel and initrd within the ISO
      • And chainloading into a grub.cfg inside of the root.disk file, and in turn loading the kernel and initrd therein
      • Might be tricky if union mounting is implemented (unless /boot can be accessed from the persistance file in isolation)
    • Port the update-grub patches to Grub2
  • dm-loop will be removed, check required changes
  • clean up lupin-casper hooks

Code Changes

Create a new Ubiquity branch registered with CIA

UI Changes

  • Wubi Migration => Ubiquity

    • Add a Ubiquity page that asks whether the user would like to migrate an existing installation or install afresh
    • Slightly modified partitioning page (it might be enough to disable some of the options)
  • Ubuntu Desktop
    • Add a bookmark pointing to the host drive, many users do not seem able to find it
  • Grub Menu
    • on first reboot call the entry "finish installing ubuntu"
  • Wubi GUI
    • Implement suggestions from the design team on the main Wubi wizard page
    • Add "Use a local Ubuntu ISO" button during ISO download
  • Windows Menu
    • If colinux is integrated, add 3 menu items:
      • Ubuntu/Reboot into Ubuntu
      • Ubuntu/Launch Ubuntu Applications (will start a launcher hosted by Xming and using Portable Ubuntu as X client)
      • Uninstall Ubuntu

Test/Demo Plan

  • Migrate 9.04 Wubi installation with the 9.10 CD/USB key and run usual post-installation tests
  • More testers are needed particularly on localized versions of Wubi, we had some issues in the past

Building Community

  • Code base has stabilized, it would be nice to get more developers involved
    • More detailed documentation would help

Unresolved issues

BoF agenda and discussion


FoundationsTeam/Specs/WubiImprovements (last edited 2011-05-04 16:52:55 by 82-69-40-219)