feat(native-macos): create-stick.sh — nativer createinstallmedia-Weg fuer echte Macs

Alternative zum Docker/Linux-Tool: nutzt softwareupdate --fetch-full-installer
+ createinstallmedia direkt, wenn ein Mac (10.15+) verfuegbar ist. Bewusst
unabhaengig vom ./downloads-Ordner, da createinstallmedia die volle
Install-App braucht, nicht die rohen Katalog-Images des Docker-Pfads.
Reines Terminal-Menue ohne externe Abhaengigkeiten (softwareupdate, diskutil,
PlistBuddy). Zukunftssicher analog zum Docker-Tool, da Apples eigene
Versionsliste live abgefragt wird.
This commit is contained in:
ARIA
2026-07-18 09:53:41 +00:00
parent 6f8538428c
commit e4dd003bd6
3 changed files with 323 additions and 0 deletions
+70
View File
@@ -0,0 +1,70 @@
# Nativer macOS-Weg (createinstallmedia)
Alternative zum Docker/Linux-Tool im Projekt-Root — **nur nutzbar, wenn
gerade ein echter Mac zur Verfuegung steht** (macOS 10.15 Catalina oder
neuer). Dafuer bekommst du hierueber den offiziell von Apple sauber
funktionierenden Weg: die echte `createinstallmedia`, statt des
Recovery-Extraktions-Workarounds fuer den Big-Sur+-Pfad im Docker-Tool.
## Warum ein eigenes Script, warum nicht die `downloads/`-Bibliothek wiederverwenden?
Kurz: **andere Bildformate, nicht kompatibel.**
- Das Docker-Tool laedt rohe Katalog-Images (`BaseSystem.dmg` bzw.
`InstallAssistant.pkg`) und schreibt sie per `dd` direkt auf den Stick.
Funktioniert ohne Mac, aber `createinstallmedia` kann mit diesen rohen
Dateien nichts anfangen — es braucht die komplette, fertig gepackte
**"Install macOS X.app"**.
- Der offizielle, von Apple unterstuetzte Weg an genau diese App zu kommen
(auch ohne App-Store-Anmeldung) ist der macOS-Bordbefehl
`softwareupdate --fetch-full-installer`. Das gibt es nur unter echtem
macOS ab Catalina.
Deshalb ist dieses Script komplett unabhaengig vom `./downloads`-Ordner
des Docker-Tools. Es laedt sich seine App-Kopie selbst, direkt von Apple.
## Zukunftssicherheit
`softwareupdate --list-full-installers` fragt Apples eigene Server live ab
— genau wie der Katalog-Check im Docker-Tool, nur eben Apples eigenes
Tool statt eigenem Parser. Neue macOS-Versionen tauchen automatisch in der
Liste auf, ohne dass hier Code angepasst werden muss.
## Nutzung
```bash
cd native-macos
chmod +x create-stick.sh # falls das Ausfuehr-Bit beim Kopieren verloren ging
./create-stick.sh
```
Fuehrt durch vier Schritte (reines Terminal-Menue, keine externen
Abhaengigkeiten — nur `softwareupdate`, `diskutil`, `PlistBuddy`,
`createinstallmedia`, alles Bordmittel):
1. **Versionsliste** von Apple abrufen, Version auswaehlen.
2. **Download** der vollen Installer-App via `softwareupdate
--fetch-full-installer` (wird uebersprungen, wenn die App schon unter
`/Applications` liegt).
3. **USB-Stick auswaehlen** — Liste nur externer, physischer Laufwerke
(`diskutil list -plist external physical`), danach Sicherheitsabfrage:
exakter Geraetepfad muss nochmal eingetippt werden, bevor irgendwas
geloescht wird.
4. **`createinstallmedia --nointeraction`** laeuft mit `sudo`, live-Ausgabe
im Terminal. Am Ende optional die (mehrere GB grosse) Installer-App
wieder loeschen.
## Grenzen
- Nur macOS 10.15+ (Catalina oder neuer) als **Host**, auf dem das Script
laeuft — das Zielsystem, auf das installiert wird, kann trotzdem
jede von Apple unterstuetzte Version sein.
- Kein Multiboot-Support (anders als das Docker-Tool) —
`createinstallmedia` erstellt immer einen kompletten Single-Version-Stick.
Waere technisch nachruestbar (mehrere Partitionen, mehrere
`createinstallmedia`-Laeufe mit `--volume` auf je eine Partition), aber
aktuell nicht gebaut.
- Downloads landen unter `/Applications` (Apples Standardverhalten von
`softwareupdate`), nicht im Projektordner — dieser Zweig ist bewusst
nicht auf Portabilitaet/externe Platte ausgelegt wie das Docker-Tool,
sondern auf den einfachsten Weg wenn gerade ein Mac da ist.