I recently built myself a desktop for personal use, and initially installed Arch Linux as my primary os (on an NVME drive), being a bit of a gamer I eventually came to the conculsion that I needed a Windows instillation too. I installed Windows 10 to a 500gb partition on my HDD (my secondary drive).

Tired of manually switching boot order in the BIOS whenever I needed to use windows I've recently attempted to make grub boot windows as well, this is where my problem begins.

Grub only shows a boot entry for arch, although os-prober returns the windows boot manager location. I've disabled fast boot and tried making manual entries for grub, still it only shows Arch for boot options no matter what I do before running install-grub (even to /dev/sda and /dev/nvme0n1 sequentially).

Partition tables (fdisk -l output):

Disk /dev/nvme0n1: 232.9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 1412B5DB-A22B-4957-B915-EC6B912D8833

Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1002048 1000001 488.3M EFI System
/dev/nvme0n1p2 1003520 34557948 33554429 16G Linux swap
/dev/nvme0n1p3 34557952 488397134 453839183 216.4G Linux filesystem

Disk /dev/sda: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: BF345208-15FD-454F-8252-9963AC133C5C

Device Start End Sectors Size Type
/dev/sda1 2048 34815 32768 16M Microsoft reserved
/dev/sda2 34816 524290047 524255232 250G Microsoft basic data
/dev/sda3 524290048 5860533134 5336243087 2.5T Linux filesystem

One weird thing is in BIOS, it states the windows boot entry as being on my NVME drive, which I'm assuming Windows detected as an ESP and automatically installed its boot manager to.


So update-grub is a Debian thing, Arch uses grub-mkconfig, which I can run succesfully, and the following is part of the output:

BEGIN /etc/grub.d/30_os-prober

Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class >os $menuentry_id_option 'osprober-efi-CAB4-D072' { insmod part_gpt insmod fat if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root CAB4-D072 else search --no-floppy --fs-uuid --set=root CAB4-D072 fi chainloader /EFI/Microsoft/Boot/bootmgfw.efi }

END /etc/grub.d/30_os-prober

Yet when I boot from either the "arch" or "grub" boot options (both on my NVME drive) from the BIOS, the only grub entry is still arch.

  • Do you have enabled UEFI in your system? And are the boot drives in GPT partitioned table?
    – Biswapriyo
    Aug 29, 2017 at 20:45

2 Answers 2


Try sudo update-grub, if you haven’t already.

I always forget to do that... ;)

  • Also, running install-grub will overwrite your previously made changes to grub if done on the same disk... Aug 29, 2017 at 22:20
  • I've been using install-grub because update grub returns command not found, possible fix there?
    – Sam P
    Aug 29, 2017 at 23:31
  • @SamP perhaps this answer: askubuntu.com/questions/418666/update-grub-command-not-found/…
    – El8dN8
    Aug 29, 2017 at 23:34
  • on Arch it's grub-mkconfig
    – Sam P
    Aug 30, 2017 at 0:22

Using this command on Arch added Windows 10 to grub alongside Arch.

grub-mkconfig -o /boot/grub/grub.cfg "$@"
  • Please explain how this command line solved the problem.   Do not respond in comments;  edit your answer to make it clearer and more complete. Aug 30, 2017 at 4:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .