How to get Catalina Beta 6 running on VMware Fusion 11.1.1
Method 1: Having an operational Catalina beta 5 (19A526h) or earlier vm already
1 - Obtain the full beta 6 installer wrapped in a disk image (installinstallmacos.py does this nicely)
2 - Have a working Catalina install on a vm, beta 5 (19A526h) or earlier
3 - Add an extra disk the working Catalina machine, format the disk as HFS (replace as appropriate but I assume disk1)
sudo diskutil eraseDisk JHFS+ CatalinaBeta6 disk1
4 - Install Catalina beta 6 to the new disk
sudo installer -pkg [path to]/Install macOS Catalina Beta.app/Contents/SharedSupport/InstallInfo.plist -target /Volumes/CatalinaBeta6 -verbose -dumplog
5 - put the prelinkedkernel aside
sudo mv "/Volumes/CatalinaBeta6 1/System/Library/PrelinkedKernels/prelinkedkernel" "/Volumes/CatalinaBeta6 1/System/Library/PrelinkedKernels/prelinkedkernel_apple"
6 - put the AppleIntelMCEReporter.kext aside
sudo mv "/Volumes/CatalinaBeta6 1/System/Library/Extensions/AppleIntelMCEReporter.kext" "/Volumes/CatalinaBeta6 1/Users/Shared/AppleIntelMCEReporter.kext"
7 - generate a new prelinkedkernel
kextcache -c "/Volumes/CatalinaBeta6 1/System/Library/PrelinkedKernels/prelinkedkernel" -K "/Volumes/CatalinaBeta6 1/System/Library/Kernels/kernel" -l -- "/Volumes/CatalinaBeta6 1/System/Library/Extensions" "/Volumes/CatalinaBeta6 1/System/Library/Extensions/IOACPIFamily.kext"
8 - reboot from freshly installed system
Method 2: Starting from scratch
[ Build a USB booter ]
In order to get Catalina running on Fusion we must have a prelinkedkernel available that includes the IOACPIFamily.kext. Unfortunately the Apple supplied one does not so we have to build our own. In order to build a prelinkedkernel we have to use the command kextcache running on Catalina. So we're in a bit of a catch-22. Fortunately we can build a USB boot stick out of the files in the installer app and boot into a Catalina base system on a physical Mac (without having to do a full install of Catalina mind you)
Attach the beta 6 InstallESD.dmg and Pacifist from https://charlessoft.com to extract the "kernel" file from the Core.pkg ( /System/Library/Kernels/kernel )
copy the kernel to your USB stick
#!/bin/bash
PATHTOBASESYSTEM="BaseSystem.dmg"
PATHTOBASESYSTEMCHUNKLIST="BaseSystem.chunklist"
PATHTOUSBSTICK="/Volumes/USBSTICK"
mkdir $PATHTOUSBSTICK/com.apple.catalina.booter
hdiutil attach $PATHTOBASESYSTEM
cp /Volumes/macOS\ Base\ System/System/Library/PrelinkedKernels/prelinkedkernel $PATHTOUSBSTICK/com.apple.catalina.booter/prelinkedkernel
cp /Volumes/macOS\ Base\ System/System/Library/CoreServices/boot.efi $PATHTOUSBSTICK/com.apple.catalina.booter/boot.efi
cp /Volumes/macOS\ Base\ System/System/Library/CoreServices/SystemVersion.plist $PATHTOUSBSTICK/com.apple.catalina.booter/SystemVersion.plist
hdiutil detach $PATHTOBASESYSTEM
defaults write $PATHTOUSBSTICK/com.apple.catalina.booter/com.apple.Boot "Kernel Cache" \\\\com.apple.catalina.booter\\\\prelinkedkernel
defaults write $PATHTOUSBSTICK/com.apple.catalina.booter/com.apple.Boot "Kernel Flags" "root-dmg=file:///com.apple.catalina.booter/BaseSystem_modded.dmg -v"
plutil -convert xml1 $PATHTOUSBSTICK/com.apple.catalina.booter/com.apple.Boot.plist
cp $PATHTOBASESYSTEM $PATHTOUSBSTICK/com.apple.catalina.booter/BaseSystem.dmg
cp $PATHTOBASESYSTEMCHUNKLIST $PATHTOUSBSTICK/com.apple.catalina.booter/BaseSystem.chunklist
sudo bless -folder $PATHTOUSBSTICK/com.apple.catalina.booter -file $PATHTOUSBSTICK/com.apple.catalina.booter/boot.efi -label CatalinaBooter -verbose
Boot any Mac supporting Catalina from the USB stick
Once booted open Terminal
mount -uw /Volumes/Image\ Volume
kextcache -c /Volumes/Image\ Volume/com.apple.catalina.booter/prelinkedkernel_vm -K /Volumes/Image\ Volume/kernel -l -- /System/Library/Extensions /System/Library/Extensions/IOACPIFamily.kext
Boot back in to regular macOS and rename $PATHTOUSBSTICK/com.apple.catalina.booter/prelinkedkernel to something else and rename $PATHTOUSBSTICK/com.apple.catalina.booter/prelinkedkernel_vm to $PATHTOUSBSTICK/com.apple.catalina.booter/prelinkedkernel
Build a virtual booter for Fusion
hdiutil create -srcfolder $PATHTOUSBSTICK/CatalinaBooter -format UDRW /Users/Shared/CatalinaBooter
Generate a vmdk file called CatalinaBooter.vmdk ( 1178426 is the number of bytes consumed by CatalinaBooter.dmg divided by 512. Replace as appropriate )
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=a285aa11
parentCID=ffffffff
createType="monolithicFlat"
# Extent description
RW 1178426 FLAT "CatalinaBooter.dmg" 0
# The Disk Data Base
#DDB
ddb.adapterType = "lsilogic"
ddb.virtualHWVersion = "6"
Create a new vm
Drag the Install macOS Catalina Beta app onto the Window
Choose Apple -> macOS 10.14 as the machine type
Ciick customize settings
Choose where to save the vm
Navigate there in Finder
Right click the vm in Finder to show contents
edit the vmx file
delete any line starting with "board-id"
add the following 2 lines:
board-id.reflectHost = "FALSE"
board-id = "Mac-94245B3640C91C81"
Mount “Temporary Installation Source Disk.dmg”
Replace the following paths with our customized prelinkedkernel
/Volumes/Install\ macOS\ Catalina\ Beta/.IABootFiles/prelinkedkernel
/Volumes/Install\ macOS\ Catalina\ Beta/System/Library/PrelinkedKernels/prelinkedkernel
Unmount “Install macOS Catalina Beta”
Launch the vm
Start installation
First reboot - we’re hanging
Shutdown the vm
Attach the CatalinaBooter vmdk
Power on to firmware
Boot from the CatalinaBooter boot.efi
Once booted opened Terminal and copy the prelinkedkernel in place
cp /Volumes/Image\ Volume/com.apple.catalina.booter/prelinkedkernel /Volumes/Macintosh\ HD/macOS\ Install\ Data/Locked\ Files/Boot\ Files/prelinkedkernel
Reboot from Macintosh HD
Installation commences HUZZAH!
Second reboot - we're hanging again
Boot from CatalinaBooter
Open Terminal
cp /Volumes/Image\ Volume/com.apple.catalina.booter/prelinkedkernel /Volumes/Macintosh\ HD/System/Library/PrelinkedKernels/prelinkedkernel
mv /Volumes/Macintosh\ HD/System/Library/Extensions/AppleIntelMCEReporter.kext /Volumes/Macintosh\ HD/Users/Shared/AppleIntelMCEReporter.kext
mv /Volumes/Macintosh\ HD/System/Library/Extensions/AppleIntelMCEReporter.kext /Volumes/Macintosh\ HD/Users/Shared/AppleIntelMCEReporter.kext
Reboot and REJOICE!
Method 3: Combining the two
That's a lot of work. Can't we do better? Well we could try to create a minimal booter and install the OS as a package directly from there.
Sort of like this: https://gist.github.com/macsimom/47be8b00f561cf17ed3547474db3b53b
I actually ended up preferring this method. Although it requires a physical Mac and a USB stick/drive it is the least storage demanding and most efficient I think.
Sort of like this: https://gist.github.com/macsimom/47be8b00f561cf17ed3547474db3b53b
I actually ended up preferring this method. Although it requires a physical Mac and a USB stick/drive it is the least storage demanding and most efficient I think.
Comments
Post a Comment