EasyBCD 2.0.0.99 NeoGrub: Cannot fint GRLDR

Cefur

New Member
#1
Hi!

While trying to use neogrub I get the following error (see attached jpg).

All I did was the following.
Installing Win 7 Ent x64.
- Set 100GB for installation partition (another 100MB (hd0,0) partition was also automatically created).
- Create another partition for data (rest of the space on HD- hd0,2).
- Installed Win 7 Ent x64 on 100GB partition (hd0,1).

After successful installation I installed EasyBCD and Neogrub. Set the menu.lst. Restarted the machine.

After that I get to the menu from which I can select windows 7 install or neogrub, as expected. If I choose windows 7 everything works ok, but if I select neogrub I am "greeted" with attached screen (instead of neogrub menu).

Do I need to set anything special in the EasyBCD to make this combination working?

P.S.: On hd1 is some "linux".
 

Attachments

mqudsi

Mostly Harmless
Staff member
#2
Hi Cefur,


I'm looking into it right now. Give me 5 minutes or so.
 

Cefur

New Member
#3
Wow! This is fast. I can wait 5 hours, NP. :smile:

If you need any other info, just let me know.

View Settings looks like this.
Code:
There are a total of 2 entries listed in the bootloader.

Default: NeoGrub Bootloader
Timeout: 10 seconds
EasyBCD Boot Device: C:\

Entry #1
Name: Windows 7
BCD ID: {current}
Drive: C:\
Bootloader Path: \Windows\system32\winload.exe

Entry #2
Name: NeoGrub Bootloader
BCD ID: {default}
Drive: C:\
Bootloader Path: \NST\NeoGrub.mbr
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#4
I can't reproduce it here. Try replacing C:\NST\NeoGrub.mbr with the one in the attached zip file.
 

Attachments

Cefur

New Member
#5
It works the same.

The only way for me to make it work is to force windows 7 enterprise x64 to install on first partition (there is no automatically created partition) - hd0,0. But with this, some windows 7 applications (like bitlocker) do not work.

So I am guessing this (this 100MB extra partition) is the main problem here. But if you cannot reproduce it, than there is basically no option for you to solve it. :shame:

Btw. the neogrub.mbr that you gave me is the same as the one installed with EasyBCD 2.0 b99.
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#6
No, that's not the problem. I have the hidden partition here, and it's not causing me trouble....
 

Cefur

New Member
#7
Hi!

I had a partial success.
I did the following test.
I copied /NST/* and /Neogrub to the hidden partition.

Result: I got to the neogrub menu, the linux started (from hd1) to load but then the screen went black. The menu.lst used normaly works, but maybe in this configuration needs to be changed. I will do some more tests and let you know, what I have found out.
 

mqudsi

Mostly Harmless
Staff member
#8
Great to hear. Let me know what happens.
 

Cefur

New Member
#9
Ok. Here is a summary.
End result is a working system. :lol::booyah:

But what needed to be done.
If I copied all the files to the hidden partition. I could set Drive: to C: or BOOT and I would get to neogrub menu. Previously would report an error if I would set to BOOT (since it could not find Neogrub.mbr). I did not do any more tests with BOOT setting but C: only (since it is a default setting).

So then I renamed NST (in hidden partition) and Neogrub (in C:\) to something else. After reboot everything was still "working", e.g. I was getting to the menu. So for my systems, the Neogrub must be in hidden partition to make it work. Can you make this "happen" during install?

The next problem was my script in menu.lst not working properly. After all images (kernel, ...) were loaded and system booted the screen went blank. After some testing I went to my other system (which works, I installed win 7 without hidden partition) and copied Neogrub from there (I installed some older EasyBCD beta there). And voila, I had a working system.

What was the difference in Neogrub. The last one is, if I am not mistaken, Grub4dos 0.4.5b, while the one which works for me is Grub4Dos 0.4.4 2009-06-20! Maybe some other would work too, but I had this one to test. So somethings changed in newer version that is not working for me.

So the short solution for my systems would be, Install EasyBCD etc. and copy "old" Neogrub to hidden partition.

Hopefully I have given you some light on my problem and you will be able to solve it efficiently (better than my current solution).

If you need any testing etc. let me know.

Regards.
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#10
interesting... thanks for that.

Addendum:

You could try build 100. I've updated Grub4Dos again.
 
Last edited:
#11
I did the following.
Renamed my copied NeoGrub (in hidden partition).
Removed Neogrub from EasyBCD.
Uninstalled EasyBCD.
Installed new EasyBCD b100.
Installed Neogrub.
Set menu.lst.
Rebooted.

Unfortunately everything is the same as with b99.
First it checks for hd(0,,0), then hd(0,1) where it obviously finds Neogrub (I am guessing it enumerates it with 0), but does not run it?

Then I copied the new Neogrub file to hidden partition. Now it was able to run Neogrub. For a millisecond I can see a writting (Try ... hd(0,0) ) and right after that it starts Neogrub. I do not know why it will not start from hd(0,1). But the new Neogrub does not want to run my Linux. One obvious difference is in speed of loading all the images. While 0.4.4 does it more slowly, especially the initrd..img part, which takes approx. half a second to load on 0.4.4 but happens instantly with latest Neogrub.

From my menu.lst script I removed some parameters which were making the screen blank (not showing the possible errors) and attached the screen where everything ends.

Hope you find it useful.

By chance I waited and noticed that after a minute a system went on and rebooted with the following reason: elf_init: not an ELF binary (see second picture). I did some research and obviously there is some incompatibility between my linux and latest Neogrub. There are some possible workarounds, but way over my head (I am not a Linux expert), since it is much easier for me to just use old Neogrub. The only "trouble" I have is coping it to hidden partition, which takes few more steps to do. So if it would work from (hd0,1) it would be perfect. I do not know if I am the only one who has troubles with latest Neogrub, but maybe you could set two options to choose from (0.4.4 or latest version). For me is no problem since I have it (stored separately), but for someone who will install only the latest version ...
 

Attachments

Last edited:

mqudsi

Mostly Harmless
Staff member
#12
I just double-tested here on a PC with a hidden partition, had no problems.

I'll forward this issue to the grub4dos team and see what they think.
 
#13
Hmm maybe is bios/motherboard dependent/problem. But in my case only hd0,0 location is a viable option. Btw. my HDs are on SATA3 (hd0) and SATA4 (hd1) ports. But I doubt this would make a difference.

I just tested Neogrub with 0.4.4 2009-10-16 (I do not know if dates mean time of your compilation or newer version) and it works ok too. So I am guessing the problems (for me) started with 0.4.5.

That is all from me, but if you need/like any other info, just let me know.
 
#14
Another observation:
I moved the disk with Win 7 and EasyBCD installed to another computer (different MB) and it worked like a charm (finding the Neogrub on C:\ partition). It did not even start writing "Try ... (hd0,0) etc.), it just started Neogrub. So it must be MB/Bios related issue.

If you have a "debug" version of Neogrub.mbr I can test it for you.
 

mqudsi

Mostly Harmless
Staff member
#15
Thanks for that info. I'll let you know.
 
#16
I did some more checking and tested latest official Grub4Dos 0.4.4. (2009-3-31)

I copied/renamed the grldr.mbr -> C:\NST\Neogrub.mbr
I renamed the C:\Neogrub -> C:\grldr (since official "mbr" searches for grldr)

After reboot: the grub4dos loaded just fine. From C:\ on "problematic" machine. So there must be some bug in your Neogrub.mbr

If I use official grldr and copy menu.lst to C:\ (since official one looks for menu.lst on root) the computer boots linux just fine. But this is to be expected since "we" know that with 0.4.4 version booting linux works ok (I hope the Grub4Dos "masters" figure this out; why it will not work on latest version).

I hope this helps in finding the "mbr" bug (since source code is available).
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#17
I don't understand. You're saying that grldr.mbr + grldr, both from 0.4.4 work fine. But don't they also work fine with EasyBCD?

The problem is with the latest 0.4.5b releases. If using the official grldr.mbr + grldr from 0.4.5b works, that's when we have a problem.
 
#19
Sorry still a no go.

I don't understand. You're saying that grldr.mbr + grldr, both from 0.4.4 work fine. But don't they also work fine with EasyBCD?
Hmmm maybe I overcomplicated.
Let me start from beginning.
I installed latest EasyBCD + Neogrub.
I renamed C:\NST\Neogrub.mbr to something else.
I took grldr.mbr (from latest stable Grub4Dos 0.4.4 2009-3-31 version), I copied it to C:\NST\, and renamed it to Neogrub.mbr (so your EasyBCD works with it).
Then I had to rename your C:\Neogrub to C:\grldr, so this new Neogrub.mbr could find it (since by default, it is searching for grldr file and not Neogrub).

So just by using this "official" grldr.mbr (renamed to Neogrub.mbr) I was able to successfully get into Grub4Dos using EasyBCD.

The point of this part is only that there is a bug in your version of Neogrub.mbr, that does not exists in "original" grldr.mbr, because this one loads the Grub4Dos successfully. So far it has nothing to do with actually running linux.

Since your version of Grub4Dos is 0.4.5b, it does not want to run linux. So I also tested original Grub4Dos 0.4.4 (with this new Neogrub.mbr), if it works ok (just out of curiosity). So I copied the grldr file (obtained from latest stable Grub4Dos 0.4.4 2009-3-31 version) to C:\. By doing this I replaced "your" Grub4Dos 0.4.5b with "original" Grub4Dos 0.4.4. With this I was also able to successfully run linux (not just get to the Grub4Dos).

So all tests are done using your EasyBCD + (Official 0.4.4 version). For this to work I had to rename "official" files accordingly.

I hope that this clarifies everything.

The problem is with the latest 0.4.5b releases. If using the official grldr.mbr + grldr from 0.4.5b works, that's when we have a problem.
I do not know where to get it, because I cannot find it on the "official" site. Please give me a link and I will test it. So no, I have not tested official grdlr.mbr + grldr 0.4.5b combo, only 0.4.4.

Addendum:

Ok. I think I have found Grub4Dos 0.4.5b 2010-06-09 version.

To make the following experiment more clear, I will use the following nomenclature:
Neogrub means your latest version
grldr44 means from official latest stable version 2009-03-31
grldr45 means from latest official beta version 2010-06-09

All test were done with the use of EasyBCD + C:\NST\"some Grub4Dos".mbr + C:\"some Grob4Dos"

To make non Neogrub versions to work I had to do some renaming, etc. But nothing else than that, just renaming.

So:
EasyBCD + Neogrub.mbr + Neogrub -> Grub4Dos will not load
EasyBCD + Neogrub.mbr + grldr44 -> Grub4Dos will not load
EasyBCD + Neogrub.mbr + grldr45 -> Grub4Dos will not load
EasyBCD + grldr44.mbr + Neogrub -> Grub4Dos will load, but linux does not load
EasyBCD + grldr44.mbr + grldr44 -> Grub4Dos will load and linux will load
EasyBCD + grldr44.mbr + grldr45 -> Grub4Dos will load, but linux does not load
EasyBCD + grldr45.mbr + Neogrub -> Grub4Dos will load, but linux does not load
EasyBCD + grldr45.mbr + grldr44 -> Grub4Dos will load and linux will load
EasyBCD + grldr45.mbr + grldr45 -> Grub4Dos will load, but linux does not load

So it is clear that both versions grldr44.mbr and grldr45.mbr work ok, but your Neogrub.mbr does not, regarding loading Grub4Dos.

Also it is clear that only grldr44 is able to run linux. On any other version linux fails to load with the same elf_init error.

Now everything should be clear. I hope.
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#20
Thank You!

Wow, you've put a lot of effort into this. Thanks :smile:

That really does help and is very much appreciated.