Guys, first of all let me shout a huge thank you to all of you (
@d3vi1,
@DaGr8Gatzby,
@ogjelland,
@mark1234,
@Jognt and countless others) contributing in this thread. Without bucketloads of your persistence and a fair bit of knowledge we would be a lot more clueless as a community! Plus I would not be able to get nearly as far as I got in my little project.
What I am trying to accomplish is get
Windows 7 installed on a MacBookAir7,2 (Early 2015). The quest is made a little harder since this is their first laptop with
no CSM / BIOS mode (it's either EFI or nothing) and its
NVMe SSD.
Where I got so far is:
- Slipstreamed Intel HD 6000, Intel USB 3.0, Apple SSD and USB-to-Ethernet-dongle drivers.
- Slipstreamed the Windows 7 NVM Express hotfix.
- Injected the final install.wim into a Windows 8.1 setup on a thumbdrive.
- Installed Windows 7 with @Jognt's AutoUnattend.xml (adding RDP-enabling rules and making sure the right image index is picked via a MetaData section as this iso is an all-in-one).
- On the EFI partition: replaced EFI\Boot\bootx64.efi with EFI shell.
- On the EFI partition: replaced bootmgfw.efi and all its files from Windows 7 with Windows 8.1 couterparts apart from the BCD store (W7 bootmgfw.efi does not work on this laptop).
- My Intel HD 6000 card has bus/dev/func of 00:02:00 and its bus master bit is already set.
- Since it has direct connection to the chipset and does not go through a PCI bus, it should not require any VGAE register setting. However, as @mark1234 discovered, this is still needed. I chose the first available PCI bridge @ 00:1C:00 and set its VGA Enable register every time I boot.
- BCD store was initialized by the installer and has correct entries (verified using a Win8.1 setup recovery console).
The results? This is the weirdest part: once I run bootmgfw.efi from EFI shell the screen goes blank for a second, then
a single random character (W, 5, F so far)
appears on the screen, positioned in the top left corner of the screen where the EFI console was a second ago. After a few seconds Windows boot manager shows an error screen (0xc0000428, "Windows cannot verify the digital signature of this file", but does not say
which file). When I press Enter I get back to the choose your OS Windows boot manager screen. If I choose the same OS again, this time it shows a different error (0xc0000225, "File \Windows\System32\winload.efi is either corrupted or missing") and powers the computer off after a few seconds.
As far as I understand what
@d3vi1 was saying back in 2011 (
this post specifically) it might be down to how Windows 7 is expecting a legacy option ROM at a particular location and/or has to do with int10h. And without the environment especially crafted according to its weird expectations, Win7 possibly displays what happens to be at some particular memory location and crashes soon after its actions interfere with real stuff.
Since few of you mentioned shadowing the VGA ROM this in your later posts, is this still needed? Possible without having access to a CSM-booted linux to check stuff? Will be looking for the option ROM in UEFITools tomorrow but would love to hear your input in the meantime.
I hope that we can figure this one out somehow... There's lots of threads out there with "want to install W7 on my Air" and "not meant to be done, sorry" as the only reply offered. Once we jump the last hoops I will contribute back and write a step-by-step for any Air owner not prepared to upgrade to W8+.
EDIT: added lspci -v and lspci -tv output.