Denke schon das der script funktioniert, aber denke einige sind von der Anleitung bissl irritiert, da erstens das problem mit der bestehenden Efi zum anderen der vergrösserung der bestehenden Efi usw. missverstehen.
Guck es gibt grundlegend 2 sachen, "diskutil" selber erlaubt dir NICHT einen EFi Partition mit anderer Grösse zu erstellen, der kann nur Typ "Efi" erstellen, der ist dann fix 200MB, alles was du noch danach mitgibst erstellt es eben als Fat32 Partition.
Guck dir mal den Command genauer an, wirst auch erkennen das man da kein Typ Efi mitgeben kann, das ist genau das was Apple will.
Anderseits bedient sich auch Apple den "gpt" Tool, der wiederum kann dann benutzerdefinierte typen.
Wenn man einen wirklich benutzerdefinierten Partition schema haben will, und das ganze sagen wir mal unbedingt unter MacOS Terminal passieren muss, keine alternativen Tools in frage kommen kann man das im folgendem beispiel erledigen.
Angenommen du hast ein Rechner, mit 2 SSD Laufwerke drin, sagen wir mal das eine ist System, das andere Daten, jetzt hängen wir noch ein drittes "LEERES" Laufwerk ins System.
/dev/disk0 --> MacOS
/dev/disk1 --> Daten
/dev/disk2 --> "Leer, hier werden wir einen benutzerdefinierten Partitionschema erstellen und den System vom disk0 klonen..."
Diskgrössen sind ja nicht relevant, musst halt die commands anpassen je nachdem was man hat oder was man braucht usw..
starte einfach den Terminal, sei es unter MacOS oder Recovery...
diskutil list, guck dir die identifier mal genau an was wirklich wo angehängt ist.
diskutil info /dev/disk2 | grep "Block Size"
Device Block Size: 512 Bytes sollte es normalerweise ausgeben...
1. diskutil unmountdisk disk2
2. gpt destroy /dev/disk2
3. gpt create -f /dev/disk2
4. gpt add -i 1 -b 40 -s 6291456 -t efi /dev/disk2
hier erstelle ich auf index 1, beginning sector 40, count 6291456 (das sind 3gb), typ Efi auf disk2.....
wie wird das gerechnet? LBA`s rechnen ist angesagt, oben wissen wir das eine Block Size 512 Bytes sind, ich will 3gb Partition haben, 3GB = (3221225472 Bytes ÷ 512 Bytes) = 6291456 LBA, soweit verständlich?
5. gpt add -i 2 -b 6291496 -s 190000000 -t apfs /dev/disk2
hier erstelle ich auf index 2, beginning 6291496 (40 blöcke hab ich dazu gezählt für den sauberen abstand), count bspl. 190000000 (das sind ca 90 Gb), typ apfs auf disk2...
Hier auch die grössen halt nachrechen oder sich halt im Netz mit LBA Calculator bedienen usw..
6. diskutil list --> jetzt siehst du das du ein 3gb Efi & 90gb apfs partition erstellt hast...
musst nur noch diese partitionen halt formatieren oder auch im Festplattenmanager im Recovery "löschen" usw. usf..
bspl.
newfs_msdos -F 32 -v EFI /dev/disk2s1
newfs_apfs /dev/disk2s2
7. jetzt kannst du ganz einfach deinen script oder auch mit einem Command das ganze rüber Clonen..
sudo asr restore --source "/dev/$SOURCE_DEVICE" --target "/dev/$TARGET_DEVICE" --erase --noprompt --noverify
bootfähigkeit ist ja klar in dem sinne...
sudo bless --folder "/Volumes/Klon-Ziel/System/Library/CoreServices" --bootefi --setBoot
Kannst evtl. sogar deine Script eben auch so erweitern usw.
Anderseit erkennst du jetzt sicher auch warum das ganze so ungern gemacht wird und am besten gleich zu einem Linux Gpart ausgewichen wird, es ist einfach unkomfortabler weil Apple eben das so haben will...
Gruss Coban
EDIT:
HIer ist vielleicht ein idee entstanden womit du dein Tool erweitern könntest Noir0SX
ein LBA Calculator ?