I was able to EFI boot from my USB thumb drive and EFI install BT5R1 onto my computer. Here is how I did it.
I booted from my usb thumb drive in legacy mode. I downloaded grub and compiled it as follows:
export EFI_ARCH=x86_64
./configure --with-platform=efi --target=${EFI_ARCH} --program-prefix=""
make
sudo mkdir -p /mnt/EFISYS # if the mount-point does not exist
sudo modprobe dm-mod # required to make grub-probe stop complaining
sudo mount -t vfat -o rw,users /dev/sda1 /mnt/EFISYS # replace /dev/sda1 with your thumb drive
sudo mkdir -p /mnt/EFISYS/efi/boot
cd <grub2_compiled_source_dir>/grub-core
../grub-mkimage -O ${EFI_ARCH}-efi -d . -o grub.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot
sudo cp grub.efi *.mod *.lst /mnt/EFISYS/efi/boot
sudo touch /mnt/EFISYS/efi/boot/grub.cfg
your /mnt/EFISYS/efi/boot/grub.cfg should look like this:
# Config file for GRUB2 - The GNU GRand Unified Bootloader
# /boot/grub/grub.cfg
# DEVICE NAME CONVERSIONS
#
# Linux Grub
# -------------------------
# /dev/fd0 (fd0)
# /dev/sda (hd0)
# /dev/sdb2 (hd1,2)
# /dev/sda3 (hd0,3)
#
# Timeout for menu
set timeout=5
# Set default boot entry as Entry 0
set default=0
# (0) Linux
menuentry "BT5R1 x64 Linux" {
set root=(hd0,1)
linux /casper/vmlinuz file=/cdrom/preseed/custom.seed boot=casper
initrd /casper/initrd.gz
}
You should be able to EFI boot from your usb thumb drive now. Start the BT installation. When you get to the hard drive partitioning part choose advanced so you can create your own partitions. I have 2 hard drives in my system Windows 7 and BT5R1 so I choose to wipe /dev/sdb and created the following partition layout:
/dev/sdb1 200MB fat32 /dos mount point
/dev/sdb2 240GB ext4 / mount point
/dev/sdb3 swap
UNDER NO CIRCUMSTANCES SHOULD YOU LET THE INSTALLER INSTALL ANYTHING TO THE WINDOWS 7 EFI PARTITION. BAD THINGS WILL HAPPEN. IF YOU INTEND TO USE THE MS EFI PARTITION FOR GRUB DO IT MANUALLY.
I formatted /dev/sdb1 and /dev/sdb2. The installation finished. I then did:
# cp -R /cdrom/efi /target/dos
This copies all of the EFI boot files to the new EFI boot partition.
# cp /target/boot/vmlinuz-2.6.39.4 /target/dos/
# cp /target/boot/initrd.img-2.6.39.4 /target/dos/
I changed /target/dos/efi/boot/grub.cfg to:
# Config file for GRUB2 - The GNU GRand Unified Bootloader
# /boot/grub/grub.cfg
# DEVICE NAME CONVERSIONS
#
# Linux Grub
# -------------------------
# /dev/fd0 (fd0)
# /dev/sda (hd0)
# /dev/sdb2 (hd1,2)
# /dev/sda3 (hd0,3)
#
# Timeout for menu
set timeout=5
# Set default boot entry as Entry 0
set default=1
# Set default color
set color_normal=white/blue
# (0) Original
menuentry "x64 Linux" {
set root=(hd1,1)
linux /vmlinuz-2.6.39.4 root=/dev/sdb2
initrd /initrd.img-2.6.39.4
}
# (1) Windows
menuentry "Windows" {
set root=(hd0,1)
chainloader (${root})/EFI/Boot/bootx64.efi
}
I rebooted, brought up my one time select your boot device screen by pressing F9 (F12 on other systems) and selected my second hard drive. Grub's menu popped up I selected x64 Linux and the system booted. Everything is working OK so far. I did have to compile a 3.1.6 kernel as my system would hang on reboot or shutdown with the BT5R1 kernel. I don't do wireless testing on this system so rolling my kernel using the BT5 config is good enough. I don't recommend compiling your kernel unless you exactly what you are doing and what you are giving up vs a BT kernel.
You could put all of the grub files on the windows 7 EFI partition and use grub to dual boot however the MS efi partition is only 100MB in size so you will run into space problems if you install too many Linux kernels. The MS efi files take 33 MB. The grub boot files take 4MB. The BT kernel and initrd take 22MB. Grand total 59MB used. Just beware of space issues. All you have to do is rename the /boot/efi/bootx64.efi on the MS efi partition to /boot/efi/win7.efi and update the grub.cfg to point to the win7.efi file.
Have fun EFI booting.


I also can't boot a non UEFI thumb drive anymore.

