Funny thing, now after a clean BigSur beta2 install I also have a sealed snapshot system volume and can't use "sudo mount -uw /", while the "Big Sur Data Volume" is already unlocked for any Big Sur installation, booting from another HighSierra I can detect also the "Big Sur System Volume" and it's already mounted as writeable, instead booting from Catalina the BigSur beta2 System and Data are merged in one only writeable Volume.
FYI, I sent parrotgeek1 and dosdude1 the attached files and the following description of the current situation with building a prelinkedkernel under snapshots. The method described should work if you don't need the legacy usb injection.
I have been experimenting with building prelinked kernels in the presence of snapshots on an unsupported MacPro 3,1 using a copy of Big Sur Beta 2 installed on an external usb drive attached to a supported MacBook Pro 14,1. The attached almost_working_big_sur_kext_recipe.txt file documents the steps I took to do this. The attached system-prelinked-kernel.log file contains the terminal output during the execution of the steps...
sudo mount -o nobrowse -t apfs /dev/disk7s5 /Volumes/BigSur/Users/howarth/mntpoint
sudo touch /Volumes/BigSur/Users/howarth/mntpoint/Library/Extensions/
sudo chroot /Volumes/BigSur/Users/howarth/mntpoint mount -uw /
sudo chroot /Volumes/BigSur/Users/howarth/mntpoint kextcache -system-prelinked-kernel
This kernel at
prelinkedkernel.snapshot_system-prelinked-kernel is able to boot properly with the exception of the LegacyUSBInjector.kext. The result is that booting with this prelinkedkernel under Big Sur Beta 2 on a MacPro 3,1 produces the graphical display that requests a Bluetooth Keyboard be found due to the absence of a usb one. The fact that this appears indicates that all the other kext are being properly loaded from the prelinkedkernel aside from the changes associated with LegacyUSBInjector.kext.
Any idea what could be going wrong here? I don't see any obvious errors in the output from the execution...
sudo chroot /Volumes/BigSur/Users/howarth/mntpoint kextcache -system-prelinked-kernel
in the attached system-prelinked-kernel.log. Also a simple check of the prelinkedkernel shows...
$ grep -c System prelinkedkernel.snapshot_system-prelinked-kernel
21
$ grep -c Library prelinkedkernel.snapshot_system-prelinked-kernel
72
$ grep -c howarth prelinkedkernel.snapshot_system-prelinked-kernel
0
which indicates that the mount point of the mounted snapshot is not creeping into the created prelinkedkernel past the chroot.
Any ideas of what I might try here to resolve this issue? Also, if you have an unsupported Mac with Big Sur installed (which can use the Catalina Patcher copy of AppleHDA.kext and the Catalina copy of IO80211Family.kext) can you confirm that the attached prelinkedkernel boots fine when LegacyUSBInjector.kext isn't required? I assume that the default usb system is still present but we are losing the changes that LegacyUSBInjector.kext is supposed to add.
I am still confused about how kextcache is supposed to detect the changes in LegacyUSBInjector.kext since it has no binary code and doesn't register in System Profiler under patched Catalina as being loaded extension. The man page description of...
-system-prelinked-kernel
This option is a convenience to update the prelinked kernel used
for startup on the root volume, with all kexts in /Sys-
tem/Library/Extensions and /Library/Extensions that have been
loaded to date. This option implies -all-loaded
...certainly suggests that this might be a problem as it is focused on loaded extensions only.
ps Note that I had to create the directory. /Library/Apple/System/Library/PrelinkedKernels and the symlink pointing to /System/Library/Caches at /Library/Apple/System/Library/Caches in the mounted snapshot for the command...
sudo chroot /Volumes/BigSur/Users/howarth/mntpoint kextcache -system-prelinked-kernel
to be able to create the symlink to the startup cache for the prelinked kernel.