![](/img/trans.png)
[英]How to programmatically create a PPTP VPN connection on macOS Sierra/High Sierra?
[英]Create APFS RAM disk on macOS High Sierra
通常创建 RAM 磁盘使用以下命令
hdid -nomount ram://<blocksize>
返回例如 /dev/disk2 然后我会格式化磁盘,说
newfs_hfs /dev/disk2
然后安装它:
mount -t hfs /dev/disk2 /some/mount/target
此过程似乎不适用于 APFS。 我在 High Sierra beta 9 上。 mount 命令没有输出任何错误,但没有安装路径。
就我而言,在hdid
命令完成后, newfs_apfs -i /dev/disk2
产生
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.
当我然后输入mount -t apfs /dev/disk2 /some/target/path
然后挂载命令似乎工作了 2 秒,没有给出任何输出并且挂载不成功。
谁能告诉我如何实际制作一个 APFS RAM 磁盘它可以工作? :p
PS:我也尝试过类似diskutil partitionDisk /dev/disk2 GPT APFS myvolumename 0b
,它确实将卷挂载到/Volumes/myvolumename
但创建了另一个磁盘(在这种情况下为disk3
),这对我来说似乎很奇怪!
@Glyph 在对已接受答案的评论中提供了最佳答案,但它应该有自己的答案:
diskutil partitionDisk $(hdiutil attach -nomount ram://$((2048*sizeInMB))) 1 GPTFormat APFS 'Ramdisk' '100%'
将sizeInMB
更改为您想要的大小。
我已经更新了 Glyph 的答案以稍微简化卷名。
找到了解决办法:
hdid -nomount ram://<blocksize>
diskutil erasedisk <format> <diskname> <output path of previous hdid command>
其中<format>
取自“Personality”列中的diskutil listFilesystems
。 是的,我觉得你可能必须引用这个参数也很奇怪,例如在指定区分大小写的变体时,但是哦......
<blocksize>
是 2048 * desired size in megabytes
最后一条命令格式化 RAM 磁盘并将其挂载到/Volumes/<diskname>
现在进入diskutil list
,您会看到两个新磁盘,一个是hdid
创建的,一个是合成的。
要再次销毁RAM 磁盘,请调用diskutil eject <output path of previous hdid command>
,例如diskutil eject /dev/disk2
这将为您完成所有工作,卸载/Volumes/<diskname>
路径并销毁两个磁盘,释放您的内存。
请记住, <blocksize>
的最小值/最大值取决于所选的<format>
。 此外,不能总是任意选择<diskname>
。 例如,FAT32 要求它由大写字母组成!
干杯!
此外,需要更正删除/销毁 RAM 磁盘的信息。 ramdisk 将在路径 /Volumes/'ramdisk' 处创建,因此命令是:
diskutil eject /Volumes/'ramdisk'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.