Ich mal bisschen auf einem System mit funktionierendem NVRAM rumprobiert.
Ich hätte da nen anderen Ansatz, um das Problem zu lösen.
Der LastBootedVolume Parameter wird aus dem NVRAM-Eintrag "efi-boot-device" ausgelesen.
Drin stehen tut dann (aus Base64 in Text konvertiert)
Die entprechende Partition wird dann vormakiert.
Nach Auswahl und Auswahl zum Boot wird dann das entsprechende Volumen wieder reingeschrieben mit dem oben genannten Eintrag. (kann man im Clover Bootlog gut nachverfolgen).
Ausgelesen aus dem NVRAM kommt es zum Eintrag:
- <key>efi-boot-device</key>
- <data>
- PGFycmF5PjxkaWN0PjxrZXk+SU9NYXRjaDwva2V5PjxkaWN0PjxrZXk+SU9Qcm92aWRl
- ckNsYXNzPC9rZXk+PHN0cmluZz5JT01lZGlhPC9zdHJpbmc+PGtleT5JT1Byb3BlcnR5
- TWF0Y2g8L2tleT48ZGljdD48a2V5PlVVSUQ8L2tleT48c3RyaW5nPkYxRjYwQ0I2LTVB
- RkEtNEU1MS1CREFGLUQ1MDg4M0VGMjgyMjwvc3RyaW5nPjwvZGljdD48L2RpY3Q+PC9k
- aWN0PjwvYXJyYXk+
- </data>
Passt man den Eintrag mit der entsprechenden Partitions-UUID, wird diese von Clover makiert.
Unter Windows und der Powershell lässt sich die EFI Partition entsprechend einbinden und wieder entfernen, mit Powershell kann man die nvram.plist auch im Textformat auslesen.
Mann müsste nur noch den efi-boot-device über die Powershell anpassen (mit der UUID der Windows EFI Partition) und man hätte ein Startskript, den LastBootedVolume Eintrag auch für Windows setzen kann.
Dummerweise ist der Eintrag jedoch 288 Zeichen lang in der nvram.plist, eine neue Zeile wird nach 68 begonnen. Da stecke ich im Grunde gerade fest, was das Powershell-Skript angeht.