Blame

12c4bd OtterWiki 2026-04-10 22:33:27
Add VM 201 macOS Sequoia – setup, OpenCore config, iCloud, full rollback instructions
1
# VM 201 – macOS Sequoia (Hackintosh)
2
3
Stand: April 2026
4
5
> [!NOTE]
6
> 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.
7
8
## Basisdaten
9
10
| Parameter | Wert |
11
|---|---|
12
| **VM-ID** | `201` |
13
| **Name** | `macos-sequoia` |
14
| **OS** | macOS Sequoia 15.6.1 (24G90) |
15
| **CPU** | `host` passthrough, 4 Cores |
16
| **RAM** | 8.192 MB |
17
| **Firmware** | OVMF (UEFI), kein Secure Boot |
18
| **Machine** | q35 |
19
| **Display** | VMware SVGA |
20
| **Netzwerk** | vmxnet3, DHCP |
21
22
## Disk-Übersicht
23
24
| Slot | LVM-Volume | Inhalt | Größe |
25
|---|---|---|---|
26
| `efidisk0` | `vm-201-disk-0` | OVMF UEFI NVRAM | 4 MB |
27
| `sata0` | `vm-201-disk-1` | macOS BaseSystem (Recovery-Image) | 1,3 GB |
28
| `sata2` | `vm-201-disk-3` | Macintosh HD (macOS-Installation) | 100 GB |
29
| `sata3` | `vm-201-disk-2` | OpenCore v21 Bootloader (GPT-Disk) | 152 MB |
30
31
**Boot-Reihenfolge:** `sata3` (OpenCore) → `sata0` (BaseSystem) → `sata2` (Macintosh HD)
32
33
## Bootloader – OpenCore
34
35
- **Projekt:** [KVM-Opencore v21](https://github.com/thenickdude/KVM-Opencore) (REL-100, März 2024)
36
- **SMBIOS:** `iMacPro1,1`
37
- **SecureBootModel:** `j137` (T1-Chip-Simulation – für iCloud zwingend erforderlich)
38
- **ScanPolicy:** `0x0` (alle Disk-Typen)
39
40
> [!WARNING]
41
> 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.
42
43
## SMBIOS-Seriennummern (iCloud-fähig)
44
45
| Feld | Wert |
46
|---|---|
47
| SystemSerialNumber | `C02YJRZXHX87` |
48
| MLB | `C02914310QXJG361M` |
49
| SystemUUID | `6B7D3ACC-FA73-4437-94ED-3CEF31EF773C` |
50
| ROM | `BC2411E13CD2` (= VM-MAC ohne Doppelpunkte) |
51
52
## OpenCore config.plist bearbeiten
53
54
> [!IMPORTANT]
55
> Nur bei **gestoppter VM** durchführen.
56
57
```bash
58
qm stop 201
59
mkdir -p /mnt/oc_efi
60
losetup -f --show -o $((40*512)) /dev/pve/vm-201-disk-2 # gibt /dev/loopX aus
61
mount /dev/loopX /mnt/oc_efi
62
nano /mnt/oc_efi/EFI/OC/config.plist
63
umount /mnt/oc_efi && losetup -d /dev/loopX
64
qm start 201
65
```
66
67
## iCloud & Apple-Dienste
68
69
| Dienst | Status |
70
|---|---|
71
| iCloud Drive, Fotos, Keychain | ✅ funktioniert |
72
| App Store | ✅ funktioniert |
73
| iMessage / FaceTime | ⚠️ manchmal blockiert – 24h warten, dann nochmal |
74
| Handoff, AirDrop, Sidecar | ❌ kein Bluetooth/WLAN in VM |
75
| GPU-Beschleunigung | ❌ kein Passthrough |
76
| Sleep / Standby | ❌ in macOS deaktivieren |
77
78
**Troubleshooting „Prüfung fehlgeschlagen":**
79
1. SecureBootModel muss `j137` sein (nicht `Disabled`)
80
2. iPhone/iPad: Einstellungen → Apple-ID → Passwort & Sicherheit → Bestätigungsdialog?
81
3. Nochmal versuchen oder kurz über anderen IP-Bereich (Hotspot)
82
83
## Neue SMBIOS-Seriennummern generieren
84
85
```bash
86
# macserial herunterladen (einmalig)
87
curl -L https://github.com/acidanthera/OpenCorePkg/releases/download/1.0.7/OpenCore-1.0.7-RELEASE.zip -o /tmp/oc.zip
88
unzip /tmp/oc.zip 'Utilities/macserial/macserial.linux' -d /tmp/oc/
89
chmod +x /tmp/oc/Utilities/macserial/macserial.linux
90
91
# 3 Seriennummern generieren, einen Satz auswählen
92
/tmp/oc/Utilities/macserial/macserial.linux -m iMacPro1,1 -n 3
93
94
# EFI mounten und patchen
95
qm stop 201
96
losetup -f --show -o $((40*512)) /dev/pve/vm-201-disk-2
97
mount /dev/loopX /mnt/oc_efi
98
99
python3 << 'PYEOF'
100
import plistlib, uuid
101
with open('/mnt/oc_efi/EFI/OC/config.plist', 'rb') as f:
102
p = plistlib.load(f)
103
pi = p['PlatformInfo']['Generic']
104
pi['SystemSerialNumber'] = 'NEUE_SERIAL' # ← anpassen
105
pi['MLB'] = 'NEUE_MLB' # ← anpassen
106
pi['SystemUUID'] = str(uuid.uuid4()).upper()
107
pi['ROM'] = bytes.fromhex('BC2411E13CD2')
108
with open('/mnt/oc_efi/EFI/OC/config.plist', 'wb') as f:
109
plistlib.dump(p, f)
110
print('Fertig:', pi['SystemSerialNumber'])
111
PYEOF
112
113
umount /mnt/oc_efi && losetup -d /dev/loopX
114
qm start 201
115
```
116
117
---
118
119
## VM vollständig entfernen (Rollback)
120
121
> [!WARNING]
122
> Diese Schritte löschen die VM und **alle zugehörigen Daten unwiderruflich**. Kein Backup nötig, aber sicher sein.
123
124
### Schritt 1 – VM stoppen und vollständig löschen
125
126
```bash
127
qm stop 201
128
qm destroy 201 --purge
129
```
130
131
`--purge` entfernt automatisch alle LVM-Volumes:
132
- `vm-201-disk-0` (EFI NVRAM, 4 MB)
133
- `vm-201-disk-1` (BaseSystem, 1,3 GB)
134
- `vm-201-disk-2` (OpenCore, 152 MB)
135
- `vm-201-disk-3` (Macintosh HD, 100 GB)
136
- `/etc/pve/qemu-server/201.conf`
137
138
### Schritt 2 – Heruntergeladene Dateien entfernen
139
140
```bash
141
# OpenCore ISO aus local-Storage
142
rm -f /var/lib/vz/template/iso/OpenCore-v21.iso
143
144
# BaseSystem-Dateien auf HDD (hdd5tb)
145
rm -f /mnt/storage/pve-data/iso/BaseSystem.dmg
146
rm -f /mnt/storage/pve-data/iso/BaseSystem.img
147
rm -f /mnt/storage/pve-data/iso/BaseSystem.chunklist
148
149
# OSX-KVM Projektverzeichnis
150
rm -rf /opt/OSX-KVM
151
152
# macserial / OpenCorePkg (falls vorhanden)
153
rm -rf /tmp/oc/ /tmp/oc.zip /tmp/oc107* /tmp/oc107.zip
154
```
155
156
### Schritt 3 – Optionale Aufräumarbeiten
157
158
```bash
159
# Mount-Verzeichnisse entfernen
160
rmdir /mnt/oc_efi /mnt/macos_installer 2>/dev/null || true
161
162
# Tools deinstallieren (nur wenn nicht anderweitig genutzt)
163
apt remove -y dmg2img p7zip-full
164
```
165
166
### Verifikation – alles weg?
167
168
```bash
169
qm list # VM 201 darf nicht erscheinen
170
lvs | grep vm-201 # darf keine Ausgabe liefern
171
ls /var/lib/vz/template/iso/ | grep -i opencore
172
ls /mnt/storage/pve-data/iso/ | grep -iE 'base|opencore'
173
ls /opt/OSX-KVM 2>/dev/null && echo 'NOCH DA' # nichts ausgeben = OK
174
```
175
176
---
177
178
## Prüfung / Status
179
180
```bash
181
qm status 201
182
qm config 201
183
```
184
185
## Verwandte Seiten
186
187
- [[container-und-vms]]
188
- [[vm-200-windows11pro]]
189
- [[infrastruktur-uebersicht]]