I didn't have a CD/DVD drive so I had to prepare a bootable copy of Windows on a USB pen. I tried different programs but finally I ended up with UltraISO. However, when I tried to boot widows from USB, installer refused to accept my partitions. Many encountered this message when windows says that disk is GPT-formatted. That means that installer was run not in EFI mode.
Although this is technically not related to linux, setting up Windows 7 x64 iso to boot from USB for a BIOS boot sets up the USB as NTFS, not FAT32. Thats why the firmware fall-back to BIOS boot since it did not find any UEFI bootable disk/drive .
In parallel, I also tried to install ArchLinux from another USB stick. I burned latest archboot-2011.05 and followed the standard installation procedure. At the end I choose grub2-efi-x64. However, I didn't see a way to boot it automatically. The only way I could boot grub2 is from EFI shell. That was the first glimmer of hope. Unfortunately, I was dependent on USB srick and couldn't boot anything without it. More googling again and I resolved the problem by puttin the shell to <EFI_SYSTEM_PARTITION>/shellx64.efi. After that "Launch EFI shell" option in BIOS dropped me into shell. USB was not necessary anymore. I could boot ArchLinux from harddisk with lots of hand actions.
2. What does Windows installer do so special that "Windows boot manager" appears in the boot menu? How do I do the same for grub2? How do I add it to the BIOS Boot menu? I tried to reproduce folder structure for grub on ESP: I copied contents of grub folder to /efi/grub/boot on the analogy to /efi/microsoft/boot/ folder. It didn't work - grub didn't appear in BIOS Boot menu.
https://wiki.archlin...face#UEFI_Shell and https://wiki.archlin...re_Boot_Manager . For this to work you should have booted in UEFI mode. By standard procedure i suppose you used isohybrid (dd the iso to the usb) option and booted in BIOS mode.
I tried to launch all the efi files I could found on the windows 7 usb. Launching bootmgr.efi, memtest.efi always resulted in error sayng that the specified binary is not a recognized command or batch or a file. cdboot.efi and cdboot_noprompt.efi seemed to have started loading, but few seconds later it crashed and I was dropped back to the shell. So I couldn't install windows in EFI mode, not even run the installation. An interesting note here is that cdboot.efi and cdboot_noprompt.efi do not autocomplete in EFI shell. All other efi files do.
Finally, I managed to install Windows 7 in EFI mode by accident. Unintentionaly, I left USB DVD drive plugged in and booted into the EFI shell. My USB stick with Windows 7 was also plugged in. I was fooling around on the available drives and tried to launch EFI files I collected from different sources. During that process I run cdboot.efi from USB Windows 7 again and... surprise, surprise, installation started! It didn't drop back to the shell as previously. I also heard DVD disk spinning in the USB DVD driver! Few seconds later Windows accepted my GPT disk and I continued with installation. I went away from the PC for about ten-fifteen minutes but when I got back, Windows was already installed! How amazingly fast! It didn't recognize some of my hardware including network card, though. I rebooted and discovered "Windows boot manager" in BIOS boot menu. From now on I could boot Windows without a problem.
Let me summarize my experience in form of current problems and questions:
1. [Why can't I/How do I] boot Windows DVD in UEFI mode without all this magic with same USB stick? I saw on youtube people running the same Windows 7 in UEFI from DVD without a problem. They got UEFI: DVD in Boot menu. I don't. Why?
3. Is there any document describing ASUS P8P67 specific EFI behaviour? What conditions should be met in order to boot device in UEFI mode? FAT32 Partition type, certain files availble, partition flags?
The instructions are common for any UEFI systems (excluding Intel Macs which are actually weird in UEFI booting)
4. Note: I tried to run rEFIt EFI files in the shell but failed: 'refit.efi' is not recognized as an internal or external command, operable program, or batch file.
rEFIt is specific to Intel Macs. It does not work for non-Mac UEFI systems.
5. Note: I get kernel panic when I reboot ArchLinux: http://img.flashtux....60x584317ed.jpg. Shutdown is fine, though. That's very unpleasant because I cannot reboot my PC remotely - I need to push Reset button in order to reboot the machine.
https://bugs.archlinux.org/task/23067 . Add
reboot=ato the kernel command line in the bootloader. If it does not work try
6. Note: My primary harddisk OCZ Vertex 3 SSD does not have UEFI prefix in Boot menu. Only USB sticks obtain such prefix provided they contain FAT32 partition.
You should have a <EFI_SYSTEM_PARTITION>/efi/boot/bootx64.efi file for your SSD to have UEFI prefix in the boot menu.
7. Note: I didn't manage to run cdboot.efi from Windows DVD. When I booted into EFI shell, DVD wasn't mapped to some drive name like fs1: or something. I had to manually do "map fs1 blkA" - blkA was printed in the output of map command in the EFI shell. This mapping, however, didn't help: I changed drive to fs1 but 'ls' gave me an error. I coudn't browse the Windows DVD filesystem.
Most of the UEFI firmwares do not have support for reading ISO9660 or UDF iso/cd/dvd .
EFI shell commands output:
map.txt - http://paste.pocoo.org/show/394162/
pci.txt - http://paste.pocoo.org/show/394163/
ver.txt - http://paste.pocoo.org/show/394165/
EDIT: I duplicated post here: http://www.insanelym...p;#entry1687860
EDIT: I've just found this: https://help.ubuntu....i... as default. This seems to be a solution for the problem #2. I will check it by evening at home.
Actually it is possible to have Windows 7x64 ISO UEFI, Archboot ISO BIOS (using syslinux) and Archboot ISO UEFI in the same USB. I have done it before.
Just extract Windows 7 x64 iso and Archboot iso contents to the FAT32 formatted USB drive. Then extract the <WINDOWS_7_ISO>/efi/microsoft/boot/efisys.bin file using p7zip, it will contain <EFISYS.BIN>/efi/boot/bootx64.efi . Copy this bootx64.efi file to <USB>/efi/Microsoft/boot/bootmgfw.efi .
Similarly extract <ARCHBOOT_ISO>/efi/grub2/grub2_efi.bin and copy <GRUB2_EFI.BIN>/efi/boot/bootx64.efi to <USB>/efi/grub2/grub.efi . Copy the UEFI Shell to <USB>/efi/boot/bootx64.efi .
PS: I posted the same in insanelymac forums just in case. I am surprised though, you didn't read UEFI info available in Archwiki (UEFI and GRUB2 pages) and instead searched everything using Google.