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.
71 lines
3.2 KiB
Markdown
71 lines
3.2 KiB
Markdown
# 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.
|