Wubi improvements

Registered by Evan on 2009-05-08

Topics to cover:
How do we get stronger assurance of quality around Wubi (better integration of testing throughout the release cycle)?
Wubi migration to a real partition (https://wiki.ubuntu.com/WubiMigration)
Mac OSX support (bootcamp for Ubuntu rather than a loop-mounted image)

Blueprint information

Steve Langasek
Agostino Russo
Series goal:
Accepted for oneiric
Milestone target:
Started by
Colin Watson on 2011-06-17


Work items for Ubuntu-11.10:
[apw] test kexec is functional for i386/amd64: DONE
[apw] Investigate HFS+ journalled write support (either full, or an interim position ignoring journal): TODO
[cjwatson] Fix GRLDR to not get confused by ext4: DONE
[cjwatson] Make the Wubi GRUB image modular: DONE
[ev] Investigate kexecing out of second stage of Wubi installation: DONE
[ev] Investigate leaving X contents on framebuffer or separate plymouth splash for kexec (unnecessary now with disk images): DONE
[ev] Bring Wubi branding up to date: TODO
[ev] Work with design team (John, Christian) to update Wubi interface: INPROGRESS
[ev] Integrate Ubiquity failure rate measurement with first stage of Wubi: BLOCKED
[ev] Work with bcbc to integrate Wubi migration utilities: TODO
[ev] Build a test infrastructure for Wubi using kvm-autotest (jibel has done this): DONE
[ev] Boot straight into second stage (ubiquity): DONE
[ev] Build a Wubi disk image on cdimage: DONE
[ev] Replace the second stage with code that uses the Wubi disk image: DONE
[nuthinking] UI for choice of nested installation (wubi), create a USB stick, burn a CD: DONE
[cjwatson] Don't show the Windows option, and thus the menu, in GRUB2 when under Wubi: DONE
[jibel] Automated test of Wubi using non-interactive mode: DONE
[jibel] Integrate automated test to daily run in QA testing lab: DONE
[jibel] Add automated test of disk images installations: DONE

2011-08-17 [apw]: confirmed that kexec works as expected on both i386 and amd64 systems (tested using "kexec -l --reuse-cmdline --append=KEXEC --initrd /boot/<initrd> /boot/<kernel>" and then using reboot). During the actual transition the screen contents were maintained in part, though the pallete seemed to be lost. With careful use of colours and pallette entries it may be possible to have an almost invisible reboot into a new kernel.

Old Notes:
2009-06-18: Once again I put in the wrong username for Robbie. Sorry. - evand
2009-09-25: cjwatson: This hasn't happened in time, so deferring from Karmic. Our main focus in Karmic has been getting everything working with GRUB 2.

Work items:
[ago] Implement Wubi migration support in ubiquity: TODO

Notes from Oneiric planning:
- Prototype of Wubi migration: http://ubuntuforums.org/showthread.php?t=1519354, and see the author's blog: http://ubuntu-with-wubi.blogspot.com/

Notes from Millbank meeting:


- The ISO CD creation process is a big stumbling block for users wanting to install Ubuntu
- WUBI installation is currently unstable and migration to full install is a problem

We want WUBI to:

- Install (with option to switch to full Ubuntu when they like it)
- Burn CD
- Create USB

We want to make WUBI the primary installation option on the website. Many of the elements to make this possible already exist, we just need the focus, resource and momentum to make this happen.
We think it would be best to fix Windows first, then Mac. (But in the first instance we will still create a USB/CD creator for Mac.)

To do this we need to take the following into account:

- Ideally, we need a developer with Windows and Ubuntu experience to own this, mentored by Colin and Evan
- We need design resources to address the user experience and process
- Platform team need to be on board and have access to Windows machines to make it solid
- QA team involvement
- Automatic testing (VMs?)

- As much as possible, we need to have common code with self-hosted installations (the less special code we use, the more testing it will get)
- Upstream GRUB have given negative feedback on the current WUBI implementation. They do not know how to fix it and the code is not upstream. We should involve upstream in this and create new, clean code.

Current issues/things we want to address:
- Upgrade issues with nested install
- Migration issue to full install
- Using Windows boot menu if there is a failure
- Too many steps
- Make first re-boot automatic after time-out (into Ubuntu installer)
- Let them know they still have windows (e.g. Ubuntu Light back-to-windows button?)

On website, users select the edition and architecture (and are given recommendations)
Download the WUBI exe for the selected edition and architecture

Choice between:
Nested installation
Create a USB stick
Burn a CD

Nested installation:
1. Fill form
2. Downloads ISO
3. Auto re-boots after timeout into Ubuntu
4. Ubuntu Installer (progress bar only - all questions answered/pre-populated in step 1.)
5. Installer auto-reboots once its done into...
6. Ubuntu

Create a USB stick
1. Select USB drive to write to
2. Source disk image will be chosen from either the website or the CD
3. Reserved Extra space: Auto-creates as much persistent space as possible (this happens behind the scenes without adding to the process)
4. Progress bar with auto-reboot into Ubuntu after time out

Burn a CD
1. Select CD to write to
2. Source disk image will be chosen from either the website or the CD
3. Progress bar with auto-reboot into Ubuntu after time out


Work Items

Dependency tree

* Blueprints in grey have been implemented.