Developer(s) | Agostino Russo, Geza Kovacs, Oliver Mattos, Ecology2007, hakuna-m |
---|---|
Initial release | April 24, 2008 |
Stable release | 9.04.129? / April 22, 2009 |
Repository | |
Written in | NSIS script, C++, Python |
Operating system | Microsoft Windows |
Size | 4.7 MB |
Available in | Over 50 languages |
Type | Ubuntu system installer |
License | GNU GPL v.2 or later [1] |
Website | wubi |
Wubi ("Windows-based Ubuntu Installer") is a free software Ubuntu installer, that was the official Windows-based software, from 2008 until 2013, [2] to install Ubuntu from within Windows, to a single file within an existing Windows partition.
After installation, it added a new "Ubuntu" option to the existing Windows boot menu which allowed the user to choose between running Linux or Windows, and avoided the need to re-partition the disk.
Wubi was born as an independent project and as such versions 7.04 and 7.10 were unofficial releases. [3]
For Ubuntu 8.04 the code was merged into Ubuntu and for 8.04 alpha 5, Wubi was also on the Ubuntu Live CD. [1]
The project's aim was to enable existing Windows users, unacquainted with Linux, to try Ubuntu without risking any data loss (due to disk formatting or partitioning mistakes). [3] It could also safely uninstall Ubuntu from within Windows.
It is not a virtual machine, but creates a stand-alone installation within a loopmounted device, also known as a disk image, like Topologilinux does. It is not a Linux distribution of its own, but rather an installer for Ubuntu. [1]
While Wubi does not install Ubuntu directly to its own partition this can also be accomplished by using LVPM, the Loopmounted Virtual Partition Manager, to transfer the Wubi-generated Ubuntu installation to a dedicated real partition, including a bootable USB keydrive. [1] The advantage of this setup is that users can test the operating system and install the drivers before they install it to a dedicated partition (and avoid booting and functioning risks).
Wubi adds an entry to the Windows boot menu which allows the user to run Linux. Ubuntu is installed within a file in the Windows file system (c:\ubuntu\disks\root.disk), as opposed to being installed within its own partition. This file is seen by Linux as a real hard disk. [1] Wubi also creates a swap file in the Windows file system (c:\ubuntu\disks\swap.disk), in addition to the memory of the host machine. This file is seen by Ubuntu as additional RAM. [1]
A related project, Lubi, used Linux as the host system instead of Windows. However, this project has not been worked on since 2007 and only works on Ubuntu 7.04. [4]
Wubi was removed as an installation option in the official download page from Ubuntu 13.04 onward. [2] However, Wubi installers were still provided for versions up to and including Ubuntu 14.10. [5]
An unofficial fork of Wubi, called wubiuefi, supports UEFI and legacy BIOS as well as newer versions of Ubuntu (as of 2022-04-03, version 20.04.4).
Users can select the desktop environment within Wubi. But, because each desktop environment is also available as an application package, it is recommended that users install Ubuntu (default option) and from there install the other desktop environments. When users log in, they can choose the desktop environment to use. [1]
Compared with a regular installation, a Wubi installation faces some limitations. Hibernation is not supported and the filesystem is more vulnerable to hard reboots. [1] Also, if the Windows drive is unmounted uncleanly (Windows crash, power failure, etc.), Ubuntu will not be able to repair, re-mount, and boot from the Windows NTFS drive until Microsoft Windows has successfully booted, repaired the drive, and then shut down cleanly. If the Windows system could not be booted after the corruption to repair the filesystem, the user would also not be able to boot Ubuntu.
Performance related to hard-disk access is also slightly slower on a Wubi install, more so if the underlying disk image file is fragmented, as the disk image file in the Windows filesystem contains a Linux filesystem whereas without Wubi only the Linux filesystem is used that has direct hardware access. [1]
Wubi creates the root.disk file using Microsoft's proprietary NTFS file system while running under the MS Windows OS and then while the Ubuntu OS is running it accesses that file using an alternative file system driver. The differences between the Microsoft and Linux implementations of NTFS could technically result in corruption of the root.disk file that affects the NTFS filesystem in such a way that it could even prevent Windows from booting. Running chkdsk /r from MS Windows to fix the damaged NTFS file system and then shutting down Windows cleanly may fix any corruptions (this may take a significant amount of time to run as root.disk is a large file). [6]
Wubi relies on other open source projects: Debian installer, Migration Assistant, Grub4Dos, NTFS-3G, NSIS, Metalink and Ubiquity. [1] [7]
The lead developers are Agostino Russo, Geza Kovacs, Oliver Mattos and Ecology2007. [1] The main development occurs at Launchpad and is led by the Lupin Team (Lupin is the loop-installer, handles everything that happens after reboot) [8] through the original Ubuntu blueprint page [9] and the new Wubi, [10] Lubi, [11] Lupin, [12] and LVPM [13] project pages. [1]
Both the i386 (32-bit x86) and x86-64 releases of Ubuntu are supported by Wubi and Lubi. [1] In versions before 8.04, only the x86 release of Ubuntu was supported. Wubi UEFI works with UEFI boot loaders.
A number of Linux distributions, including Red Hat Linux and Slackware's ZipSlack, provided a similar tool in the mid-1990s, using syslinux and the UMSDOS filesystem driver. Later, SuSE provided something similar using syslinux and loop-mounted disk images on FAT filesystems. During the late '90s BeOS used a similar system to install the OS in a folder in Windows.
The idea for Wubi was drafted by Agostino Russo taking inspiration from Topologilinux, which provided a loopmounted installation, and Instlux, that provided a simple Windows frontend. The idea [14] was to merge the two concepts having a Windows installer that would loopmount an image of Ubuntu. Geza Kovacs later refined the specification [15] and provided the first prototypes [16] to show that the concept was sound. Oliver Mattos wrote the original user interface in NSIS.
Agostino Russo then refined the loop-installation concept, moving from a simple loopmounted pre-made image file to an image created on the fly using a dynamically patched version of the Debian installer, thus providing an experience which was closer to a real installation while addressing several other issues of the early prototypes. Lupin project was thus born and Agostino Russo wrote and implemented most of its code with some contributions from Geza Kovacs.
Agostino Russo and Ecology2007 later redesigned and rewrote the current Windows front-end. Hampus Wessman contributed the new downloader and the translation scripts. Bean123 and Tinybit also helped to debug and fix bootloader issues. Lubi and LVPM were subsequently created by Geza Kovacs. [17]
The project has inspired the creation of other Windows-based Linux installers, such as Win32-loader.
A Linux distribution is an operating system made from a software collection that includes the Linux kernel and often a package management system. Linux users usually obtain their operating system by downloading one of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices and personal computers to powerful supercomputers.
Disk partitioning or disk slicing is the creation of one or more regions on secondary storage, so that each region can be managed separately. These regions are called partitions. It is typically the first step of preparing a newly installed disk, before any file system is created. The disk stores the information about the partitions' locations and sizes in an area known as the partition table that the operating system reads before any other part of the disk. Each partition then appears to the operating system as a distinct "logical" disk that uses part of the actual disk. System administrators use a program called a partition editor to create, resize, delete, and manipulate the partitions. Partitioning allows the use of different filesystems to be installed for different kinds of files. Separating user data from system data can prevent the system partition from becoming full and rendering the system unusable. Partitioning can also make backing up easier. A disadvantage is that it can be difficult to properly size partitions, resulting in having one partition with too much free space and another nearly totally allocated.
Linux has several filesystem drivers for the File Allocation Table (FAT) filesystem format. These are commonly known by the names used in the mount
command to invoke particular drivers in the kernel: msdos, vfat, and umsdos.
GNU GRUB is a boot loader package from the GNU Project. GRUB is the reference implementation of the Free Software Foundation's Multiboot Specification, which provides a user the choice to boot one of multiple operating systems installed on a computer or select a specific kernel configuration available on a particular operating system's partitions.
A live CD is a complete bootable computer installation including operating system which runs directly from a CD-ROM or similar storage device into a computer's memory, rather than loading from a hard disk drive. A live CD allows users to run an operating system for any purpose without installing it or making any changes to the computer's configuration. Live CDs can run on a computer without secondary storage, such as a hard disk drive, or with a corrupted hard disk drive or file system, allowing data recovery.
Multi-booting is the act of installing multiple operating systems on a single computer, and being able to choose which one to boot. The term dual-booting refers to the common configuration of specifically two operating systems. Multi-booting may require a custom boot loader.
fstab is a system file commonly found in the directory /etc
on Unix and Unix-like computer systems. In Linux, it is part of the util-linux package. The fstab file typically lists all available disk partitions and other types of file systems and data sources that may not necessarily be disk-based, and indicates how they are to be initialized or otherwise integrated into the larger file system structure.
Unified Extensible Firmware Interface is a specification that defines the architecture of the platform firmware used for booting the computer hardware and its interface for interaction with the operating system. Examples of firmware that implement the specification are AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O. UEFI replaces the BIOS which was present in the boot ROM of all personal computers that are IBM PC compatible, although it can provide backwards compatibility with the BIOS using CSM booting. Intel developed the original Extensible Firmware Interface (EFI) specification. Some of the EFI's practices and data formats mirror those of Microsoft Windows. In 2005, UEFI deprecated EFI 1.10.
HFS Plus or HFS+ is a journaling file system developed by Apple Inc. It replaced the Hierarchical File System (HFS) as the primary file system of Apple computers with the 1998 release of Mac OS 8.1. HFS+ continued as the primary Mac OS X file system until it was itself replaced with the Apple File System (APFS), released with macOS High Sierra in 2017. HFS+ is also one of the formats supported by the iPod digital music player.
GParted is a GTK front-end to GNU Parted and an official GNOME partition-editing application. GParted is used for creating, deleting, resizing, moving, checking, and copying disk partitions and their file systems. This is useful for creating space for new operating systems, reorganizing disk usage, copying data residing on hard disks, and mirroring one partition with another. It can also be used to format a USB drive.
Debian-Installer is a system installer designed for the Debian Linux distribution. It originally appeared in the Debian release 3.1 (Sarge), released on June 6, 2005, although the first release of a Linux distribution that used it was Skolelinux (Debian-Edu) 1.0, released in June 2004.
In Linux systems, initrd
is a scheme for loading a temporary root file system into memory, to be used as part of the Linux startup process. initrd
and initramfs
refer to two different methods of achieving this. Both are commonly used to make preparations before the real root file system can be mounted.
A live USB is a portable USB-attached external data storage device containing a full operating system that can be booted from. The term is reminiscent of USB flash drives but may encompass an external hard disk drive or solid-state drive, though they may be referred to as "live HDD" and "live SSD" respectively. They are the evolutionary next step after live CDs, but with the added benefit of writable storage, allowing customizations to the booted operating system. Live USBs can be used in embedded systems for system administration, data recovery, or test driving, and can persistently save settings and install software packages on the USB device.
TopologiLinux is a free Linux distribution to be run on an existing Microsoft Windows system. The main feature of TopologiLinux is that it does not require any partitioning. It is based on Slackware and Cooperative Linux (coLinux). TopologiLinux has been chosen as one of nine open-source projects used as principal examples in a study of the characteristics of open-source software.
UNetbootin is a cross-platform utility that can create live USB systems and can load a variety of system utilities or install various Linux distributions and other operating systems without a CD.
EasyBCD is a program developed by NeoSmart Technologies to configure and tweak the Boot Configuration Data (BCD), a boot database first introduced in Windows Vista and used in all subsequent Windows releases. EasyBCD can be used to set up multi-boot environments for computers on which some versions of Windows, Linux, BSD and Mac OS X can be simultaneously installed; EasyBCD can also be used for adding entries to bootable tools and utilities, as well as modifying and controlling the behavior of the Windows boot menu. EasyBCD 2.3 introduced additional support for creating and managing entries for UEFI-based Windows entries in the boot menu. As of June 20, 2011 with the release of EasyBCD 2.1, it is no longer free for use in commercial environments which require the purchase of a paid license, however it remains free for home and non-profit use without limitations.
Ubiquity is the default installer for Ubuntu and its derivatives. It is run from the Live CD or USB and can be triggered to run from the options on the device or on the desktop of the Live mode. It was first introduced in Ubuntu 6.06 LTS "Dapper Drake". At program start, it allows the user to change the language to a local language if they prefer. It is designed to be easy to use.
Windows Setup is an installer that prepares a computer for a Microsoft Windows installation by allowing the user to pick installation settings and copying the files to the drive.
Ventoy is a free and open-source utility used for creating bootable usb media storage device with files such as .iso, .wim, .img, .vhd(x), and .efi files. Once Ventoy is installed onto a USB drive, there is no need to reformat the disk to update it with new installation files; it is enough to copy the .iso, .wim, .img, .vhd(x), or .efi file(s) to the USB drive and boot from them directly. Ventoy will present the user with a boot menu to select one of these files.