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.
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!
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
/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!
@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.