Files
macos-usb-stick-creator/native-macos
ARIA e4dd003bd6 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.
2026-07-18 09:53:41 +00:00
..

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

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.