Creare un disco RAM APFS

6

Ci sono varie risorse su come creare un disco RAM, ma si occupano tutti di dischi HFS + RAM. Ma come si crea un disco RAM APFS?

Ho provato a passare APFS come file system al comando diskutil come sotto, ma questo non funziona. Poiché diskutil ha un intero gruppo di sottocomandi relativi a APFS, presumo che sia necessaria più magia.

DISK_ID='hdiutil attach -nomount ram://$((4 * 1024 * 2048))'
diskutil eraseVolume APFS "RAM Disk" "$DISK_ID"
    
posta DarkDust 18.09.2017 - 14:10
fonte

2 risposte

6

Funziona se prima crei un volume JHFS + e lo converti in APFS in un secondo passaggio:

  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)

Se il disco RAM ha una dimensione di 2 GiB (4 * 1024 * 1024) (block_size) o inferiore, non viene creata alcuna partizione EFI e il terzo comando è: diskutil apfs convert $(tr -d ' '<<<${DISK_ID}s1) o più in generale:

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

Risultato:

...
/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
    
risposta data 18.09.2017 - 15:15
fonte
0

Devi creare un contenitore APFS e aggiungere il tuo volume APFS all'interno.

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

A causa di quello che sembra un bug in High Sierra, questo non è possibile, poiché si otterrà il seguente errore:

Error: -69802: A partition, not a whole disk, is required for this operation

Questo è lo stesso errore che ricevi se lo provi in Utility Disco.

    
risposta data 18.09.2017 - 14:19
fonte

Leggi altre domande sui tag