Commit 12c4bd

2026-04-10 22:33:27 OtterWiki: Add VM 201 macOS Sequoia – setup, OpenCore config, iCloud, full rollback instructions
container-und-vms.md ..
@@ 16,6 16,7 @@
| CT | 112 | claude-code | läuft | `192.168.178.82` / `terminal.ls-cloud.biz` |
| CT | 114 | games | läuft | `192.168.178.84` / `games.ls-cloud.biz` |
| VM | 200 | Windows11Pro | gestoppt | Proxmox-Konsole / [[vm-200-windows11pro]] |
+ | VM | 201 | macos-sequoia | läuft | Proxmox-Konsole / [[vm-201-macos-sequoia]] |
{{DataTable}}
/dev/null .. vm-201-macos-sequoia.md
@@ 0,0 1,189 @@
+ # VM 201 – macOS Sequoia (Hackintosh)
+
+ Stand: April 2026
+
+ > [!NOTE]
+ > macOS Sequoia als KVM-VM auf Proxmox. Läuft über OpenCore-Bootloader mit SMBIOS-Spoofing – kein nativer Apple-Support, aber vollständig funktionsfähig inkl. iCloud.
+
+ ## Basisdaten
+
+ | Parameter | Wert |
+ |---|---|
+ | **VM-ID** | `201` |
+ | **Name** | `macos-sequoia` |
+ | **OS** | macOS Sequoia 15.6.1 (24G90) |
+ | **CPU** | `host` passthrough, 4 Cores |
+ | **RAM** | 8.192 MB |
+ | **Firmware** | OVMF (UEFI), kein Secure Boot |
+ | **Machine** | q35 |
+ | **Display** | VMware SVGA |
+ | **Netzwerk** | vmxnet3, DHCP |
+
+ ## Disk-Übersicht
+
+ | Slot | LVM-Volume | Inhalt | Größe |
+ |---|---|---|---|
+ | `efidisk0` | `vm-201-disk-0` | OVMF UEFI NVRAM | 4 MB |
+ | `sata0` | `vm-201-disk-1` | macOS BaseSystem (Recovery-Image) | 1,3 GB |
+ | `sata2` | `vm-201-disk-3` | Macintosh HD (macOS-Installation) | 100 GB |
+ | `sata3` | `vm-201-disk-2` | OpenCore v21 Bootloader (GPT-Disk) | 152 MB |
+
+ **Boot-Reihenfolge:** `sata3` (OpenCore) → `sata0` (BaseSystem) → `sata2` (Macintosh HD)
+
+ ## Bootloader – OpenCore
+
+ - **Projekt:** [KVM-Opencore v21](https://github.com/thenickdude/KVM-Opencore) (REL-100, März 2024)
+ - **SMBIOS:** `iMacPro1,1`
+ - **SecureBootModel:** `j137` (T1-Chip-Simulation – für iCloud zwingend erforderlich)
+ - **ScanPolicy:** `0x0` (alle Disk-Typen)
+
+ > [!WARNING]
+ > Das OpenCore-„ISO" ist kein echtes ISO 9660, sondern ein **raw GPT-Disk-Image**. Es muss als **SATA-Disk** (nicht als CD-ROM) eingebunden werden – sonst findet OVMF keinen Bootloader.
+
+ ## SMBIOS-Seriennummern (iCloud-fähig)
+
+ | Feld | Wert |
+ |---|---|
+ | SystemSerialNumber | `C02YJRZXHX87` |
+ | MLB | `C02914310QXJG361M` |
+ | SystemUUID | `6B7D3ACC-FA73-4437-94ED-3CEF31EF773C` |
+ | ROM | `BC2411E13CD2` (= VM-MAC ohne Doppelpunkte) |
+
+ ## OpenCore config.plist bearbeiten
+
+ > [!IMPORTANT]
+ > Nur bei **gestoppter VM** durchführen.
+
+ ```bash
+ qm stop 201
+ mkdir -p /mnt/oc_efi
+ losetup -f --show -o $((40*512)) /dev/pve/vm-201-disk-2 # gibt /dev/loopX aus
+ mount /dev/loopX /mnt/oc_efi
+ nano /mnt/oc_efi/EFI/OC/config.plist
+ umount /mnt/oc_efi && losetup -d /dev/loopX
+ qm start 201
+ ```
+
+ ## iCloud & Apple-Dienste
+
+ | Dienst | Status |
+ |---|---|
+ | iCloud Drive, Fotos, Keychain | ✅ funktioniert |
+ | App Store | ✅ funktioniert |
+ | iMessage / FaceTime | ⚠️ manchmal blockiert – 24h warten, dann nochmal |
+ | Handoff, AirDrop, Sidecar | ❌ kein Bluetooth/WLAN in VM |
+ | GPU-Beschleunigung | ❌ kein Passthrough |
+ | Sleep / Standby | ❌ in macOS deaktivieren |
+
+ **Troubleshooting „Prüfung fehlgeschlagen":**
+ 1. SecureBootModel muss `j137` sein (nicht `Disabled`)
+ 2. iPhone/iPad: Einstellungen → Apple-ID → Passwort & Sicherheit → Bestätigungsdialog?
+ 3. Nochmal versuchen oder kurz über anderen IP-Bereich (Hotspot)
+
+ ## Neue SMBIOS-Seriennummern generieren
+
+ ```bash
+ # macserial herunterladen (einmalig)
+ curl -L https://github.com/acidanthera/OpenCorePkg/releases/download/1.0.7/OpenCore-1.0.7-RELEASE.zip -o /tmp/oc.zip
+ unzip /tmp/oc.zip 'Utilities/macserial/macserial.linux' -d /tmp/oc/
+ chmod +x /tmp/oc/Utilities/macserial/macserial.linux
+
+ # 3 Seriennummern generieren, einen Satz auswählen
+ /tmp/oc/Utilities/macserial/macserial.linux -m iMacPro1,1 -n 3
+
+ # EFI mounten und patchen
+ qm stop 201
+ losetup -f --show -o $((40*512)) /dev/pve/vm-201-disk-2
+ mount /dev/loopX /mnt/oc_efi
+
+ python3 << 'PYEOF'
+ import plistlib, uuid
+ with open('/mnt/oc_efi/EFI/OC/config.plist', 'rb') as f:
+ p = plistlib.load(f)
+ pi = p['PlatformInfo']['Generic']
+ pi['SystemSerialNumber'] = 'NEUE_SERIAL' # ← anpassen
+ pi['MLB'] = 'NEUE_MLB' # ← anpassen
+ pi['SystemUUID'] = str(uuid.uuid4()).upper()
+ pi['ROM'] = bytes.fromhex('BC2411E13CD2')
+ with open('/mnt/oc_efi/EFI/OC/config.plist', 'wb') as f:
+ plistlib.dump(p, f)
+ print('Fertig:', pi['SystemSerialNumber'])
+ PYEOF
+
+ umount /mnt/oc_efi && losetup -d /dev/loopX
+ qm start 201
+ ```
+
+ ---
+
+ ## VM vollständig entfernen (Rollback)
+
+ > [!WARNING]
+ > Diese Schritte löschen die VM und **alle zugehörigen Daten unwiderruflich**. Kein Backup nötig, aber sicher sein.
+
+ ### Schritt 1 – VM stoppen und vollständig löschen
+
+ ```bash
+ qm stop 201
+ qm destroy 201 --purge
+ ```
+
+ `--purge` entfernt automatisch alle LVM-Volumes:
+ - `vm-201-disk-0` (EFI NVRAM, 4 MB)
+ - `vm-201-disk-1` (BaseSystem, 1,3 GB)
+ - `vm-201-disk-2` (OpenCore, 152 MB)
+ - `vm-201-disk-3` (Macintosh HD, 100 GB)
+ - `/etc/pve/qemu-server/201.conf`
+
+ ### Schritt 2 – Heruntergeladene Dateien entfernen
+
+ ```bash
+ # OpenCore ISO aus local-Storage
+ rm -f /var/lib/vz/template/iso/OpenCore-v21.iso
+
+ # BaseSystem-Dateien auf HDD (hdd5tb)
+ rm -f /mnt/storage/pve-data/iso/BaseSystem.dmg
+ rm -f /mnt/storage/pve-data/iso/BaseSystem.img
+ rm -f /mnt/storage/pve-data/iso/BaseSystem.chunklist
+
+ # OSX-KVM Projektverzeichnis
+ rm -rf /opt/OSX-KVM
+
+ # macserial / OpenCorePkg (falls vorhanden)
+ rm -rf /tmp/oc/ /tmp/oc.zip /tmp/oc107* /tmp/oc107.zip
+ ```
+
+ ### Schritt 3 – Optionale Aufräumarbeiten
+
+ ```bash
+ # Mount-Verzeichnisse entfernen
+ rmdir /mnt/oc_efi /mnt/macos_installer 2>/dev/null || true
+
+ # Tools deinstallieren (nur wenn nicht anderweitig genutzt)
+ apt remove -y dmg2img p7zip-full
+ ```
+
+ ### Verifikation – alles weg?
+
+ ```bash
+ qm list # VM 201 darf nicht erscheinen
+ lvs | grep vm-201 # darf keine Ausgabe liefern
+ ls /var/lib/vz/template/iso/ | grep -i opencore
+ ls /mnt/storage/pve-data/iso/ | grep -iE 'base|opencore'
+ ls /opt/OSX-KVM 2>/dev/null && echo 'NOCH DA' # nichts ausgeben = OK
+ ```
+
+ ---
+
+ ## Prüfung / Status
+
+ ```bash
+ qm status 201
+ qm config 201
+ ```
+
+ ## Verwandte Seiten
+
+ - [[container-und-vms]]
+ - [[vm-200-windows11pro]]
+ - [[infrastruktur-uebersicht]]
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9