Criar um disco RAM da APFS na Sierra Alta de macOS

normalmente a criação de discos RAM funciona com os seguintes comandos

hdid -nomount ram://<blocksize>

Devolve por exemplo /dev / disk2 Então eu formataria o disco, com say

newfs_hfs /dev/disk2

seguido por montá-lo:

mount -t hfs /dev/disk2 /some/mount/target
Este procedimento não parece funcionar com o APFS. Estou em Alta Sierra beta 9. O comando de montagem não emite qualquer erro, mas a localização não está montada.

no meu caso, depois do comando hdid ter terminado, newfs_apfs -i /dev/disk2 os rendimentos

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.

Quando eu entrar mount -t apfs /dev/disk2 /some/target/path Então o os comandos de montagem parecem funcionar por 2 segundos, não dão nenhuma saída e a montagem não foi bem sucedida.

Alguém me pode dizer como fazer um disco RAM da APFS que funcione? : p

PS: eu também tentei algo como diskutil partitionDisk /dev/disk2 GPT APFS myvolumename 0b que monta o volume para /Volumes/myvolumename mas cria mais um disco (disk3 neste caso) que me parece estranho!

Author: NameZero912, 2017-09-14

2 answers

Encontrei uma solução:

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

De onde <format> é retirado diskutil listFilesystems da coluna "personalidade". Sim, parece-me estranho para mim também que você pode ter que citar este parâmetro, por exemplo, ao especificar variantes case-sensitive, mas oh bem...

<blocksize> é 2048 * desired size in megabytes

O último comando Formata o disco RAM e monta-o para /Volumes/<diskname>

Parece ser o caso que ao entrar agora {[6] } que você vai verdois novos discos, o um hdid criado, e um um sintetizado.

Para destruir o disco RAM novamente, chamar diskutil eject <output path of previous hdid command>, por exemplo diskutil eject /dev/disk2

Isto fará todo o trabalho por ti, desmontando o caminho /Volumes/<diskname> e destruindo os dois discos, libertando a tua memória.

Tenha em mente que os valores mínimo/máximo para <blocksize> dependem do <format> escolhido. Além disso, <diskname> nem sempre pode ser escolhido arbitrariamente. Exemplar, FAT32 requer que seja composto de letras maiúsculas!

Saúde!
 8
Author: NameZero912, 2017-09-18 06:36:12

@glifo forneceu a melhor resposta num comentário à resposta Aceite , mas merece a sua própria resposta:

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

actualizei a resposta do glifo para simplificar um pouco o nome do volume.

 7
Author: unrivaledcreations, 2017-11-17 16:22:20