Dual-Booting
For General Users
The idea of having both Windows and Linux installed on a computer and being able to select one at boot time appeals to many who are trying, or migrating to, Linux. Outcome is very dependent on version of Windows
Windows 10
Should not be attempted by General Users
- although viable procedures have been reported for computers having existing Win 10 installations
- Windows 10 does not boot immediately following installation of Linux and requires Getting Technical to rectify
The only viable alternative for General Users appears to be using a live Linux distribution see Evaluation
Windows 8.x
The better known Linux distributions will set this up automatically, during installation to a single hard disk drive in the computer
- generally works reliably
Windows < 8
Although this installation is reliable, as per Windows 8.x above, 'It is likely to cease functioning following the next update of Windows and restoring dual-boot requires Getting Technical
Getting Technical
New Windows 10 Computers
It might be unwise to simply delete/overwrite Windows. Some manufacturers provide no alternate mechanism for upgrading firmware (UEFI - which is "work in progress")
Such computers invariably have UEFI firmware and "secure boot" enabled. The following link provides general guidance on this process
http://www.rodsbooks.com/linux-uefi/
Key preliminary steps are:
- from Windows
- disable "Fastboot"
- disable "Virtual Memory"
- delete swapper.dat or equiv
- (optionally) shrink Windows 10 main partition - see below for link to procedure
- some Linux (openSUSE) will do same as part of their standard install procedure
- enter UEFI setup (usually F2 early in the boot process) and
- disable "Secure Boot" - it will be mandatory to add a password to UEFI setup
- write this password down, in clear text and store in several locations - having the manufacturer reset it could be expensive
- ensure that boot mode is "UEFI"
- do not change to "Legacy/BIOS" mode
- as a reliable confirmation that the machine is booting in UEFI mode:
- download the "rEFInd" dotISO or dot.IMG file from the above site and make CD or USB media from it
- boot from this CD/USB - invoking F12 at early stage boot/reboot should ensure this
- display of rEFInd's distinctive series of icons confirms that the machine is in UEFI boot mode
- failure to boot the CD/USB at all confirms that the machine is in Legacy/BIOS boot mode - and must be reconfigured
- disable "Secure Boot" - it will be mandatory to add a password to UEFI setup
- do a trial boot of your preferred Linux installation medium
- if it fails to boot, then it is probably configured for Legacy/BIOS mode only and is unsuitable
- as of 2016, mainstream Linux and many smaller distro configure their dotISO to work in either UEFI or Legacy/BIOS boot.
Here are two links to successful procedures for UEFI & BIOS computers. Although oriented to Ubuntu, analogous steps should work with other Linux:
http://www.everydaylinuxuser.com/2015/11/how-to-install-ubuntu-linux-alongside.html
http://www.everydaylinuxuser.com/2015/11/how-to-install-ubuntu-linux-alongside_8.html
Win 10 will probably need to be shrunk:
http://www.everydaylinuxuser.com/2015/11/how-to-shrink-windows-10-to-make-space.html
A procedure that might work for openSUSE users is the latter's "instlux" routine. The key to this routine is that it firstly disables the Windows boot manager, that does not accommodate Linux. See:
https://en.opensuse.org/SDB:Instlux
Linux Mint 18
- invoke UEFI settings and disable "secure boot"
- although the procedure works, for major Linux distributions, without this change, it provides better long-term flexibility - see above link
- boot from Linux Mint USB/DVD
- select (the somewhat confusingly named) installation option 1 "install in boot partition alongside Windows"
- on first reboot, Windows only is bootable
- reboot, invoke UEFI settings again
- amend UEFI boot order to place Windows second (Ubuntu/Mint first)
- subsequent boots should now present a Grub 2 menu
- either Linux or Windows should be able to be selected and boot correctly
- any additional OS need to be included in the grub.cfg file for Mint
YMMV with other Linux distributions. Although installation is generally successful, one OS might not boot:
- invoking firmware level boot menu (often F2 on OEM computers or F11 on generic) should enable either to be booted
- as a last resort, Linux Mint could be installed and then replaced with the preferred Linux.
Upgrades to Windows 10
Computers having UEFI Firmware
typically home computers that came with Windows 8.x or generic mainboards of the same era
- be aware that business-oriented computers of the same hardware era were often installed with Windows 7, but fall into this category
- many are currently (2016) being refurbished and re-sold by major retailers
Upgrade to this category of hardware is proving to be the most troublesome
Be aware that UEFI & BIOS firmware have many similar screens & settings. Check for this hardware as follows:
- invoke UEFI settings, at boot time
- if the opening UEFI page contains reference to a "UEFI version number" then the computer has UEFI firmware and falls into this category
Computers having BIOS Firmware
This upgrade generally proceeds without problems. The following specific combination of factors has been tested:
if existing Windows 7 and firmware is BIOS and partition table(s) are MBR(DOS) Then it is reported that an upgrade to Windows 10 can dual-boot. Examples include:
Desktop running separate HDD for Linux and Windows.
- BIOS normally boots to the Linux HDD, which is running OpenSUSE Leap42.1
- and from which Windows 10 can be booted via GRUB 2
- During Windows upgrades, disconnect Linux HDD and set BIOS to boot to Windows HDD.
Although not tested, it seems likely that the above would also work with the Linux (only) HDD partitioned GPT
Laptops & netbooks running Ubuntu 16.4 (YMMV with derivatives)
- Basic setup is for BIOS to boot to the Windows bootloader.
- GRUB 2, must be installed in the partition containing Linux. (most installers will do that)
- A free utility called EasyBCD is required to modify the Windows bootloader to include entries for other operating systems
- this utility must be rerun following every Windows upgrade.
One of the many videos on this subject is https://www.youtube.com/watch?v=9dwwSSg-kJM
Upgrades to Windows #> 8.1
to be advised
Issues can often be minimised by having additional hard disk(s) in the computer. This is not an expensive option, given current HDD prices.
Upgrades to Windows 7
There is one known issue when Windows is on either a separate HDD or same HDD. This also prevents Linux from booting before the Win 10 upgrade. Different workarounds are given in the link:
USB Drive
Pros
- easily added
- no change to internal HDD
Cons
- Linux relies on the absolute order of storage devices detected by the computer's firmware
- plugging in (say) a uSB memory drive, may upset the booting
- contermporary Linux avert this by allocating a unique UUID to the drive and booting/mounting via that ID
Internal HDD
- ensures permanent order of drives
Installation
- mainstream Linux will allow installation to a second hDD
- the bootloader must also be installed to the second HDD, in this technique
- can require "drilling down" the installation options
Selecting Boot Device
The selection of "drive" and hence OS is done at POST stage and depends on type of firmware in the computer
see Booting from Removable Media