Cannot boot Fedora 14 anymore after Disk Imaging

#1
Hi

I have a working installation (Master PC) with Windows 7 64Bit and Fedora 14.

My 128GB SSD Disk layout is as follows:

- 100MB Boot Bartition (BootMgr)
- 95 GB Windows 7 64 Bit
- 24 GB Fedora 14

The Fedora 14 entry was created with EasyBCD 2.0.2 using

- Grub (Legacy)
- Name: Fedora 14
- Disk 0 / Partition 3 (/dev/sda3)

(I can do the same using the check box "Grub isn't installed in MBR/bootesector. Works as well)

Everything works fine till here. I can boot Fedora 14 without any problem
We now create an image and deploy it to exact same PCs using Symantec Altiris Software deployment solution.

As the "rdeploy" tool from Altiris has a bug with Windows 7 we must do a little trick right after the image deployment and before booting the system.

bootsect.exe /nt60 SYS /mbr

to repair the boot sector.

After that everything works fine with the execption of booting Fedora 14.

When choosing it the Windows BootMgr throws an error screen.
It says someting about the entry

\nst\nst_linux.mbr
or
\nst\AutoNeoGrub0.mbr


The file exists under C:\NST

Why can the Windows BootMgr not boot this entry anymore ?
All partitions have the exact same size as before.

When I boot into Windows 7 remove the Fedora 14 entry and recreate it; everything works fine !!!

What does EasyBCD do in background !!!
Is there a command line option to configure this? So I could script EasyBCD.

Regards,
Oliver
 

mqudsi

Mostly Harmless
Staff member
#2
EasyBCD doesn't tell the bootloader to find autoneogrub on C:, it says find autoneogrub on the drive with partition id a-really-long-and-unique-string here.

This string is unique to each partition. When you move from PC to PC, that id changes. If you clone the *disk* this should still work. If you clone the partition, it won't.
 
#3
Hi thanks for the answer...

We have configured to clone the whole disk but I don't know what Altiris does in the Background. Maybe it clones partition by partition.

Is there a way to do the exact the same what EasyBCD does with bcdedit.exe?
Or does EasyBCD just issue bcdedit commands ?

If so exactly which ones ? I tried the following

bcdedit /create /d “Linux” /application BOOTSECTOR
bcdedit /set {ID} device partition=c:
bcdedit /set {ID} path \nst\nst_linux.mbr
bcdedit /displayorder {ID} /addlast

I had a correct Entry in BootMgr but it was not bootable...

Any idea why ?

Regards,
Oliver
 

mqudsi

Mostly Harmless
Staff member
#4
Please post the contents of EasyBCD's "Detailed Mode" for a *working* Windows 7/Fedora 14 dual-boot.
 
#5
Here is the detailed output from the *working* configuration on my Master-PC (Image)

Regards,
Oliver

Code:
Windows Boot Manager
--------------------
identifier {9dea862c-5cdd-4e70-acc1-f32b344d4795}
device partition=\Device\HarddiskVolume1
description Windows Boot Manager
locale en-US
inherit {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
default {de8142f3-abd5-11df-99b1-cb8e0daf9b63}
resumeobject {de8142f2-abd5-11df-99b1-cb8e0daf9b63}
displayorder {de8142f3-abd5-11df-99b1-cb8e0daf9b63}
{de8142fa-abd5-11df-99b1-cb8e0daf9b63}
toolsdisplayorder {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout 10
displaybootmenu Yes
Windows Boot Loader
-------------------
identifier {de8142f3-abd5-11df-99b1-cb8e0daf9b63}
device partition=C:
path \Windows\system32\winload.exe
description Windows 7
locale en-US
inherit {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
recoverysequence {de8142f4-abd5-11df-99b1-cb8e0daf9b63}
recoveryenabled Yes
osdevice partition=C:
systemroot \Windows
resumeobject {de8142f2-abd5-11df-99b1-cb8e0daf9b63}
nx OptIn
Real-mode Boot Sector
---------------------
identifier {de8142fa-abd5-11df-99b1-cb8e0daf9b63}
device partition=C:
path \NST\nst_linux.mbr
description Fedora 14
 

mqudsi

Mostly Harmless
Staff member
#6
Is C: also the boot partition?
 
#7
Hmmm... Don't know....

I have the 100MB Partion Windows 7 creates when installing. Then comes Windows 7 (C:smile: with 95GB and then comes a third partition holding Fedora 14.

So BCD sits in the 100 MB Partition...

When starting the PC it boots BootMgr and offers the menu where Windows 7 is the default after 10 seconds.

Addendum:

And that is the EasyBCD detailed Output View after deploying the image to an equal hardware. Windows 7 boots fine but when choosing Fedora 14 it bails out suggesting me to repair with the Windows installation CD:

---------------------------

File: \NST\nst_linux.mbr
Status: 0xC000000e

Info: The selected entry could not be loaded because the application is missing or corrupt.

---------------------------

Don't know but maybe it is easy to fix it using bcdedit.exe but I don't see how.

Regards,
Oliver


Code:
Windows Boot Manager
--------------------
identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
device                  unknown
description             Windows Boot Manager
locale                  en-US
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
default                 {de8142f3-abd5-11df-99b1-cb8e0daf9b63}
resumeobject            {de8142f2-abd5-11df-99b1-cb8e0daf9b63}
displayorder            {de8142f3-abd5-11df-99b1-cb8e0daf9b63}
                        {de8142fa-abd5-11df-99b1-cb8e0daf9b63}
toolsdisplayorder       {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout                 10
displaybootmenu         Yes
Windows Boot Loader
-------------------
identifier              {de8142f3-abd5-11df-99b1-cb8e0daf9b63}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
recoverysequence        {de8142f4-abd5-11df-99b1-cb8e0daf9b63}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {de8142f2-abd5-11df-99b1-cb8e0daf9b63}
nx                      OptIn
Real-mode Boot Sector
---------------------
identifier              {de8142fa-abd5-11df-99b1-cb8e0daf9b63}
device                  unknown
path                    \NST\nst_linux.mbr
description             Fedora 14
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#8
OK, there's something you can do to make it work with cloning.

1) Delete the Fedora entry and turn off EasyBCD
2) Assign a drive letter to the 100mb partition from Computer Management | Disk Management
3) Start EasyBCD
4) Add a new Fedora entry

This time, instead of C:, it'll be on the boot drive letter

You'll see a NST folder on the boot drive as well.

5) EasyBCD | Useful Utilities | Power Console
bcdedit /set {xxxxxxxxxxxxxxxx} device boot
bcdedit /set {xxxxxxxxxxxxxxxx} osdevice boot

where xxxxxxx is the entry id for Fedora in EasyBCD.

6) Un-assign the drive letter for the boot partition

Should let you clone safely thereafter.
 
#9
Hmm.. I tried two things

1) Fixing the current enty with bcdedit:

bcdedit /set {xxxxxxxxxxxxxxxx} device partition=c:
bcdedit /set {xxxxxxxxxxxxxxxx} osdevice partition=c:

2) Assigned a drive letter to the boot partition on the not working (deployed PC) and copied over the NST folder from C: to X: (bootmgr partition)

bcdedit /set {xxxxxxxxxxxxxxxx} device boot
bcdedit /set {xxxxxxxxxxxxxxxx} osdevice boot


In both cases bcdedit refuses the second command (osdevice) complaining about invalid syntax...
I don't see where the problem is...

Anyway, in both cases the error no longer appears. The screen gets blank and I see a text cursor (_) on the upper left corner of the screen. It sits there and doesn't go further...

Strange... Maybe this "osdevice" parameter is the cause of this...

Regards,
Oliver

Addendum:

I mean my GRUB (legacy) is stored inside the linux partition (/dev/sda3) not in MBR. May that's why "osdevice" does not work ???
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#10
Which is fine. osdevice is unimportant.

This means that the bootsector for the linux entry is being corrupted by the cloning application. EasyBCD grabs it each time when you add a new entry.

In this case, you can't circumvent what EasyBCD does behind the scenes, because the .mbr file itself has changed. We managed to get it to locate the .MBR, but now the .MBR is incompatible with your system.

One more thing to try: can you get it to work using the "grub is not installed to the mbr" checkbox? If you can, this'll go around the whole .MBR issue, using an entirely different technique to chainload the Fedora entry.

Stupid cloning utilities!
 
#11
I hardly can't believe that the cloning tool corrupts a file and especially my specific "nst_linux.mbr". I then would suspect other parts of the OS Windows 7 to be corrupt as well.

I as well copied the original *working* nst_linux.mbr over the one in the cloned system. Does not help.
I as well tried to use "grub is not installed to the mbr" and it works well on the master.

After cloning it fails as well...

I have the feeling that the bad guy is my command I use to correct the boot problem from Altiris:

bootsect.exe /nt60 SYS /mbr

Maybe this corrupts something in the Fedora 14 entry even if it fixes the Windows 7 BootLoader.

But you are right... Bootloaders are a pain...

Regards,
Oliver
 

mqudsi

Mostly Harmless
Staff member
#12
No, it doesn't corrupt a file.

You misunderstand - My point is that the contents of nst_linux.mbr need to be changed because the partition signature has been changed/corrupted with the clone.

Now my question wasn't if "isn't installed to the MBR" will work after cloning, it was whether it would work on the master.

Combine the "is not installed to the MBR" option with the steps from my earlier post (the ones that resulted in the _ message and hang), that should work.
 
#13
So you want me to use the "isn't installed to the MBR" in combination with putting it into the 100MB BootMgr partition ? Correct ?

Addendum:

BTW. The alternative method was indeed working on the Master... It searched for the menu.lst and booted Fedora.
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#14
Yes. That's correct.

Because the alternative method doesn't rely on partition signature, instead it searches for menu.lst on all partitions and loads it. :smile:
 
#15
OK.... I implemented what you said on a freshly deployed *non-working* system.... And guess what: it worked...

Now let's see what happens if I am going to implement this into the MASTER Image....

Will tell you soon...

Regards,
Oliver
 

mqudsi

Mostly Harmless
Staff member
#16
Good luck, Oliver :smile:
 
#17
Man, you saved my day... This way it worked !
Thank you so much for your support...

A question: I have seen that there is an EasyBCD 2.1 Beta

Wouldn't it make sense to add a checkbox in the LINUX configuration TAB

[x] Place Linux bootsector file into boot loader partition.

You then could add a free drive letter in background configure BCD as you already do (but to this drive letter) and then remove the drive letter again.

And maybe adding command line options for adding Linux configs would be great to.

easybcd.exe /linux /grub-legacy /name "Fedora" /partition 3 [/place2bootpart]
easybcd.exe /linux /grub-legacy /name "Fedora" /auto-locate [/place2bootpart]

I mean basically you would have to translate the command line options into the GUI values.

Regards,
Oliver
 

mqudsi

Mostly Harmless
Staff member
#18
We're considering command-line options, but for now there hasn't been much need. Most people aren't looking to deploy EasyBCD across dozens of machines, so the extra step or two haven't been a real blocker.

Glad we could help you with this.
 
#19
Maybe you could consider making a portable version of EasyBCD. So Admins could put EasyBCD on a network share and use a remote script to execute the commands.

I mean all our machines have the Altiris Deployment client installed and we can invoke jobs on the machines. The tools itself are stored on a server share. I think there are a lot of companies which use such infrastructures.

Regards,
Oliver
 

mqudsi

Mostly Harmless
Staff member
#20
That's quite a lot of work you're proposing!