Bitlocker and Grub2?

#1
I am having problems booting into a fresh install of Ubuntu 9.10. I'm not sure if its a configuration issue or a bug on the grub2 loader but I think the grub2 loader is having problems dealing with my bitlocker partition when it is scanning the drives. It hangs on the following drive while scanning:

Code:
Try (hd 0,0): NTFS5: no ang0
Try (hd 0,1): NTFS5: _
Here is my config in EasyBCD:

Code:
Windows Boot Manager
--------------------
identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
device                  partition=C:
description             Windows Boot Manager
locale                  en-US
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
default                 {b53d402f-9aa1-11de-9610-85d15de9db30}
resumeobject            {b53d402e-9aa1-11de-9610-85d15de9db30}
displayorder            {b53d402f-9aa1-11de-9610-85d15de9db30}
                        {b53d4038-9aa1-11de-9610-85d15de9db30}
toolsdisplayorder       {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout                 5

Windows Boot Loader
-------------------
identifier              {b53d402f-9aa1-11de-9610-85d15de9db30}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
recoveryenabled         No
osdevice                partition=C:
systemroot              \Windows
resumeobject            {b53d402e-9aa1-11de-9610-85d15de9db30}
nx                      OptIn

Real-mode Boot Sector
---------------------
identifier              {b53d4038-9aa1-11de-9610-85d15de9db30}
device                  partition=C:
path                    \NST\AutoNeoGrub0.mbr
description             Linux
My Partition Layout is like this:

Code:
Partition 1 (NTFS - 0GB)  <-- Used for bitlocker
Partition 2 (c:\ as NTFS - 203GB)  <-- Actual bitlocker data partition
Partition 3 (Linux - 28GB)
Partition 4 (Swap - 1GB)
Any ideas or workarounds I can try? A way to hardcode grub2 on where to look?

Thanks for your help!!!


Edit: I'm using EasyBCD 2.0.0.67 and Windows 7 Ultimate
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#2
Hi microbolt, welcome to NST.

If GRUB2 cannot handle your bitlocker partition, I recommend EasyBCD -> Add NeoGrub

Then manually configure the NeoGrub file to boot your Linux directly (NeoGrub Linux - NeoSmart Technologies Wiki)
 
#3
Thanks for the welcome!

Neogrub modifies the MBR correct? If that is the case I'm not sure if I can use that and still have bitlocker enabled without losing data. Currently I have the Windows 7 bootloader in the MBR. I may have to just reinstall Ubuntu again with ext3fs. The Grub (Legacy) loader should work with Ubuntu 9.10 ext3fs correct?

There any settings on the grub2 loader to specify a partition instead of it auto searching for one?
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#4
Actually, NeoGrub doesn't touch the MBR. Give it a go :smile:
 
#5
I tried the neogrub and got something very similar:

Code:
Try (hd 0,0): NTFS5: no neogrub
Try (hd 0,1): NTFS5: _
For troubleshooting purposes I decrypted my bitlocker partition last night to see if it worked any better. After decrypting the Grub2 method works fine. So I can further troubleshoot it is the "Try (hd 0,0)" message from Grub2 on the linux partition or is it from the boothelper that is included in the EasyBCD?

Any ideas on how I can re-enable bitlocker and still be able to dual-boot? It used to work with bitlocker on when I used the Grub loader with Ubuntu 9.04. Is that because I was able to specify a partition instead of it auto detecting? Is there a way to specify a partition with Grub2 instead of having it auto detect?

Thanks in advance for any help!
 

mqudsi

Mostly Harmless
Staff member
#6
What build of EasyBCD are you using? Because the NeoGrub method is most similar to the old way w/ Ubuntu 9.04....
 

mqudsi

Mostly Harmless
Staff member
#8
OK, what's the contents of NeoGrub's menu.lst?
 
#9
Here is the config I tried (which I'm pretty sure is wrong), but I didn't attempt to troubleshoot it though as I never got the the GRUB4DOS screen at all. It would just hang at "Try HD (0,1) NTFS5: _". Now that bitlocker is off it does goes past the "Try" message and drops me to a "GRUB> " Prompt.

Code:
title Chainload into GRUB v2
root (hd0,4)
kernel /boot/grub/core.img
 

mqudsi

Mostly Harmless
Staff member
#10
Ah, ok, got it.

Do you have any *non* encrypted partitions available? The filesystem doesn't matter: FAT, NTFS, ext2, ext3, ext4 are all supported by NeoGrub.

Copy over \NeoGrub from the system partition to that partition.
Then copy over the \NST folder as well (which contains the menu.lst you'll need to modify).
 
#11
Thanks that sounds like it will work. I do have a 100mb unencrypted drive HD (0,0) that I can put it in. If I drop the ANG0 there you think I will have a pretty good chance of the Grub2 working as well?

I'm encrypting the drive now to test but it takes about 8 hours to complete so will have to report back later today if it worked or not.
 

mqudsi

Mostly Harmless
Staff member
#12
OK, for ANG2....

It's the same general idea, but it involves modifying the BCD a little.

I programmed NeoGrub to search all drives for the menu.lst file. However, the BCD doesn't do that.

  1. Delete existing NeoGrub/GRUB2/Ubuntu entries in EasyBCD.
  2. Create a GRUB2 entry.
  3. Move the ANG file and the NST folder to a Windows-recognized filesystem (so format the unencrypted HD as FAT32 or NTFS).
  4. Then use EasyBCD | "Change Settings" to change the drive of the GRUB2 entry to the 100mb partition.

An easier method also exists, but it'll change your system around a bit.

After formatting the 100mb drive, use EasyBCD | Diagnostics | Change Boot Drive to make the 100mb drive your boot drive.

After that, anything you do in EasyBCD will automatically use the 100mb partition for storage and things should work out (as far as dual-booting Linux and Windows goes). However, this means that your boot drive will no longer be the system drive.. Usually that's cool... But you may not want that, so this all goes back to you.

As you can see, many options are available. EasyBCD is supremely flexible, and I wrote it so that there are many ways of doing the same thing for whatever you need.... :smile:

Cheers!
 
#13
I just want to follow up incase anyone else ever has a problem with this. What Mahmoud suggested above worked perfectly! Thanks so much for sticking with me and getting this working!

On windows 7 by default during setup it creates a 100mb unencrypted partition incase you want to use bitlocker in the future. (As bitlocker requires this partition to function). The bitlocker files only use about 35 megs or so, so it leave plenty of room to put these files there. In order to see the drive though you much assign it a drive letter first. Here are the steps to get Ubuntu 9.10 working with bitlocker:


  1. Use EasyBCD to create a entry for linux. Use Grub2 for the type.
  2. Launch Computer Management: Start -> Right-click My Computer -> Manage
  3. Once that opens click Disk Management on the left.
  4. In the list at the top Right-Click on System Reserved and choose Change Drive Letter and Paths
  5. Click Add.
  6. Pick any available drive letter from the list. I'll use R for this example.
  7. Now copy the folder NST and the file ANG0 from your C Drive to the new drive you just picked (R in my example)
  8. Now go back to EasyBCD and click Change Settings and Under Entry-Based Setting change to the new OS you created. Select the drive you picked earlier (R in my example) and Save Settings.
  9. (Optional Step) If you would like to rehide R from My Computer list go back to Computer Management -> Disk Management -> System Reserved -> Change Drive Letter and Path -> Remove R drive from the list (This just hides the drive, it does not delete any data)
  10. Reboot and test to see if works! It did for me!
Thanks again for your help!
 

mqudsi

Mostly Harmless
Staff member
#14
Hey microbolt, thanks for sharing your steps.

Hint: as soon as you assign a drive letter to the hidden partition that was created as the boot partition during setup, EasyBCD will pick it up automatically and use it for everything anyway.

So actually, all you need to do is assign it a letter and then use EasyBCD to add NeoGrub/GRUB2/GRUB/Whatever :smile:
 
#15
Hi guys sorry to bump this thread but I have followed the steps above to the letter. I have 4 partitions on 1 HDD. One EXT2 with ubuntu linux installed on it, one linux swap, one 100mb partition created by windows 7 for bitlocker and the last one with the windows 7 OS on it. I am using windows 7 boot manager and have done all the steps above and can see an option for booting linux from it. However when I choose linux, it then displays try hd(0,0) EXT2: and then you cannot do anything else. I have found forums where people have been complaining about this error but it seems unrelated to my condition.

Thank you for any help.
 

mqudsi

Mostly Harmless
Staff member
#16
Assign a drive letter to the 100mb partition and re-add the Linux entry.
 

JustinW

Super Moderator
Staff member
#17
Grrr, I hate this whole drive letter business. I found out W7 forces you to create a system reserved partition if you do something as simple as creating a partition during the installation process, so you're forced not only to create the partitions before installing, but before even starting W7's installer if you don't like it...

So is Easy supposed to handle it without having to manually letter assign it or is that something we're still waiting on?
 

mqudsi

Mostly Harmless
Staff member
#18
It does handle it, no problem (though there seem to be intermittent issues with auto-configuring XP in the case of the hidden partition).

Now bitlocker instantly stops all other bootloaders from working. So I coded a workaround into EasyBCD that makes it handle bitlocker-encrypted drives, except you'll need to assign the hidden partition a letter to pull it off :smile:
 
#19
@ Guru
nice job you're doing. keep it up

After 20 hours of formatting multiple Oses in the hope that they will dual boot,
just assigning a letter to that hidden partition that was created by W7 for booting totally did the trick . It was as if a miracle happened for me.
I've never had any problems while dual booting Xp and Ubuntu Intrepid-Jaunty, but this grub2 and vista loader don't seem to get along well. Microsoft guys are really pissed at ubuntu, I guess. That must be the reason for all this mess. what I understand from all this is that grub mbr reside in that previously hidden sector but they don't touch each other and it will be this way. Is that correct?

I got two questions
1. do you need to hide the letter assigned to that previously hidden partition
2. will I have to repeat the procedure from the start again when a kernel update occurs or update the ubuntu release
 

mqudsi

Mostly Harmless
Staff member
#20
You don't need to hide it... and you won't need to redo the procedure after installing any updates, EasyBCD will dynamically load the right files.