Multi-booting Woes With EasyBCD

Author: Ho Yin Cheng

/

Created: January 3, 2018

If you’ve recently tried to boot into a new Linux distribution install using EasyBCD (so you can multi-boot with Windows), but failed and landed at a grub> prompt, then this post is for you my friend.

Quick Intro

I’ve been using EasyBCD for a long time on my desktops (7+ years) and recently wanted to start using Linux again. My last install (that is still fully functional and bootable, just not updatable) was a Linux Mint Debian Edition one from 6-7 years ago (yes LMDE the original, not LMDE 2); last touched in 2011. My primary OS (on said desktop) is Windows 7, and I used EasyBCD to boot into my Linux installs (used to be multiple) which are on a second HDD. All of this worked fine for years.

The problem I ran into this week was a very tricky one that has consumed all my free time for the past two days. It took a ton of reading, but I was finally able to figure out what the root cause of the issue, test my hypothesis, and then confirm it. I’ve sent an email to NeoSmart but haven’t written up a formal bug report. I’ll try to do so at some point. For now, blog posts are a lot easier to write because I can be informal here.

The Bug

Problem

If you install any new (not sure how new since I haven’t dived into release note histories yet; I’ll update when I do) Linux distribution, EasyBCD will not be able to detect or boot into the partition using any available method. Instead, you will get dropped to a grub> prompt.

You will also not be able to use the available GRUB commands (selecting root, kernel, etc.) to boot into the new Linux install as GRUB4DOS will be unable to read the partition. However, you can select old Linux partitions that were working before and issue the correct GRUB commands to boot into them. For example, this let me boot into my old LMDE install:

1234
root (hd1,1)
kernel /vmlinuz root=/dev/sdb2
initrd /initrd.img
boot

Cause

Apparently, newer Linux distributions format ext4 with new feature flags that are not readable by EasyBCD’s GRUB2 or SYSLINUX versions nor is it readable by their GRUB4DOS implementation (NeoGRUB). This is because their code predates (last release 2015) these new ext4 features. So when GRUB attempts to read the partitions, it will fail and crash leaving you at the grub> prompt.

One such example of a problematic “unsupported” flag is 64bit support. This has been added by default since v1.43 of e2fsprogs (released on May 17, 2016). Disclaimer: I have yet to test other new flags.

Don’t blame EasyBCD though as this is an issue that affects others as well as you can see others asking for this change to be reversed. [1] [2]

Reproduction

You can reproduce this issue by installing or simply formatting a partition via any newer Linux distribution and then trying to boot into it with EasyBCD. In my case, I tested out:

You can also reproduce this on very old Linux distributions such as my LMDE install by running:

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

It will finish but also throw an error when trying to read the partition with the newer Linux install. If you reboot and try to boot into the distribution via this older GRUB2, you’ll find that the menu entry doesn’t work even though a new one was written. This is essentially what is happening with EasyBCD no matter what boot method you try to use (GRUB2 or NeoGrub).

Validation

You can then validate that the flags are the issue by using an old distribution, such as my LMDE install, that has a very old version of e2fsprogs. Versions from well before v1.43 don’t support many of these flags and any use of their tools on a “new” partition will throw out errors such as this:

e2fsck: Get a newer version of e2fsck!

Very old versions of GParted will also give warnings after scanning drives and tell you that those newer ext4 partitions have unsupported feature flags enabled.

Fix

For EasyBCD, none that I know of. I went through forum posts and even downloaded the latest available version (v2.3) and the bug still exists. EasyBCD just isn’t capable of booting into any Linux distros that format ext4 with the new feature flags.

Workarounds

For now, I’m able to do the following to work around this:

Alternatively (untested), you can boot into the Live CD, format from there, and then use e2fsprogs to remove any problematic feature flags. (related link about removing flags from ext3)

EasyBCD will now continue working as it did before with me being able to boot into my target Linux distribution. The only downsides are the lack of the new ext4 features ((doesn’t seem to be that big of deal](https://bbs.archlinux.org/viewtopic.php?id=217482)) and having to repeat this procedure every time I want to install a new Linux distro.


Copyright © 2011-2020 Ho Yin Cheng