@w1z, FAT driver implementations in the firmware often contain serious errors, which result in likely partition filesystem corruption after write operations. We saw this happen with APTIO IV and Insyde in firmwares before 2015. Most likely MacPro firmware has it too. You can either replace FAT driver with the one from EDK II or disable stuff like logging in a production environment.
You will have to find the path of your drives with GFXUTIL.
Any hints on how to go about this?
Downloaded the util but not sure what next steps are.
Cheers
gfxutil -f pci144d,a801
Another easy way is to use Hackintool -> PCI page -> find your device name -> get the device pathAny hints on how to go about this?
Downloaded the util but not sure what next steps are.
Cheers
First, get the name of your device: look for "AHCI Controller" or "NVM Express Controller" in System Information > PCI. You should see something like "pci144d,a801." Then, for example, enter the following in terminal:
Code:gfxutil -f pci144d,a801
Another easy way is to use Hackintool -> PCI page -> find your device name -> get the device path
No need to do that at all. Just create a standard USB key with Microsoft Windows Media Creation Tool, then boot your Mac Pro from it, it will do an UEFI install.How i instaled Windows in UEFI mode.
Tools needed:
Brew (to install gdisk)Gdisk (GPT Fdisk)Virtual BoxWindows 10 ISO imageMore than 3 hard drives
First config virtual box to have full access to disk (In Mac OS preference panel)
Now open the Terminal and type:
sudo -s
Enter your password and hit return.
Type it:
diskutil list
Take note to the number of disk designated for Windows. (In my Mac is /dev/disk3)
Type it:
diskutil umountdisk /dev/disk# # = the number of your disk
Type it:
VBoxManage internalcommands createrawvmdk -filename "</path/to/file>.vmdk" -rawdisk /dev/disk#
Type it:
/Applications/VirtualBox.app/Contents/MacOS/VirtualBox
In the VirtualBox, create a VM for Windows 10 with the vmdk file created. Set the VM to use EFI.
Boot the VM and install Windows. At the end don’t create a user! Type Control + Shift + F3 to enter in audit mode.
In audit mode (sysprep) download and extract the driver** for your video card and install it from the INF file (AMD/DriverVersion/Packages/Drivers/Display/WT6A_INF)! Not from Setup aplication.
Now open the sysprep and select “Generalize” and “Shutdown”. After that close VirtualBox. If the disk not show in Mac OS Desktop, mount with diskutil mount /dev/disk#. Open the disk and check for EFI folder, if partition has no name, rename it to EFI.
Type gdisk /dev/disk#
Gdisk show an error in the partition and fix it, now rename the Windows partition to BOOTCAMP, save the modification and exit gdisk.
Then install (copy) OpenCore to a secondary disk (here i used my media disk) and bless it.
Now restart your Mac,
The OpenCore bootpicker now show BOOTCAMP Windows. Boot it and install driver with brigadier (google it).
** I needed to do this, because otherwise I would lose the video signal right after the boot.
Works!!
I have like 6 or 7 injected kexts from OC I believe.That helped. I've updated my post with my new findings. Could you try the following only if you have kexts loaded via OC:
- Mount EFI partition via terminal ie. sudo diskutil mount diskXsX
- Choose a kext that is loaded by OC and referenced in config.plist from your OS drive to your EFI/OC/Kexts folder
- Open disk utility and run first aid on the EFI partition
- Report your result
Thanks
No need to do that at all. Just create a standard USB key with Microsoft Media Creator, then boot your Mac Pro from it, it will do an UEFI install.
If i disconnect all my drives, i loose Opencore! And my VGA has no bootscreen without this!Windows could not prepare the computer to boot into the next phase of installation. To install Windows, restart the installation.
Ok, you should have started explaining that.And my VGA has no bootscreen without this!
Here is how I did it:Any hints on how to go about this?
<key>Patch</key>
<array>
<dict>
<key>Arch</key>
<key>x86_64</key>
<key>Base</key>
<string></string>
<key>Comment</key>
<string>IONVMeFamily Patch#External</string>
<key>Count</key>
<integer>0</integer>
<key>Enabled</key>
<true/>
<key>Find</key>
<data>
RXh0ZXJuYWw=
</data>
<key>Identifier</key>
<string>com.apple.iokit.IONVMeFamily</string>
<key>Limit</key>
<integer>0</integer>
<key>Mask</key>
<data>
</data>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string></string>
<key>Replace</key>
<data>
SW50ZXJuYWw=
</data>
<key>ReplaceMask</key>
<data>
</data>
<key>Skip</key>
<integer>0</integer>
</dict>
</array>
It isn't that hard to work around this problem. e.g. put OpenCore on a USB drive, and boot from it. So that you can haveIf your Mac contains multiple physical drives, you will need to disconnect all disks except the one which you intend to install Windows on or you may encounter the following error:
If i disconnect all my drives, i loose Opencore! And my VGA has no bootscreen without this!
One thing still, do you guys get sleep to work properly? It seems after reboot first time the machine sleeps normally but after wake it will not sleep anymore. (Power led blinks one or two times and then turns solid white again, also the video card stays powered on)
Here is how I did it:
I have like 6 or 7 injected kexts from OC I believe.
I dont use diskutil to mount.
i use this
sudo mkdir /Volumes/EFI; sudo mount -t msdos /dev/disk0s1 /Volumes/EFI; open /Volumes/EFI
ill have to mount it explicitly and try later today. When I ran first aid on the root of the drive it showed that it checked the efi partition so I would not expect different results.
Im also debug logging OC to the efi partition and I’m not sure why you think kext injection is related.
I’m having a hard time visualizing this.Just tried your method of mounting and I can replicate the corruption in the EFI filesystem as soon as I copy a kext file that is already loaded by OC from the OS to the EFI/OC/Kexts folder. No corruption occurs with plist, efi or log/txt file types.
I have not looked at how OC injects kexts in depth but I believe the process involves loading the kexts with direct file access to the kext executables. Overwriting the kexts while they're still loaded causes the reported corruption in the EFI filesystem.
I’m having a hard time visualizing this.
Can you do a screen recording?
Damn that is strange. It’s exactly as you explained it but still a WTF moment.Here you go - https://www.screencast.com/t/EymwXxEplWg