rtrouton / create_macos_recovery

Tool for repairing the Recovery volume (APFS) or partition (HFS+) on Macs running macOS 10.13.x or later.
MIT License
118 stars 23 forks source link

Big Sur Support #9

Closed alessandrodn closed 3 years ago

alessandrodn commented 4 years ago

I'm trying to use the script on macOS Big Sur beta 5, but the script failed with an "Unsupported version" error. Is there any chance to adopt it?

Thanks

disrupted commented 4 years ago

would also love that. for some reason my Mac doesn't want to boot into the built-in Recovery partition (which I can see using diskutil list) but always goes straight to Internet Recovery so I'd like to rebuild it.

cuber commented 4 years ago

Got the same problem, cannot boot from build-in recovery, only network boot showed up. And the 'Install macOS Big Sur.app' dose not have BaseSystem.dmg directly.

It was in a zipped file named with a hash code. ee3ab6c04234b360dd8fca93c0ae49f957bf0843.zip

After tried, i just got an error

APFS EnsureRecoveryBooter: Async call initiate
APFS EnsureRecoveryBooter: Operation in progress
APFS EnsureRecoveryBooter: Operation start confirmed
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Started operations on Target (Subject) Volume = disk1s1
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Input options: SkipAutomaticTargetDiskSubstitutionForVolumeGroups=(null)
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Input options: BaseSystemDMG=BaseSystem.dmg ChunkList=BaseSystem.chunklist
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Input options: AppleDiagnosticsDMG=AppleDiagnostics.dmg ChunkList=AppleDiagnostics.chunklist EnforceBlacklist=0 Delete=(null)
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Input options: InstallAPFSMacOSBootFiles=0 APFSMacOSBootFileSource=(null)
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Input options: MacOSOpenDirectorySourceOverride=(null)
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Input options: MacOSSourceOverride: Lib=(null) Var=(null) Etc=(null) Usr=(null)
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Input options: SlurpFromOldAppleBoot=0 DeleteOldAppleBoot=0
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Input options: AddKernelCoreDump=0
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Vetting inputs
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Found (Parent) Container = 0x700002f9f9b0=disk1
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: The Target Volume is part of a Volume Group
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Volume Group ID (UUID) = 9619FBF2-6172-4287-8F57-CAAFF8E22D79
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Found relevant Container's {Designated,Additional}PhysicalStore DPS=0x700002f9f900=disk0s2 APS=0x700002f9f7a0=NOTHING
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Found relevant Container's DesignatedPhysicalStore's Whole = DPSWhole=0x700002f9f850=disk0
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Ensuring that the Subject Volume choice is the relevant Volume Group's SYSTEM Role Volume
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Target's Volume Group's SYSTEM Role Volume count = 1
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Modifying Subject Volume choice from InputTarget=0x700002f9fa60=disk1s1=INTEL - 数据 to System=(SansAnySnapInfo)=0x7f8ca451d558=disk1s6=INTEL
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Checking if an APFS Snapshot of the Subject Volume is mounted instead of the base Subject Volume
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Target Subject Volume itself is mounted, so no Snapshot lookup will occur
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Chosen Subject (Target) Volume = 0x700002f9fa60=disk1s6=INTEL
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Subject Volume subjVolDiskUUID=8CBB2574-FF59-436C-9920-924ACD578A81 subjVolMP=/private/tmp/msu-target-NbLLtvKr subjHasMacOS=1 subjIsEncrypted=0
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: ContainerVolumeCount=7 List=0x7f8ca4714da0={ disk1s1 disk1s2 disk1s3 disk1s4 disk1s5 disk1s6 disk1s7 }={ 0x7f8ca4711ba0 0x7f8ca4712480 0x7f8ca4712d70 0x7f8ca4713660 0x7f8ca47140a0 0x7f8ca4714900 0x7f8ca4714cd0 } err=0
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: ContainerVMVolumeCount=1 err=0
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: ContainerInstallerVolumeCount=0 err=0
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: ContainerPrebootVolumeCount=1 err=0
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: ContainerRecoveryVolumeCount=1 err=0
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: MountedVolumesCount=7 List=0x7f8ca5322820={ disk1s6s1 disk1s4 disk1s2 disk1s7 disk1s1 disk1s5 disk1s6 }={ 0x7f8ca53211b0 0x7f8ca53213e0 0x7f8ca5321580 0x7f8ca5321750 0x7f8ca53222b0 0x7f8ca5322470 0x7f8ca53226a0 }=0x7f8ca5322870={ / /System/Volumes/VM /System/Volumes/Preboot /System/Volumes/Update /System/Volumes/Data /Volumes/Dev /private/tmp/msu-target-NbLLtvKr } err=0
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Verified that if BS or AD DMGs given, then their ChunkLists also given
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Determined recoverySystemInstallCommanded=1 diagnosticsSystemInstallCommanded=1
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Attaching disk image BaseSystem.dmg
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: At exit with retErr=-69736
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: This Preboot Volume, if it now exists, has been newly-created by us, so we will ensure-unmount it
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Did best-effort unmount of Preboot Volume err=-69883
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: This Recovery Volume, if it now exists, has been newly-created by us, so we will ensure-unmount it
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Did best-effort unmount of Recovery Volume err=-69883
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Not detaching Base System disk image because it was previously attached
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Not detaching Diagnostics disk image because it was previously attached
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Did best-effort unmount and detach source images as needed to restore previous dmg states
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: MountedVolumesCount=7 List=0x7f8ca5325ca0={ disk1s6s1 disk1s4 disk1s2 disk1s7 disk1s1 disk1s5 disk1s6 }={ 0x7f8ca53251c0 0x7f8ca5325270 0x7f8ca5325390 0x7f8ca5325560 0x7f8ca5325730 0x7f8ca53258f0 0x7f8ca5325b20 }=0x7f8ca5325cf0={ / /System/Volumes/VM /System/Volumes/Preboot /System/Volumes/Update /System/Volumes/Data /Volumes/Dev /private/tmp/msu-target-NbLLtvKr } err=0
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Releasing memory
APFS EnsureRecoveryBooter: EnsureRecoveryBooter: Exiting operations
APFS EnsureRecoveryBooter: Operation 100.0% complete
APFS EnsureRecoveryBooter: Operation fully complete
APFS EnsureRecoveryBooter: Operation finished
APFS EnsureRecoveryBooter: Error: Couldn't attach disk image (-69736)
CodingMarkus commented 3 years ago

would also love that. for some reason my Mac doesn't want to boot into the built-in Recovery partition (which I can see using diskutil list) but always goes straight to Internet Recovery so I'd like to rebuild it.

Same problem here. The partition is there, I can even mount it with diskutil mount /dev/disk1s3 and according to SystemVersion.plist it is 11.3.1, but it won't boot with CMD+R and won't show up when keeping ALT pressed during boot. Very annoying.

rtrouton commented 3 years ago

macOS Big Sur made significant changes to the Recovery volume on both Intel and Apple Silicon Macs and I have not found a way to support Big Sur like earlier OS. It is unlikely that this script will support any version of macOS newer than macOS Catalina.