在 macOS High Sierra 上创建 APFS RAM 磁盘
Posted
技术标签:
【中文标题】在 macOS High Sierra 上创建 APFS RAM 磁盘【英文标题】:Create APFS RAM disk on macOS High Sierra 【发布时间】:2018-02-23 17:35:33 【问题描述】:通常使用以下命令创建 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 磁盘 s.t.有用? :p
PS:我也尝试过类似diskutil partitionDisk /dev/disk2 GPT APFS myvolumename 0b
的方法,它确实将卷安装到/Volumes/myvolumename
,但创建了另一个磁盘(在这种情况下为disk3
),这对我来说似乎很奇怪!
【问题讨论】:
disk3
在这种情况下是一个核心存储容器,它或多或少是 APFS 的必需组件。 en.wikipedia.org/wiki/Core_Storage
【参考方案1】:
@Glyph 在对accepted answer 的评论中提供了最佳答案,但它值得拥有自己的答案:
diskutil partitionDisk $(hdiutil attach -nomount ram://$((2048*sizeInMB))) 1 GPTFormat APFS 'Ramdisk' '100%'
将sizeInMB
更改为您想要的大小。
我已更新 Glyph 的答案以稍微简化卷名。
【讨论】:
希望有一种方法可以将其与 ssd 上的文件夹同步!开始同步将 1. 将 ssd 上的文件夹初始加载到 ramdisk,2. 将 ramdisk 的更改同步到 ssd。另外两个不错的功能是 3. 帮助您使用您选择的程序打开 ramdisk 文件夹,一旦它被复制过来;和 4. 防止程序更改 ssd 上的文件夹/或至少在发生这种情况时发出警告。 @字形 这不会删除我的一些数据吗?磁盘“1”不存在。我怎么知道要选择哪个磁盘?【参考方案2】:此外,需要更正删除/销毁 RAM 磁盘的信息。 ramdisk会在路径/Volumes/'ramdisk'创建,所以命令是:
diskutil eject /Volumes/'ramdisk'
【讨论】:
【参考方案3】:找到解决办法:
hdid -nomount ram://<blocksize>
diskutil erasedisk <format> <diskname> <output path of previous hdid command>
其中<format>
取自“个性”列中的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 要求它由大写字母组成!
干杯!
【讨论】:
按照这些说明(尽管使用hdiutil attach
而不是 hdid
,因为 hdid
已弃用)我总是得到 Mounting disk Could not mount disk2 after erase
,而同一命令行使用 HFS+
而不是 APFS
结果成功。 APFS 卷可接受的最小/最大值是多少?
diskutil partitionDisk $(hdiutil attach -nomount ram://2097152) 1 GPTFormat APFS 'APFS RAM Disk' '100%'
虽然对我有用 :)以上是关于在 macOS High Sierra 上创建 APFS RAM 磁盘的主要内容,如果未能解决你的问题,请参考以下文章
markdown 在macOS High Sierra上安装多个Java版本
markdown 在macOS High Sierra上安装多个Java版本
markdown 在High Sierra上安装Windows 10(macOS 10.13.2)
在 OS X 10.11 El Capitan、macOS 10.12 Sierra、macOS 10.13 High Sierra (< 10.13.3) 上安装 pecl 和 pear