[Tutorial] Multiboot: how to avoid problems

Write tutorials for Linux Mint here
More tutorials on https://github.com/orgs/linuxmint/discu ... /tutorials and (archive) on https://community.linuxmint.com/tutorial
Forum rules
Don't add support questions to tutorials; start your own topic in the appropriate sub-forum instead. Before you post read forum rules
Post Reply
User avatar
MikeNovember
Level 7
Level 7
Posts: 1856
Joined: Fri Feb 28, 2020 7:37 am
Location: Nice, Paris, France

[Tutorial] Multiboot: how to avoid problems

Post by MikeNovember »

Hi,

This forum is full of users reporting problems with multiboot:
- Windows is installed, then Linux is installed and Windows does not boot any longer,
- Linux boot is not detected, no GRUB menu, boot from BIOS works,
- [...]

This tutorial is here to explain how this problems arrive, and what is the good way to have a working multiboot.

Warning: don't attempt to use multiboot if your system does not allow to have at least two disks, and / or if disks cannot be removed and installed to another slot.

1) The GRUB menu

A short reminder, how to have a GRUB menu in Linux Mint if you don't see it:

- See it once, at boot time:
* if your system uses BIOS, press and hold the shift key while the system is booting,
* if your system uses UEFI, press and hold the ESC key while the system is booting.
Note that you may have conflicts with your computer, Esc might be used to show the BIOS / UEFI menu.

See it permanently (preferred solution):
* once your system is running, edit your GRUB file, type in a terminal:

Code: Select all

sudo nano /etc/default/grub file
in front of the line "GRUB_TIMEOUT_STYLE=hidden", add a "#" character to comment it,
add a non zero value at the end of the line "GRUB_TIMEOUT=" (as an example, if the value is 5, GRUB menu will display during 5 seconds),
save your modified GRUB file by "CTRL+O" and leave nano by "CTRL+X".
Here is an example GRUB file, edited lines are in BOLD:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=5

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
* Update GRUB:

Code: Select all

sudo update-grub
* reboot your system, you will have a GRUB menu!

2) Multiboot Windows / Linux Mint on a system using BIOS

In order to have a GRUB menu allowing to choose between Windows and Linux Mint, Linux Mint should be "in the first position":
- on a single disk: Linux Mint on the 1st partition, Windows on the second one
- with two disks: Linux Mint on disk "0", Windows on disk "1", or Linux Mint disk set in the BIOS as the 1st disk to boot.

With a BIOS system, GRUB menu will be written on Linux Mint disk / partition, and nothing will be written on Windows one.

If Linux Mint is in the 1st position, GRUB menu will show at boot (maybe after having commented the line with "hidden", see § 1). Of course, if Windows is in the first position, the GRUB menu will not be shown!. In that case, however, entering your system BIOS at boot (generally by pressing and holding "Esc") will allow you to choose as boot the disk where Linux Mint is installed and to launch it.
If necessary update GRUB sudo update-grub.

3) Multiboot Windows / Linux Mint on a system using UEFI

Ubuntu (and, as a consequence, Linux Mint) version of GRUB has a BIG LARGE BUG: it writes itself on the first UEFI partition it sees, whatever the partition, Windows or Linux.

As a consequence, here is the most frequent multiboot failure: Windows is installed on your system, you add Linux Mint (on a partition or on a separate disk), GRUB menu is written over the 1st UEFI partition, Windows one; it seems to work, at boot you will have a GRUB menu offering the choice between Windows and Linux Mint; but, at next Windows version update (every 6 months or year), Windows will write a new UEFI, and GRUB menu will disappear, and Linux Mint boot will become impossible.
And this is in the best case, writing GRUB on Windows UEFI might also prevent Windows to work.

With UEFI there is only one way to install multiboot: just read the following paragraph.

4) Multiboot Windows / Linux Mint that always and definitely works

This is a multiboot that works with BIOS or UEFI.
Windows is installed on a system, and your computer allows to have at least two disks.

* shut down your system, remove Windows disk from your system,
* add a new disk on your system, in slot "0", where your Windows disk was; install Linux Mint, enable GRUB menu (see paragraph 1), shut down your system,
* once done, install your windows disk on your system, in the second position, slot "1",
* boot your system, you should see a GRUB menu offering the choice between Windows and Linux Mint; if not, boot on linux Mint, and update GRUB:

Code: Select all

sudo update-grub
* at next boot, your GRUB menu will offer the choice between Windows and Linux Mint.
If your system allows two disks with different and incompatible hardware that cannot be exchanged, remove Windows 10 disk while you install Linux Mint on the second, then insert Windows 10 disk again and set your Linux Mint disk as boot disk in the UEFI / BIOS.
If necessary update GRUB sudo update-grub.

This will work for both BIOS and UEFI:
- BIOS: since Linux Mint disk is in first position, GRUB menu will be automatically launched
- UEFI: since Linux Mint disk is in first position, GRUB menu will be automatically launched; since GRUB has not modified Windows UEFI, Windows will be able to update its UEFI without any problem.

5) My advice: don't use multiboot

Even if multiboot can work, it is an old and obsolete technology; it may break your system; and it does not allow using Windows and Linux Mint apps at the same time...

Several technologies should be preferred:

With Linux host:
- use a virtual machine, you will be able to run any Windows app; use qemu-kvm (Boxes is an easier way, and its flatpak version gives the best isolation between Linux and Windows), Virtual Box or VMware Workstation Player, in which you will install Windows (of course you need a Windows license, but you can buy a legal OEM or second-hand one for some $10 to $15).
- if you need some Windows apps only, use Wine: the best and simplest way to use Wine is Bottles, with its flatpak version giving the best isolation between Windows apps and Linux.

With Windows host: use Virtual Box or VMware Workstation Player, in which you will install Linux Mint.
With Windows 10 Pro or Windows 11 Pro hosts: use WSL; though Linux Mint is not officially available (Ubuntu is), there are available tutorials explaining how to use Linux Mint in WSL.

Regards,

MN
_____________________________
Linux Mint 21.3 Mate host with Ubuntu Pro enabled, VMware Workstation Player with Windows 10 Pro guest, ASUS G74SX (i7-2670QM, 16 GB RAM, GTX560M with 3GB RAM, 1TB SSD).
Post Reply

Return to “Tutorials”