I'm working on an update to this question/answer.
This doesn't work without errors, but as I worked with @jiewmeng I uncovered that the goal was to use a USB to install both Windows and Ubuntu onto one hard drive, UEFI.
It has taken a while and I've found the solution but we need to clean the question and answer.
Maybe the original question can be answered as well but since the goal was more on the install side the single boot UEFI USB seemed less important.
I'm presently using two USB sticks one for Windows, one for Ubuntu.
This is a WIP to be updated ASAP
I've been working on this for a few days, spare hour here and there and finally have a single USB, that will boot and offer installation of windows 7 and ubuntu.
My config is 64 bit specific, you could try and change to accomodate a 32bit intall but there are many differences in filenames. Please follow up if you need 32bit. That said...
You cannot install Windows 7 from a GPT formatted USB.
You can use gdisk, or parted, and create a GPT USB, which will boot via UEFI.
You'll be able to configure the UEFI boot manager to load the Windows installer from the USB but the installer will search for files and data needed to perform the installation and it won't recognize the GPT USB, while it will find an MBR USB.
However, this is of little consequence as UEFI looks at the MBR/GPT and the EFI partition, see the Wikipedia entry on UEFI Booting
In spite of using a std MBR for the USB, one can install via UEFI to a GPT disk.
The following worked using 64bit installs, on 64bit UEFI Asus Sabertooth.
The firmware on each motherboard is very specific and each motherboard UEFI firmware searches for UEFI boot differently. You may have issues with your motherboard finding boot data, but the following works on my ASUS.
Here's how I made a bootable USB with an installable copy of the Windows 7 64bit DVD and an Ubuntu ISO (in this example, the 11.10 64bit desktop iso).
Using an 16G USB, which is all I had at hand...
my USB installed as /dev/sdc, change the relevant references to the appropriate device for your USB.
Make sure you have 7zip installed.
fdisk /dev/sdc
create new MBR, 'o' command
create new partition, part 1, size 8G, type ef, set bootable, write
mkfs.vfat -F32 /dev/sdc1
mkdir /mnt/USB
mount /dev/sdc1 /mnt/USB
insert Windows 7 x64 DVD, again, mine appeared as /media/UDF\ Volume, you need to change references below
# Extract/Copy the entire Windows DVD to the USB
cp -r /media/UDF\ Volume/* /mnt/USB
# I don't know what effect the following rename has, I copied blindly from another webpage.
mv /mnt/USB/sources/ei.cfg /mnt/USB/sources/ei.cfg_
cd /mnt/USB/efi/microsoft/boot/
7z e /mnt/USB/sources/install.wim 1/Windows/Boot/EFI/bootmgfw.efi
cp -r /mnt/USB/efi/microsoft/boot /mnt/USB/efi/
mv /mnt/USB/efi/boot/bootmgfw.efi /mnt/USB/efi/boot/bootx64.efi
# At this point I booted the USB, and installed Windows 7 to a GPT SSD
# Upon reboot I noticed the Windows Boot loader in my UEFI boot list (actually it made itself 1st).
# so, here we have a standalone Windows7 UEFI installer that will function correctly (64bit ASUS, at least).
# Now, on to adding Ubuntu
cd /mnt/USB
7z x /path2iso/ubuntu-11.10-desktop-amd64.iso
# If 7z finds prexisting files with the same name, just allow always overwrite
# (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? A
# At this point I booted the USB, and installed Ubuntu x64 to a GPT SSD
# we have a standalone Ubuntu 64bit installer that install Ubuntu 64
# Now, on to add a boot manager that will allow us to select between Windows 7 and Ubuntu
# Get the target UUID of the USB partition, using either blkid or the following command
grub-probe --target=fs_uuid /mnt/USB/efi/Microsoft/Boot/bootmgfw.efi
will print YOUR_UUID # Substitute into the following references to YOUR_UUID
# Append the following menuentry to /mnt/USB/boot/grub/x86_64-efi/grub.cfg
menuentry "Microsoft Windows x86_64 UEFI-GPT Setup" {
insmod usbms
insmod part_gpt
insmod part_msdos
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --no-floppy --set=root YOUR_UUID # <- CHANGE THIS TO YOUR UUID
chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
}
And voila! A working USB stick that uses grub as boot manager, allowing installation to GPT disks with UEFI install.
If you have an errors, don't hesitate to msg me, and I'll look into it.
Best Answer
What do you want from that LiveCD? Maybe a DVD that boots for you is fine for that if it lends you a shell (try Ctrl-Alt-F2/F3/...) and provides the tools needed.
Try getting to the console, chrooting into the system installed (but lacking the bootloader) and running
grub-install
(with no additional arguments) by hand to see the error message. Did you mount ESP into /boot/efi/?Rod's books page on the topic is also highly recommended.
How exactly did you write the ISO to the pendrive? dd(1) or a win32 equivalent like SUSE Image Writer should do fine.
Shameless plug: I have implemented UEFI support in ALT Linux, and if our regular builds work for you then I can probably translate/explain the relevant bits of mkimage-profiles documentation so you can prepare the derivative needed (or use it to prepare a bootable root so that you can work on your Debian installation with comfort). Didn't get around to testing wheezy's release UEFI behaviour but d-i beta4 had some troubles with bootloader installation as well.