asr restore (AFPS2 Systeme bootfähig klonen)

Macschrauber

Aktives Mitglied
Thread Starter
Registriert
08.02.2014
Beiträge
15.883
Reaktionspunkte
11.178
Da ich das gerade mit meiner Test-Disk getan habe möchte ich das als Referenz schnell zusammenfassen:

Auf der Testdisk waren Big Sur, Monterey, Ventura und Sonoma

1.) createinstallmedia Stick / Partition booten (USB Installer)

2.) wenn nötig: Disk Utility aufrufen und das Zielvolume in GUID formatieren, einen Container anlegen.

3.) In's Terminal

4.) Quell und Zielcontainer rauslesen (diskutil list)

5.)
Code:
asr restore --source /dev/diskxs2 -- target /dev/disky --sourcevolumename "Monterey"

x=der QuellContainer
y=der ZielContainer
sourcevolumename=Der Namen vom System, das Datenvolume wird mit kopiert, im Beispiel Monterey und Monterey - Data

Das nächste System kann man anschließend auf die gleiche Art kopieren, wird hinzugefügt.


Während dem Booten hat ein Tool erst mal die UUID korrigiert und neu gestartet. Die OpenCoreLegacyPatcher Patches mussten auch erneuert werden.

Das ganze ging bei moderat gefüllten Datenvolumen in ein paar Minuten von Blade zu Blade. Deutlich schneller wie alle Systeme neu zu installieren.


Das dürfte auch im laufenden System funktionieren, wenn das zu kopierende System nicht läuft. Mir war das Booten des Installers sicherer. Hab den eh auf einer Partition, da geht das fix.


hier noch ein Bild, diesmal Kopie aus dem gebotenen System (nicht das zu kopierende, aber in den gleichen Container hinein):

Bildschirmfoto 2024-02-29 um 14.22.22.png
 
Zuletzt bearbeitet:
da das Ganze auch etwas kompliziert werden kann hab ich ein AppleScript gebaut was das Kommando zusammensetzt.

Man könnte auch das Kommando gleich ausführen lassen, aber ich bin der Meinung das sollte man dan selber prüfen und im Terminal einsetzen.

Das heisst, das Script lässt das Sourcevolume auswählen, findet den Container und lässt den TargetContainer wählen. Und prüft dabei das Nahenliegenste.

Dann zeigt es das Kommando und kopiert es auf Nachfrage in die Zwischenablage.



AppleScript:
use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions

do shell script "diskutil list | sed 's/[^[:print:]]//g' | sed -E 's/^[[:space:]]*[0-9]+:[[:space:]]+//' | grep -v -e '#:' -e 'EFI ' -e 'Preboot' -e 'VM' -e 'Recovery' -e 'Snapshot' >/tmp/list.txt"


set valid to false

repeat until valid
 
 
    set the_selection to every paragraph of (do shell script "cat /tmp/list.txt | grep -i -e 'Volume' -e 'Container' | grep -iv 'Preboot' | grep -iv 'Recovery' | grep -iv 'VM'")
    set possible_selection to (do shell script "cat /tmp/list.txt | grep -i 'Volume' | grep -iv 'Preboot' | grep -iv 'Recovery' | grep -iv 'VM'")
 
    set sourcevolumename_line to (choose from list the_selection with title "choose the OS" with prompt "possible selection:                                            " & return & possible_selection) as text
 
    if sourcevolumename_line is "false" then return
 
 
    set text item delimiters to space
    if sourcevolumename_line contains " - " then # for - data, - daten, etc
        set sourcevolumename to words 3 thru -5 of sourcevolumename_line as text
    else
        set sourcevolumename to words 3 thru -4 of sourcevolumename_line as text
    end if
    set text item delimiters to ""
 
 
    set sourcevolume_disk to last word of sourcevolumename_line
 
 
 
 
 
    -- source Apple_APFS Container
 
    try
        set diskx to last word of (do shell script "diskutil info " & sourcevolume_disk & " | grep 'APFS Physical Store:'")
        if sourcevolumename_line does not contain "Scheme" then set valid to true
    end try
 
    if not valid then display dialog sourcevolumename_line & return & "not valid, an APFS Volume is expected" buttons "OK" default button 1 with title "error"
 
 
end repeat







-- target

set possible_selection to (do shell script "cat /tmp/list.txt | grep 'APFS Container Scheme' || echo 'error'")





set valid to false

repeat until valid
 
    set apfs_container_scheme to (choose from list (every paragraph of (do shell script "cat /tmp/list.txt")) with title "choose the destination APFS Container Scheme" with prompt "possible selection:" & return & possible_selection) as text
    if apfs_container_scheme is "false" then return
 
    try
        set disky to (last word of apfs_container_scheme)
    on error
        set disky to "error"
    end try
 
 
    try
        if ((do shell script "diskutil list " & disky) contains "APFS Container Scheme") then
            set valid to true
        end if
    end try
 
 
    if not valid then display dialog "not an APFS Container Scheme, example:" & return & "0:   APFS Container Scheme -   +511.9 GB   disk1" with title "error" buttons "OK" default button 1
 
 
end repeat








set the_command to "sudo asr restore --source /dev/" & diskx & " --target /dev/" & disky & " --sourcevolumename " & (quoted form of sourcevolumename)

set button_returned to display dialog the_command buttons {"copy", "don't copy"} default button 1 with title "this is the terminal command"
if button returned of button_returned is "copy" then set the clipboard to the_command

-- example: "asr restore --source /dev/disk0s2 -- target /dev/disk5 --sourcevolumename  Mojave"
 
Zuletzt bearbeitet:
Noch ein Beispiel von heute:
Code:
test@Mac-Pro ~ % diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         499.9 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +499.9 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Catalina - Daten        5.6 GB     disk1s1
   2:                APFS Volume Catalina                11.2 GB    disk1s2
   3:                APFS Volume Big Sur - Daten         3.2 GB     disk1s3
   4:                APFS Volume Preboot                 21.6 GB    disk1s4
   5:                APFS Volume Recovery                7.2 GB     disk1s5
   6:                APFS Volume Big Sur                 15.3 GB    disk1s6
   7:                APFS Volume Monterey - Daten        123.5 GB   disk1s7
   8:                APFS Volume Monterey_NVMe           31.9 GB    disk1s8
   9:                APFS Volume Sonoma_Blade - Data     40.7 GB    disk1s9
  10:                APFS Volume Sonoma_Blade            12.0 GB    disk1s10
  11:              APFS Snapshot com.apple.bless.2A40... 12.0 GB    disk1s10s1
  12:                APFS Volume Ventura - Data          20.5 GB    disk1s11
  13:                APFS Volume Ventura_Blade           11.0 GB    disk1s12
  14:                APFS Volume VM                      1.1 MB     disk1s13
  15:                APFS Volume Mojave_NVMe             31.7 GB    disk1s15
  16:                APFS Volume Sequoia_NVMe - Data     21.9 GB    disk1s16
  17:                APFS Volume Sequoia_NVMe            11.2 GB    disk1s17

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                 Apple_APFS Container disk3         1000.0 GB  disk2s2

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +1000.0 GB  disk3
                                 Physical Store disk2s2
   1:                APFS Volume x                       819.2 KB   disk3s1

test@Mac-Pro ~ % sudo asr restore --source /dev/disk1s8 --target /dev/disk3 --sourcevolumename 'Monterey'
    Validating target...done
    Validating source...done
    Replicating ....10....20....30....40....50....60....70....80....90....100
    Replicating ....10....20....30....40....50....60....70....80....90....100
    Restored target device is /dev/disk3s2.
Restore completed successfully.
test@Mac-Pro ~ % diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         499.9 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +499.9 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Catalina - Daten        5.5 GB     disk1s1
   2:                APFS Volume Catalina                11.2 GB    disk1s2
   3:                APFS Volume Big Sur - Daten         3.1 GB     disk1s3
   4:                APFS Volume Preboot                 21.6 GB    disk1s4
   5:                APFS Volume Recovery                7.2 GB     disk1s5
   6:                APFS Volume Big Sur                 15.3 GB    disk1s6
   7:                APFS Volume Monterey - Daten        117.3 GB   disk1s7
   8:                APFS Volume Monterey_NVMe           31.9 GB    disk1s8
   9:                APFS Volume Sonoma_Blade - Data     53.7 GB    disk1s9
  10:                APFS Volume Sonoma_Blade            12.0 GB    disk1s10
  11:              APFS Snapshot com.apple.bless.2A40... 12.0 GB    disk1s10s1
  12:                APFS Volume Ventura - Data          20.5 GB    disk1s11
  13:                APFS Volume Ventura_Blade           11.0 GB    disk1s12
  14:                APFS Volume VM                      1.1 MB     disk1s13
  15:                APFS Volume Mojave_NVMe             31.6 GB    disk1s15
  16:                APFS Volume Sequoia_NVMe - Data     21.8 GB    disk1s16
  17:                APFS Volume Sequoia_NVMe            11.2 GB    disk1s17

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                 Apple_APFS Container disk3         1000.0 GB  disk2s2

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +1000.0 GB  disk3
                                 Physical Store disk2s2
   1:                APFS Volume Monterey - Daten        117.3 GB   disk3s1
   2:                APFS Volume Monterey_NVMe           15.4 GB    disk3s2
   3:                APFS Volume Preboot                 459.5 MB   disk3s3
   4:                APFS Volume Recovery                1.1 GB     disk3s4
 
Zuletzt bearbeitet:
Thx, nice work!
Hätte ich vor ca. 4 Jahren sehr gut gebrauchen können - komplett neues set-up im Studio war nötig nach einem größeren Schaden - so war es leider viel mehr Arbeit …
:rolleyes:.
 
Ich mach das gerne vor größeren Änderungen oder Reparaturversuchen. Gerade bei OpenCore Systemen ist das manchmal hakelig, bis man wieder soweit ist.

Dann lieber erst an der Kopie testen.
 
Im laufenden System unter Ventura (Intel) 15 Minuten:
Code:
sudo asr restore --source /dev/diskXsY --target /dev/diskZ --erase --noprompt --sourcevolumename "macOS_Ventura"

Edit: der Vollständigkeit halber
  • diskXsY ist das Quelllaufwerk (interne SSD).
  • diskZdZ ist das Ziel (externe Festplatte oder SSD).
  • Die Option --erase löscht alle Daten auf dem Ziellaufwerk.
  • --noprompt führt den Vorgang ohne Bestätigung aus
 
Im laufenden System unter Ventura (Intel) 15 Minuten:
Code:
sudo asr restore --source /dev/diskXsY --target /dev/diskZ --erase --noprompt --sourcevolumename "macOS_Ventura"
Du hast das aktuell laufende System mit Datenvolume live kopiert?
 
Nee. Mit dem Befehl asr restore wird mWN ja standardmäßig nur das Systemvolume (z.B. Macintosh HD) kopiert und nicht das Datenvolume (z.B. Macintosh HD - Daten).
 
Nee. Mit dem Befehl asr restore wird mWN ja standardmäßig nur das Systemvolume (z.B. Macintosh HD) kopiert und nicht das Datenvolume (z.B. Macintosh HD - Daten).
deshalb,
wenn Möglich, kopiert asr auch das Datenvolume (Recovery, Preboot) mit. Das --erase Argument muss ich mir merken. Man sollte doch hin und wieder die manpage lesen :)


Das war unter Ventura, auf der gleich Disk und Container.

Code:
   8:                APFS Volume Monterey_NVMe           31.9 GB    disk1s8
  13:                APFS Volume Ventura_Blade           11.0 GB    disk1s12




Siehe https://www.macuser.de/threads/asr-restore-afps2-systeme-bootfaehig-klonen.937643/post-12419377

vorher:
Code:
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                 Apple_APFS Container disk3         1000.0 GB  disk2s2

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +1000.0 GB  disk3
                                 Physical Store disk2s2
   1:                APFS Volume x                       819.2 KB   disk3s1

nachher:
Code:
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                 Apple_APFS Container disk3         1000.0 GB  disk2s2

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +1000.0 GB  disk3
                                 Physical Store disk2s2
   1:                APFS Volume Monterey - Daten        117.3 GB   disk3s1
   2:                APFS Volume Monterey_NVMe           15.4 GB    disk3s2
   3:                APFS Volume Preboot                 459.5 MB   disk3s3
   4:                APFS Volume Recovery                1.1 GB     disk3s4
 
Mein Fehler. Du hast natürlich recht, auch Macintosh HD - Daten wurden kopiert.
Leider habe ich das „Vorher” nicht mehr, nur das „Nachher”:
Code:
/dev/disk6 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk6
   1:                        EFI EFI                     209.7 MB   disk6s1
   2:                 Apple_APFS Container disk7         1000.0 GB  disk6s2

/dev/disk7 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      APFS Container Scheme -                      +1000.0 GB  disk7
                                 Physical Store disk6s2
   1:                APFS Volume macOS_Systeme           659.5 KB   disk7s1
   2:                APFS Volume macOS_Catalina          651.3 KB   disk7s2
   3:                APFS Volume macOS_Ventura           9.3 GB     disk7s3
   4:                APFS Volume Macintosh HD - Daten    403.3 GB   disk7s4
   5:                APFS Volume Preboot                 7.0 GB     disk7s5
   6:                APFS Volume Recovery                1.2 GB     disk7s6

Grundsätzlich ist es auch besser, wenn nicht sogar erheblich sinnvoller (wie du das Eingangs ja auch erwähntest), das nicht im laufenden Betrieb auszuführen, um das Risiko von Inkonsistenzen zu minimieren. Hat mich halt gereizt das mal zu testen.
 
Mein Fehler. Du hast natürlich recht, auch Macintosh HD - Daten wurden kopiert.
Leider habe ich das „Vorher” nicht mehr, nur das „Nachher”:
Code:
/dev/disk6 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk6
   1:                        EFI EFI                     209.7 MB   disk6s1
   2:                 Apple_APFS Container disk7         1000.0 GB  disk6s2

/dev/disk7 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      APFS Container Scheme -                      +1000.0 GB  disk7
                                 Physical Store disk6s2
   1:                APFS Volume macOS_Systeme           659.5 KB   disk7s1
   2:                APFS Volume macOS_Catalina          651.3 KB   disk7s2
   3:                APFS Volume macOS_Ventura           9.3 GB     disk7s3
   4:                APFS Volume Macintosh HD - Daten    403.3 GB   disk7s4
   5:                APFS Volume Preboot                 7.0 GB     disk7s5
   6:                APFS Volume Recovery                1.2 GB     disk7s6

Grundsätzlich ist es auch besser, wenn nicht sogar erheblich sinnvoller (wie du das Eingangs ja auch erwähntest), das nicht im laufenden Betrieb auszuführen, um das Risiko von Inkonsistenzen zu minimieren. Hat mich halt gereizt das mal zu testen.

Live Kopie ist natürlich spannend. Nicht jeder hat ein Zweitsystem greifbar oder möchte sich die Tipperei im Installer / Recovery antun.

War das ein jungfräuliches Systemvolume?
Code:
diskutil info / | grep Sealed
Sealed: Broken wäre ein modifiziertes Systemvolume.
 
Live Kopie ist natürlich spannend. Nicht jeder hat ein Zweitsystem greifbar oder möchte sich die Tipperei im Installer / Recovery antun.

War das ein jungfräuliches Systemvolume?
Code:
diskutil info / | grep Sealed
Sealed: Broken wäre ein modifiziertes Systemvolume.
Letzteres. Den Befehl kannte ich gar nicht. Broken klingt ja gleich erschütternd, mein Systemvolume ist also nicht intakt? Ist ein iMac 27” aus 2017.

Habe übrigens meinen alten 21,5”er iMac mit Catalina auch mittels asr soeben ratz fatz auf eine T7 übertragen - diesmal allerdings in der Recovery.
Alles einwandfrei. Sealed müsste ich dort aber noch checken.
 
Letzteres. Den Befehl kannte ich gar nicht. Broken klingt ja gleich erschütternd, mein Systemvolume ist also nicht intakt? Ist ein iMac 27” aus 2017.

Habe übrigens meinen alten 21,5”er iMac mit Catalina auch mittels asr soeben ratz fatz auf eine T7 übertragen - diesmal allerdings in der Recovery.
Alles einwandfrei. Sealed müsste ich dort aber noch checken.
Sealed: Broken ist dann wenn das OS nicht mehr aus dem Image startet, weil Modifikationen durchgeführt wurden. Zum Beispiel bei root patches vom OpenCore Legacy Patcher.

Das bedeutet auch, das jedes Update ein full install ist und die (relativ) kleinen Delta Upgrades nicht geladen werden, sondern die großem Brocken mit 12 GB ungrad. Und dann ein full install ausgeführt wird. Danach sollte das Siegel wieder zu sein.
 
Meine Recherche dazu: „Ein „Broken“-Status zeigt an, dass die kryptografische Versiegelung nicht intakt ist, was potenziell ein Sicherheitsproblem darstellt, da das Betriebssystem dadurch nicht mehr die Integrität aller Systemdateien garantieren kann. Diese Versiegelung (Signed System Volume, SSV) stellt sicher, dass das Systemvolume unverändert und sicher ist, indem es kryptografisch signiert und vor Manipulationen geschützt wird.“

OCLP ist nicht im Einsatz.

Das macOS per Recovery neu installieren müsste das Broken im Idealfall korrigieren, oder eben ein Clean Install.
 
Live Kopie ist natürlich spannend. Nicht jeder hat ein Zweitsystem greifbar oder möchte sich die Tipperei im Installer / Recovery antun.
Du hattest es vorausgesehen. Heute musste ich in die Recovery, ging nix mehr nach Neustart. Ausser der frisch erstellte Klon, der lief.
Also, liebe Mitleser: nicht nachmachen. :nono:
 
Hi,
Das ist mit ein Grund, dass ich mit OCLP nichts mache, maximal mit dosdude1, habe ich auf einem 2009er MacBook Mojave installiert.
Franz
 
Das ist mit ein Grund, dass ich mit OCLP nichts mache
in meinem Fall war OCLP übrigens nicht involviert.

Mich würde ja interessieren, warum source Probleme bekam und nicht (noch nicht) das target? Habt ihr da Erklärungen für mich?
 
in meinem Fall war OCLP übrigens nicht involviert.

Mich würde ja interessieren, warum source Probleme bekam und nicht (noch nicht) das target? Habt ihr da Erklärungen für mich?
Vielleicht ein blöder Zufall. Das Siegel gebrochen weil sich irgendwas im System zerschossen hat. Sterbende SSD, Abstürze, Bastelwut am System ?
 
Zurück
Oben Unten