通常创建RAM磁盘可以使用以下命令
SqlDataAdapter da = new SqlDataAdapter("SELECT Pname FROM product", con);
DataSet ds = new DataSet();
da.Fill(ds);
DataRow row = ds.Tables[0].NewRow();
row["Pname"] = -1;
row["Pname"] = "select Product";
ds.Tables[0].Rows.InsertAt(row, 0);
AutoCompleteStringCollection mycol = new AutoCompleteStringCollection();
DataTableReader dr = ds.Tables[0].CreateDataReader();
while(dr.Read())
{ mycol.Add(dr.GetString(0));
}
comboBox1.AutoCompleteCustomSource = mycol;
con.Close();
返回,例如的/ dev / DISK2 然后我会格式化磁盘,比如说
hdid -nomount ram://<blocksize>
然后安装它:
newfs_hfs /dev/disk2
此过程似乎不适用于APFS。我在High Sierra beta 9. mount命令不输出任何错误,但路径未安装。
在我的情况下,mount -t hfs /dev/disk2 /some/mount/target
命令完成后,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命令似乎工作2秒,不提供任何输出,并且挂载不成功。
有谁能告诉我如何实际制作APFS RAM磁盘s.t.有用? :P
PS:我也试过类似mount -t apfs /dev/disk2 /some/target/path
的东西,它将卷装到diskutil partitionDisk /dev/disk2 GPT APFS myvolumename 0b
但是创建了另一个磁盘(在这种情况下是/Volumes/myvolumename
),这对我来说很奇怪! / p>
答案 0 :(得分:11)
@Glyph在对accepted answer的评论中提供了最佳答案,但它应该得到自己的答案:
diskutil partitionDisk $(hdiutil attach -nomount ram://2048000) 1 GPTFormat APFS 'ramdisk' '100%'
我已经更新了Glyph的答案,以简化音量名称。
答案 1 :(得分:9)
找到解决方案:
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要求它由大写字母组成!
干杯!
答案 2 :(得分:0)
此外,删除/销毁RAM磁盘的信息也需要纠正。 ramdisk将在路径/ Volumes /'ramdisk'中创建,因此命令为:
diskutil eject /Volumes/'ramdisk'