2017-09-14 17 views
4

in der Regel Platten zu schaffen RAM arbeitet mit den folgenden Befehlenauf macOS High Sierra Scheibe APFS RAM erstellen

hdid -nomount ram://<blocksize> 

Returns z.B./Dev/disk2 Dann würde ich die Festplatte zu formatieren, mit sagen

newfs_hfs /dev/disk2 

es durch die Montage gefolgt:

mount -t hfs /dev/disk2 /some/mount/target 

Dieses Verfahren scheint nicht mit APFS zu arbeiten. Ich bin in High Sierra Beta 9. Der Befehl mount gibt keinen Fehler aus, aber der Pfad ist nicht geladen.

In meinem Fall nach dem hdid Befehl abgeschlossen, newfs_apfs -i /dev/disk2 ergibt

nx_kernel_mount:1364: checkpoint search: largest xid 1, best xid 1 @ 1 
nx_kernel_mount:1422: sanity checking all nx state... please be patient. 
spaceman_metazone_init:278: no metazone for device 0, of size 209715200 bytes, block_size 4096 
apfs_newfs:18075: FS will NOT be encrypted. 

Wenn ich mount -t apfs /dev/disk2 /some/target/path dann geben Sie dann die Halterung Befehle scheint für 2 Sekunden zu arbeiten, geben keine Ausgabe und die Halterung war NICHT erfolgreich.

Kann mir jemand sagen, wie man tatsächlich eine APFS RAM-Disk s.t. Es klappt? : P

PS: Ich habe auch versucht, so etwas wie diskutil partitionDisk /dev/disk2 GPT APFS myvolumename 0b, die das Volumen zu /Volumes/myvolumename nicht montieren, sondern schafft noch eine weitere Scheibe (disk3 in diesem Fall), die mir seltsam scheint!

+0

'disk3' ist in diesem Fall ein Core Storage-Container, der mehr oder weniger eine erforderliche Komponente von APFS ist. https://en.wikipedia.org/wiki/Core_Storage – Glyph

Antwort

5

eine Lösung gefunden:

hdid -nomount ram://<blocksize> 
diskutil erasedisk <format> <diskname> <output path of previous hdid command> 

wo <format> von diskutil listFilesystems von der "Persönlichkeit" Säule genommen wird. Ja, es scheint mir auch komisch, dass Sie diesen Parameter z. wenn case-sensitive Varianten spezifizieren, aber na ja ...

<blocksize> ist 2048 * desired size in megabytes

Der letzte Befehl formatiert die RAM-Disk und montiert sie zu /Volumes/<diskname>

Es scheint der Fall zu sein, dass, wenn jetzt eingeben diskutil list, dass Sie zwei neue Festplatten sehen, die eine hdid erstellt, und eine synthetisierte.

Um zerstören Sie die die RAM-Disk erneut, rufen Sie diskutil eject <output path of previous hdid command>, z. diskutil eject /dev/disk2

Dies wird die ganze Arbeit für Sie tun, die /Volumes/<diskname> Weg unmounten und zerstören die beiden Festplatten, die Freigabe Ihres Speichers.

Beachten Sie, dass die minimalen/maximalen Werte für <blocksize> von der gewählten <format> abhängen. Auch <diskname> kann nicht immer beliebig gewählt werden. Beispielhaft erfordert FAT32, dass es aus Großbuchstaben besteht!

Prost!

+0

Befolgen Sie diese Anweisungen (wenn Sie 'hdiutil attach' anstelle von' hdid' verwenden, da 'hdid' veraltet ist) bekomme ich immer' Mounting disk Konnte disk2 nach dem Löschen nicht mounten' , während die gleiche Befehlszeile mit 'HFS +' anstelle von 'APFS' erfolgreich ist. Was sind die zulässigen Mindest-/Höchstwerte für APFS-Volumes? – Glyph

+4

'diskutil partitionDisk $ (hdiutil attach -nomount ram: // 2097152) 1 GPTFormat APFS 'APFS RAM Disk' '100%' funktionierte für mich :) – Glyph

4

@Glyph bereitgestellt, um die beste Antwort in einem Kommentar zu dem accepted answer, aber es verdient seine eigene Antwort:

diskutil partitionDisk $(hdiutil attach -nomount ram://2048000) 1 GPTFormat APFS 'ramdisk' '100%' 

I aktualisiert haben Glyph Antwort den Volume-Namen ein wenig zu vereinfachen.

Verwandte Themen