Windows 10 dual boot gives unknown file system

Hello,

I am a new user of EndeavourOS enjoying my journey so far.

However, today I noticed I may have (hopefully temporarily) broken my dual boot setup with Windows 10.

I am running everything from one single SSD.

Previously I had a working dual boot setup with Windows 10 and Manjaro using grub. Now I installed EndeavourOS on the partition where Manjaro used to be, using the systemd-boot option. Unfortunately, I did not check right away if my Windows was still bootable and was just fine with it showing up in the boot menu.

Today (after a little more than a week) I wanted to boot into Windows and get a β€œunknown file system” error and would be allowed to enter grub rescue commands.

Now the question is, how to fix my dual boot setup.

I took a look with bootctl and got a list of the following boot loaders

Boot Loaders Listed in EFI Variables:
        Title: Linux Boot Manager
           ID: 0x0001
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/79ebeaa7-a7b0-4796-bcc7-16c8293f0e0b
         File: └─/efi//EFI/systemd/systemd-bootx64.efi

        Title: Manjaro
           ID: 0x0002
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/d8218602-c5b0-4af1-a70f-c09b84afabc2
         File: └─/efi//EFI/Manjaro/grubx64.efi

        Title: Windows Boot Manager
           ID: 0x0000
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/d8218602-c5b0-4af1-a70f-c09b84afabc2
         File: └─/efi//EFI/Microsoft/Boot/bootmgfw.efi

Apparently Manjaro still shows up there. But this could be another issue.

I also noticed in the output that it reports with Secure Boot: disabled. Maybe I switched that off during the installation process. I will try to enable secure boot. Maybe this helps.

I would start by removing Manjaro’s bootloader.

If you are using systemd-boot, you shouldn’t drop into Grub’s rescue

It won’t. EOS doesn’t support Secure Boot.

Also use tree commandline tool and post:

tree /efi

Well it sort of did. Enabling secure boot skipped the boot menu (as would be expected if EOS does not support it), but instead I was directly booted into Windows.

But yes, let’s start by getting rid of Manjaro.

Here is the output of tree /efi:

/efi
β”œβ”€β”€ 1c863af57ebd4b68aeb31aa9a45e508f
β”‚   β”œβ”€β”€ 6.12.52-1-lts
β”‚   β”‚   β”œβ”€β”€ initrd
β”‚   β”‚   β”œβ”€β”€ initrd-fallback
β”‚   β”‚   └── linux
β”‚   └── 6.17.2-arch1-1
β”‚       β”œβ”€β”€ initrd
β”‚       β”œβ”€β”€ initrd-fallback
β”‚       └── linux
β”œβ”€β”€ EFI
β”‚   β”œβ”€β”€ BOOT
β”‚   β”‚   └── BOOTX64.EFI
β”‚   β”œβ”€β”€ Linux
β”‚   β”œβ”€β”€ Microsoft
β”‚   β”‚   β”œβ”€β”€ Boot
β”‚   β”‚   β”‚   β”œβ”€β”€ BCD
β”‚   β”‚   β”‚   β”œβ”€β”€ BCD.LOG
β”‚   β”‚   β”‚   β”œβ”€β”€ BCD.LOG1
β”‚   β”‚   β”‚   β”œβ”€β”€ BCD.LOG2
β”‚   β”‚   β”‚   β”œβ”€β”€ bg-BG
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi
β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi
β”‚   β”‚   β”‚   β”œβ”€β”€ BOOTSTAT.DAT
β”‚   β”‚   β”‚   β”œβ”€β”€ boot.stl
β”‚   β”‚   β”‚   β”œβ”€β”€ cs-CZ
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ da-DK
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ de-DE
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ el-GR
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ en-GB
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ en-US
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ es-ES
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ es-MX
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ et-EE
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ fi-FI
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ Fonts
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ chs_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ cht_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ jpn_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ kor_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ malgun_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ malgunn_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ meiryo_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ meiryon_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ msjh_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ msjhn_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ msyh_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ msyhn_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ segmono_boot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ segoen_slboot.ttf
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ segoe_slboot.ttf
β”‚   β”‚   β”‚   β”‚   └── wgl4_boot.ttf
β”‚   β”‚   β”‚   β”œβ”€β”€ fr-CA
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ fr-FR
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ hr-HR
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ hu-HU
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ it-IT
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ ja-JP
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ kd_02_10df.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kd_02_10ec.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kd_02_1137.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kd_02_14e4.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kd_02_15b3.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kd_02_1969.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kd_02_19a2.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kd_02_1af4.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kd_02_8086.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kd_07_1415.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kd_0C_8086.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kdnet_uart16550.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ kdstub.dll
β”‚   β”‚   β”‚   β”œβ”€β”€ ko-KR
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ lt-LT
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ lv-LV
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ memtest.efi
β”‚   β”‚   β”‚   β”œβ”€β”€ nb-NO
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ nl-NL
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ pl-PL
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ pt-BR
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ pt-PT
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ qps-ploc
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ Resources
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootres.dll
β”‚   β”‚   β”‚   β”‚   └── de-DE
β”‚   β”‚   β”‚   β”‚       └── bootres.dll.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ ro-RO
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ ru-RU
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ SecureBootRecovery.efi
β”‚   β”‚   β”‚   β”œβ”€β”€ sk-SK
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ sl-SI
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ sr-Latn-RS
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ sv-SE
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ tr-TR
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ uk-UA
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   └── bootmgr.efi.mui
β”‚   β”‚   β”‚   β”œβ”€β”€ winsipolicy.p7b
β”‚   β”‚   β”‚   β”œβ”€β”€ zh-CN
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚   β”‚   └── memtest.efi.mui
β”‚   β”‚   β”‚   └── zh-TW
β”‚   β”‚   β”‚       β”œβ”€β”€ bootmgfw.efi.mui
β”‚   β”‚   β”‚       β”œβ”€β”€ bootmgr.efi.mui
β”‚   β”‚   β”‚       └── memtest.efi.mui
β”‚   β”‚   └── Recovery
β”‚   β”‚       β”œβ”€β”€ BCD
β”‚   β”‚       β”œβ”€β”€ BCD.LOG
β”‚   β”‚       β”œβ”€β”€ BCD.LOG1
β”‚   β”‚       └── BCD.LOG2
β”‚   └── systemd
β”‚       └── systemd-bootx64.efi
β”œβ”€β”€ loader
β”‚   β”œβ”€β”€ entries
β”‚   β”‚   β”œβ”€β”€ 1c863af57ebd4b68aeb31aa9a45e508f-6.12.52-1-lts.conf
β”‚   β”‚   β”œβ”€β”€ 1c863af57ebd4b68aeb31aa9a45e508f-6.12.52-1-lts-fallback.conf
β”‚   β”‚   β”œβ”€β”€ 1c863af57ebd4b68aeb31aa9a45e508f-6.17.2-arch1-1.conf
β”‚   β”‚   └── 1c863af57ebd4b68aeb31aa9a45e508f-6.17.2-arch1-1-fallback.conf
β”‚   β”œβ”€β”€ entries.srel
β”‚   β”œβ”€β”€ keys
β”‚   β”œβ”€β”€ loader.conf
β”‚   └── random-seed
└── System Volume Information

54 directories, 154 files

How would I figure out, whether grub or systemd-boot ist used actually? I am pretty sure I selected the latter during installation.

1 Like

Looks like systemd.

I guess I was a bit unclear before.

My saying that it won’t help was meant for the ability of having a dualboot system where both of the systems (EOS and Windows) would be bootable from the same bootmenu.

By turning on Secure Boot, you are impeding EOS to boot via its EFI boot entry in BIOS. That is why the next EFI boot entry (Windows’) is tried and that one boots.

You don’t need to explicitly choose systemd-boot in EOS installer as it is the default bootloader option.

The following shows you are using systemd-boot:

Title: Linux Boot Manager
ID: 0x0001
Status: active, boot-order
Partition: /dev/disk/by-partuuid/79ebeaa7-a7b0-4796-bcc7-16c8293f0e0b
File: └─/efi//EFI/systemd/systemd-bootx64.efi

└── systemd
β”‚       └── systemd-bootx64.efi

Also, you can check in /etc/fstab. The mountpoint for ESP and systemd-boot is /efi. In EOS, for Grub the mountpoint for ESP is /boot/efi.

If you want to have a functioning dualboot, you would need to disable Secure Boot.

And if you want to be able to boot both EOS and Windows from the ame boot menu, you need to create a .conf file for Windows in /efi/loader/entries.

Now I don’t know if EOS has any automation to do this post-install. However you could create one yourself by following this https://wiki.archlinux.org/title/Systemd-boot#Adding_loaders

But perhaps you don’t need to that anyways, because:

systemd-boot will automatically check at boot time for Windows Boot Manager at the location /EFI/Microsoft/Boot/Bootmgfw.efi, Apple macOS Boot Manager in firmware, UEFI shell /shellx64.efi and EFI Default Loader /EFI/BOOT/bootx64.efi, as well as specially prepared kernel files found in /EFI/Linux/. When detected, corresponding entries with titles auto-windows, auto-osx, auto-efi-shell and auto-efi-default, respectively, will be generated. These entries do not require manual loader configuration.

For now, just disable Secure Boot and make sure Linux Boot Manager is the first boot option in BIOS. Reboot and test.

My comment was a bit misleading. I think we are both on the same page. I was just happy I was able to boot Windows β€œsomehow” in the moment.

This is the exact setup, which caused the issue in the first place and brought me here. Anyway, I tried it again and got the same result: β€œunknown file system” and β€œgrub rescue”.

When digging through my BIOS searching the secure boot option, I noticed that the boot loaders were listed there: β€œLinux Boot Manager”, β€œManjaro” and β€œWindows Boot Manager”. Given your comment that grub should never show up when booting systemd and the plan to get rid of the Manjaro boot loader, I deactivated it in the BIOS. I figured that maybe the automatic detection process you mentioned (which works for me, because I do have a Windows 10 entry in the systemd boot menu without a config in /efi/loader/entries) picks up the Manjaro boot loader by accident. And indeed, after disabling the Manjaro thingy in BIOS Windows boots when I select the entry in the systemd boot menu. And after restarting and selecting EOS, I am back here in EOS.

Thanks a lot for standing me by.

EDIT:

I just double checked with bootctl. Manjaro is still listed there. How would I get rid of the EFI entry to avoid any confusions once and for all?

1 Like

Run efibootmgr to find out its boot number.

Run:

sudo efibootmgr --bootnum xxxx --delete-bootnum

replace xxxx with manjaro’s boot order number.

Exercise caution not removing any other by mistake.

Title: Manjaro
ID: 0x0002
Status: active, boot-order
Partition: /dev/disk/by-partuuid/d8218602-c5b0-4af1-a70f-c09b84afabc2
File: └─/efi//EFI/Manjaro/grubx64.efi

Also, do you still have leftover boot folder/files from Manjaro? There is a reference to a a partition with PARTIUUID d8218602-c5b0-4af1-a70f-c09b84afabc2 in the output from bootctl.

That would be ESP from your Windows. Check inside and remove anything related to Manjaro.

1 Like

Manjaros boot entry is deleted by efibootmgr.

I mounted the partition in question (100 MB FAT32) and deleted the Manjaro directory there.

Booting to Windows and EOS still works fine.

So I think I am all set for now. Thanks again.

I am scared as on my old days I might start understanding UEFI after growing up with a regular BIOS :smiley:

Now the next big question: Which of the replies is the actual solution and should be marked accordingly?

1 Like

The one above your latest one, if you please :blush:

PS. glad you got the issue sorted out and welcome to EOS’ forum!

You are right. I was first thinking the solution was spread out. But the others are just leading to the actual solution (e.g. my disabling of the Manjaro boot loader). The final deletion of the Manjaro boot loader is the solution as such :+1:

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.