Erstellen Sie eine APFS-RAM-Disk

7

Es gibt verschiedene Ressourcen zum Erstellen von RAM-Datenträgern, die sich jedoch alle mit HFS + RAM-Datenträgern befassen. Aber wie erstellt man eine APFS-RAM-Disk?

Ich habe versucht APFS, den folgenden diskutilBefehl als Dateisystem zu übergeben , aber das funktioniert nicht. Da diskutiles eine ganze Reihe von APFS-bezogenen Unterbefehlen gibt, gehe ich davon aus, dass mehr Magie erforderlich ist.

DISK_ID=`hdiutil attach -nomount ram://$((4 * 1024 * 2048))`
diskutil eraseVolume APFS "RAM Disk" "$DISK_ID"
DarkDust
quelle

Antworten:

6

Es funktioniert, wenn Sie zuerst ein JHFS + -Volume erstellen und es in einem zweiten Schritt in APFS konvertieren:

  1. DISK_ID=$(hdiutil attach -nomount ram://$((<number_of_blocks>)))
  2. diskutil eraseDisk JHFS+ "RAM Disk" $DISK_ID
  3. diskutil apfs convert $(tr -d ' '<<<${DISK_ID}s2)

Wenn der RAM-Datenträger eine Größe von 2 GB (4 * 1024 * 1024) (block_size) oder weniger hat, wird keine EFI-Partition erstellt und der dritte Befehl lautet: diskutil apfs convert $(tr -d ' '<<<${DISK_ID}s1)oder allgemeiner:

DISK_ID=$(hdiutil attach -nomount ram://$((<number_of_blocks>)))
SIZE=$(diskutil info $DISK_ID | awk -F'[^0-9]*' '/Disk Size/ {print$4}')
diskutil eraseDisk JHFS+ "RAM Disk" $DISK_ID
if [ $SIZE -le 2147483648 ]; then diskutil apfs convert $(tr -d ' '<<<${DISK_ID}s1); else diskutil apfs convert $(tr -d ' '<<<${DISK_ID}s2); fi

Ergebnis:

...
/dev/disk2 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +4.3 GB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                 Apple_APFS Container disk3         4.0 GB     disk2s2

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +4.0 GB     disk3
                                 Physical Store disk2s2
   1:                APFS Volume RAM Disk                32.8 KB    disk3s1
klanomath
quelle
Vielen Dank! In meinem Test musste ich s1anstelle des s2dritten Befehls verwenden, aber es hat funktioniert!
DarkDust
0

Sie müssen einen APFS-Container erstellen und Ihr APFS-Volume hinzufügen.

DISK_ID=$(hdiutil attach -nomount ram://$((4 * 1024 * 2048)))
diskutil apfs create "${DISK_ID/\/dev\/}" "RAM Disk"

Aufgrund eines Fehlers in High Sierra ist dies nicht möglich, da der folgende Fehler angezeigt wird:

Fehler: -69802: Für diesen Vorgang ist eine Partition erforderlich, keine ganze Festplatte

Dies ist derselbe Fehler, den Sie erhalten, wenn Sie ihn im Festplatten-Dienstprogramm versuchen.

grg
quelle
1
Also ... so soll es funktionieren, aber es funktioniert nicht?
DarkDust
@ Dark Ja, soweit ich weiß
grg