Main Wubi page: WubiGuide
Please add comments to the comments page.
Website (Original): http://cutlersoftware.com/ubuntusetup/archive/website/original
Website (New): http://wubi.sourceforge.net
Development thread (Original): http://ubuntuforums.org/showthread.php?t=305109
Launchpad entry: https://features.launchpad.net/distros/ubuntu/+spec/windows-installer
Created: 12/15/06 by GezaKovacs
Summary
The installation of Ubuntu is a major barrier to its spread and use. This project aims to solve this problem by allowing installation from within Windows using an install.exe file, and eliminating the need to partition the hard drive or burn a CD to install. It will allow a faster and more user-friendly installation for Windows users, the ability to install without the risk of data loss through repartitioning, and the ability to install on ultra-portable laptops without CD drives.
Rationale
Approximately 90% of desktop computers in the world, the target audience of Ubuntu, run Microsoft Windows. Most Windows users are familiar with install.exe programs, and know how to use them. Few, however, know how to burn a CD from a .iso file, boot from a CD, shrink partitions, and install Ubuntu. By providing Windows users with an installer they are more familiar with, we can ease their learning curve, and open Ubuntu to the vast market of casual computer users.
The elimination of the need for partitioning, and thus the chance of data loss, will help Ubuntu gain acceptance in the corporate world.
The elimination of the need for an installation CD will allow users without CD burners or spare CDs to try Ubuntu, ease burdens on ShipIt, and allow installation on ultra-portable laptops with no CD drives.
Use cases
Brenda is an inexperienced Windows user who is tired of viruses and crashes, so she decides to try out Ubuntu. She then downloads the .iso file, and is confused about what to do with it. She reads pages of installation guides, which overwhelm her, and she figures she has neither the time nor skill to switch to Ubuntu. Following the release of the Ubuntu install.exe, though, she downloads it, runs it, clicks "OK" through the installer, reboots, and has a fully functioning and user-friendly OS.
Peter is an amateur video editor who is interested in trying out Ubuntu. However, he hears that shrinking his NTFS partition and repartitioning may lead to irrecoverable data loss. He doesn't want to risk losing his several gigabytes of videos on his NTFS partition, but he has no means to back up all his data, so he grudgingly continues using Windows. Following the release of Ubuntu install.exe, though, he rests assured that because no repartitioning is occurring, his data is safe. He clicks his way through the user-friendly installer, and has an Ubuntu installation within minutes.
Jane and her coworkers are employees at WidgetTech Corporation who would like to use their favorite OS, Ubuntu, at work. Since Ubuntu can do everything required for their job, their employers agree to let them use Ubuntu, so long as they keep Windows installed, in case there is a need for it. However, the employers hear that there is a chance that all data on the computer's hard drive may be lost while reformatting. They do not want to spend precious time and money making backups of terabytes of critical data and restoring it in case it is lost, so the company does not allow employees to use anything other than Windows. Following the release of Ubuntu install.exe, though, Jane and her coworkers show their employers that there is no chance of data loss during the Ubuntu installation, due to the lack of partitioning. They are then permitted to install and use Ubuntu on their corporate desktops.
Mark is an Ubuntu user who has just bought an ultra-portable laptop. He wants to install Ubuntu on it, but can't, because his laptop is too small to accommodate a CD drive. However, following the release of Ubuntu install.exe, he just downloads the installer, runs it from the spot, reboots, and has Ubuntu ready for usage.
Implementation
The installer will be based on the Nullsoft Scriptable Install System, because it is flexible and open-source. It will use the BattleTorrent plugin to download ubuntu.img and swap.img via BitTorrent, in order to conserve bandwidth. As it is downloading, a progress bar will indicate how much longer it will take to download.
ubuntu.img will be the Ubuntu hard drive image. It will be used as a loopmounted EXT3 filesystem, and will be placed in the C:\ubuntu directory. ubuntu.img will be a preconfigured hard drive image, which already has all portions of the installation set up, except those specific to the hardware, such as the X11 configuration, and the user-specific portions, such as the home directory and timezone. swap.img will be a hard drive image of the swap partition. It will be placed in the C:\ubuntu directory.
The installer will ask the user to specify his desired username and password. It will also detect the time zone and locale based on information in the Windows registry. The installer will write this data into the file config.txt in the C:\ubuntu directory.
GRLDR, a modified version of GRUB, allows dual-booting the loopmounted hard drive image and Windows, and doesn't require any changes to the MBR, as it writes to the Windows boot.ini, so it will be used as the bootloader. This bootloader will be installed at the end of the installation, and the original boot.ini file will be backed up. Once the bootloader is installed, the installer will have a "reboot into Ubuntu" button that will restart the system.
On the first bootup, the data from the config.txt file generated by the installer will be read, and will be used to set up the system. The hardware will be detected, and X11 and other hardware-dependent portions of the system will be configured. All of this will be done automatically, and will not require user interaction. Once this is done, booting will continue, and will boot into Ubuntu.
What's Completed
In the prototype, the installer now automatically downloads and installs the initrd, kernel, disk image, and GRLDR via BitTorrent.
The disk image is now booting a standard Ubuntu 7.04 feisty installation with a modified initrd with ntfs-3g support built in, and a standard feisty kernel.
The Windows-based uninstaller is now working
Windows NT, 2000, and XP are fully supported. Windows 95, 98, and ME are supported, but the disk images must be 4 GB or less due to the limitations of the FAT32 filesystem. Windows Vista support is being worked on.
TODO
Install to a real linux partition like debian.exe -- Has already been completed, see UNetbootin
Automatic generation of /etc/fstab on first boot
- Read values from the config.txt file generated by the installer on the first boot and automatically configure the username, password, language, and timezone accordingly
- The user's password in the config.txt file will have to be hidden or deleted, as it will be a security risk. This can be done by adding a startup script to Ubuntu that will delete the config.txt file on the first boot, after configurating the username, password, language, and timezone
A correct regeneration of initrd.img (with ntfs-3g enabled) when upgrading the kernel - NicolòChieffo
Installation to the USB keydrive, with the BootLoader and uninstaller in the USB stick.
- It can use and configure PPP modems and DHCP, to connect to the Internet.
Possible add-ons
Once Ubuntu has been installed, we may provide a wizard that offers to upgrade Ubuntu's performance by shrinking or removing the NTFS partition, giving Ubuntu a dedicated EXT3 partition, and dumping the contents of the image file into it.
We may be able to resize the disk image if space on the Ubuntu partition runs out.
While the installer is downloading the disk images via BitTorrent, we may provide users with a tutorial to educate them about ubuntu.
The installer may read data from the Windows registry to detect hardware, download the necessary drivers to C:\ubuntu, and add a section to config.txt that will instruct Ubuntu to install the drivers and set the hardware up on the first boot, in order to provide a better out-of-the-box experience for users.
The installer may import settings from programs, such as mail from Outlook, Outlook Express, or Thunderbird, and bookmarks from Internet Explorer or Firefox, place them in the C:\ubuntu directory, and add a section to config.txt that will instruct Ubuntu to import these settings into the user's profile on the first boot.
The importers from Thunderbird and Firefox could be used here.
USB memory stick
One could use install.exe to install Ubuntu in a USB keydrive from a Windows computer with Internet connection.