How-to dual-boot, triple-boot or multi-boot Linux with Windows in a simple way and be happy…
In this instruction I will show you how easy it is to have several Linux systems installed on one computer together with for example Windows 11. The configuration is so simple a ten year old child can do it.
BACKGROUND
Ubuntu and all Linux systems based on Ubuntu (such as Linux Mint) uses Grub2 as boot manager. Also Debian and most other Linux systems use Grub2. Grub2 works differently from the old Grub Legacy.
You may want to begin with studying my Grub configuration (/boot/grub/grub.cfg) on one of my computers on which I have twenty-one (21) Linux systems installed together with Windows 11. That is as of 241210.
UEFI BIOS and non-UEFI BIOS
The Extensible Firmware Interface (EFI) or its version 2.x variant, Unified EFI (UEFI) is a firmware type that is widespread on recent computers, especially those more recent than 2010 – Ubuntu wiki.
Configuring Grub2 – Example for non-UEFI BIOS computers
One of my computers, an Acer Aspire 5750G from 2010, has a 750 GB hard drive and an external USB hard drive of 1000 GB. On that computer I have Windows 11 and twelve (12) different Linux systems installed. Of those twelve systems three are Android-x86 systems (AndEX Nougat and AndEX Marshmallow). Below I will describe step by step how I configured Grub2 in the easiest way possible.
1. The computer was delivered with Windows 7 (now updated to Windows 11) preinstalled on /dev/sda2 and /dev/sda3. I immediately started up my computer from a Linux Mint Live DVD. Using GParted, I created seven new partitions on the internal hard drive and three on the external USB hard drive. After that I installed Mint on /dev/sda7 and Grub2 in MBR at the same time as the installer also suggested. Then I restarted my computer and checked that Mint (and Windows) could be started. Everything worked (as expected) fine. See the screenshots below showing how my partitioning looks like now.
The internal hard drive partitions
Note the 4 GB SWAP partition on /dev/sda6
The external USB drive partitions
2. Then it was time to install Arch Linux on /dev/sda8. When the installation prompted installation of Grub2 during installation, I chose to install Grub2 on /dev/sda8. Such an installation of Grub2 does not affect the existing Grub2 installation in MBR. I did it just the same to find out “start data” for Arch Linux. I then read these start data from Mint in the /mnt/sda8/boot/grub/grub.cfg file.
3. After that I started Mint on /dev/sda7 again. Now it was time to get a real “multiboot computer” using Grub2. This is how I did it:
A) In /etc/grub.d I deleted all files except 00_header, 05_debian_theme, 06_mint_theme, 40_custom and README. Said folder then looked like this.
B) I edited the /etc/grub.d/40_custom file to look like this. Note that this is how my 40_custom file looks like now when I have installed totally twelve Linux systems. The start data for Arch Linux (see above) was already fixed by looking at the /mnt/sda8/boot/grub/grub.cfg file. I could do it in a similar way when I installed the other eleven Linux systems.
Since this instruction is a bit old (from July 7, 2017) you can also have a look at the 40_custom file as it is today (240608) on one of my other computers – link.
C) Finally, I ran the update-grub command. Then the /boot/grub/grub.cfg file (which is the file Grub2 “takes into account” at boot) was created/changed. This file (grub.cfg) should never be edited manually. Instead, edit the file 40_custom, as I showed above. Always use Leafpad or Mousepad (or a similar simple editor) when editing 40_custom. Never LibreOffice Writer or Word or the like of them. Study my present grub.cfg file. When I now start up my Acer Aspire the boot screen look like this.
My BIOS settings on my Acer Aspire look like this.
Configuring Grub2 – Example for UEFI BIOS computers
On another computer (laptop) Lenovo Z50 from 2015 I have Windows 10 installed together with three Linux systems. Ubuntu 24.04 and two Android-x86 systems. Since Windows 10 was installed in UEFI mode I also had to install Ubuntu 24.04 in UEFI mode to be able to configure Grub2 the way I describe above. I went into BIOS and changed the settings to look like this.
When I went into the boot menu in BIOS I could choose my USB stick. In this case Kingston DataTraveler – watch this screenshot.
So I started up Ubuntu 24.04 from the USB stick and installed it on a partition I had created in advance using GParted. Since my Lenovo already had a ESP (EFI System Partition), which was created when Windows was installed, I installed Grub2 onto that partition. When I now start up my Lenovo the boot screen looks like this. (You can of course install many more Linux systems if you like. Just edit /etc/grub.d/40_custom the way I describe above).
IMPORTANT: Identifying if the computer boots the Ubuntu DVD/USB stick in UEFI mode
If the BIOS is set up to boot the DVD/USB stick in UEFI mode, then you will see the screen below.
If the BIOS is NOT set up to boot the CD in UEFI mode, or if the disk is not 64-bit, then you will see the screen below.
(ExTiX is based on Ubuntu)
Grub2 bootsplash
One of the benefits of Grub2 is that you can have a nice high resolution image as boot splash/grub boot image. The image may have the same size as the resolution on your screen can handle, for example 1366×768. It is common with a regular image in jpg, png or tga format. Just place the image in /boot/grub and run the update-grub command. If you get the answer that the image is found in /boot/grub it will work. If not, try editing the /etc /default/grub file and add the line
GRUB_BACKGROUND = “/boot/grub/MyNicePicture.png”
Then run the update-grub command again (and restart the computer).
Have a look at my /etc/default/grub file.
Change the text – font and size – which Grub2 shows at boot
Run the following command:
sudo grub-mkfont –output=/boot/grub/DejaVuSansMono.pf2 –size=24 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
(Maybe you’ll need to run the command (sudo apt-get install ttf-dejavu first). Then edit the /etc/default/grub file and add the following line.
GRUB_FONT=/boot/grub/DejaVuSansMono.pf2
Run the sudo update-grub command again. After rebooting, the Grub2 boot menu will surely look better (depending on how your boot image looks like).
Grub theme
Instead of a Grub background picture you can choose to install a Grub theme. Get one at Gnome-look.org and extract it to /boot/grub/themes. You may have to create the folder themes first. Then just add a line to /etc/default/grub. Example:
GRUB_THEME=/boot/grub/themes/CyberRe/theme.txt
Then run the command sudo update-grub. With the theme CyberRe the boot screen can look like this.
If something goes wrong…
Beware of trying to upgrade Windows 10 to Windows 11 unless all the requirements are met! If you do that you may destroy your boot configuration and not be able to start any OS. Not Windows or any Linux system! To fix this problem you can/shall boot up the computer from Windows 10 installation DVD/USB. If you don’t have it you can download one here. Then follow the instructions under Fix MBR via Command Prompt Windows 10/11 on this site. After that you should be able to start Windows 11 again. To get your old multiboot/Grub2 configuration back you must boot up your computer from a Linux live DVD/USB and chroot into the Linux system where you have Grub installed and reinstall Grub. Be sure to install Grub onto the same EFI partition as Windows 11 uses. Now check the boot lines for Windows 11. They can look like this:
menuentry ‘Windows 11 Pro’ {
search –fs-uuid –no-floppy –set=root 6A4B-8364
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
How to reinstall Grub on an EFI partition
After a BIOS upgrade or after a BIG Windows 11 upgrade it can happen that you can’t start your Linux systems anymore. I.e. your Grub installation/menu is gone! Don’t worry! There is a solution for such problems. I found the solution here when I was in trouble. Nicolás is the man. This is what you shall do:
Start up your computer from a Linux live DVD. I used ExTiX 23.11.
Be sure to boot in EFI mode.
Run the following commands:
1) sudo mount /dev/nvme0n1p6 /mnt
2) sudo mount /dev/nvme0n1p1 /mnt/boot/efi
3) for i in /dev /dev/pts /proc /sys /sys/firmware/efi/efivars /run; do \
sudo mount -B $i /mnt$i; done
4) sudo chroot /mnt
5) grub-install ‐‐target=x86_64-efi /dev/nvme0n1
6) grub-install ‐‐recheck /dev/nvme0n1
7) update-grub
8) exit &&
sudo umount /mnt/sys &&
sudo umount /mnt/proc &&
sudo umount /mnt/dev/pts &&
sudo umount /mnt/dev &&
sudo umount /mnt
NOTE: nvme0n1p6 = the Linux system where Grub is installed
nvme0n1p1 = the EFI partition
nvme0n1 = disk
(You shall of course change nvme0n1p6, nvme0n1p1 and nvme0n1 to suit your computer. Change it to for example sda6, sda1 and sda). Use GParted to find out the correct partition names. GParted is installed in ExTiX and most other Linux systems.
About Grub Customizer
There is a Linux tool called Grub Customizer. It can be used to change the Grub boot order, change the time-out, hide selected operating systems, hide Grub screen entirely, change the background screen, theme and more. In Ubuntu you can install it with sudo apt install grub-customizer. When running Grub Customizer it can look like this.
Or like this.
About DiskGenius
There is also a Windows program called DiskGenius. Compared with the Windows built-in tools (Disk Management and Diskpart), DiskGenius not only comes with many functions of these two tools, such as creating/deleting/formatting … partitions, but also copes with many tasks that these two tools cannot perform, such as migrating Windows 10/8/7, recovering lost partitions and data, backing up disks and partitions. When running DiskGenius it can look like this.
######################################
Good luck!
Read about my Android-x86 Systems – 11, 10, Pie, Oreo, Nougat, Marshmallow, Lollipop and KitKat at andex.exton.net – latest is AndEX 11 (with GAPPS), AndEX 10 (with GAPPS) and AndEX Pie 9.0 (also with GAPPS)!
and about my Android 14, 13, 12, 11, 10, Pie, Oreo, Nougat, Marshmallow and Lollipop versions for Raspberry Pi 5, Pi 4 and Pi 3/2 at raspex.exton.se – latest is RaspAnd 14 (with GAPPS), 13 and 12 (without GAPPS), RaspAnd 11 (with GAPPS) and RaspAnd Oreo 8.1 (also with GAPPS)!