Arch Linux - Grub UEFI installation example along side Windows 10 "dual boot"

Note: I often have links set to open in a new tab & try to indicate that using the mouse hover popup.

Lenovo Ideapad 100-15IBY


Note: It is assumed that the computer is prepared with the "Secure Boot" disabled in the BIOS and the "Fast Startup" disabled in Windows 10 Power Settings.

Booted into the Arch installation media (usb flash drive) I can use parted's print function to list partitions.

# parted /dev/sda print
Model: ATA WDC WD5000LPCX-2 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size    File system     Name                          Flags
 1      1049kB  274MB  273MB   fat32           EFI system partition          boot, esp
 2      274MB   290MB  16.8MB                  Microsoft reserved partition  msftres
 3      290MB   172GB  172GB   ntfs            Win10 partition               msftdata
 5      172GB   280GB  108GB   ext4
 6      280GB   284GB  4312MB  linux-swap(v1)
 7      284GB   349GB  64.4GB  ext4
 8      349GB   499GB  150GB   ntfs                                          msftdata
 4      499GB   500GB  1049MB  ntfs            Basic data partition          hidden, diag

I can see that there is an esp directory in /dev/sda1 ... I can use "lsblk" to verify the partition layout

# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0   260M  0 part 
├─sda2   8:2    0    16M  0 part 
├─sda3   8:3    0 159.9G  0 part /mnt/win10
├─sda4   8:4    0  1000M  0 part 
├─sda5   8:5    0 100.5G  0 part /
├─sda6   8:6    0     4G  0 part [SWAP]
├─sda7   8:7    0    60G  0 part /mnt/lubuntu_part
└─sda8   8:8    0   140G  0 part /mnt/data_part
sdb      8:16   1   1.9G  0 disk 
├─sdb1   8:17   1   724M  0 part /run/media/erfahren/ARCH_201604
└─sdb2   8:18   1    40M  0 part 
sr0     11:0    1  1024M  0 rom  

My Arch install is on /dev/sda5 (only one partition for it, there's an Ubuntu installed on /dev/sda7)
so I mount the Arch partition to the installer's /mnt ...

# mount /dev/sda5 /mnt

... and use arch-chroot to change root:

# arch-chroot /mnt /bin/bash

once connected to the internet I can install grub, efibootmgr, & os-prober

# pacman -S grub efibootmgr os-prober

create a /boot/efi directory in the Linux file system to access the drive's "ESP" partition:

# mkdir -p /boot/efi

and now mount the ESP partition /dev/sda1 to it ...

# mount /dev/sda1 /boot/efi

install Grub ...

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch

and create the grub.cfg ...

# grub-mkconfig -o /boot/grub/grub.cfg

I can now unmount /dev/sda1 & exit the chroot; unmount /dev/sda5 from the install media, & reboot.


* Reference: GRUB article on the Arch Wiki




with an elevated command prompt in Windows 10

bcdedit /set {bootmgr} path \EFI\arch\grubx64.efi

I also changed the boot selection to the Arch GRUB entry in the Windows 10 Advanced options > Startup Settings.
There was a new selection for it in the BIOS boot options section too. (Microsoft Windows updates will sometimes revert the changes to its default.)


Back to Top