通常、RAMディスクを作成すると、次のコマンドで動作します
hdid -nomount ram://<blocksize>
を返します/ dev/disk2次に、ディスクをフォーマットします。
newfs_hfs /dev/disk2
続いてマウントします:
mount -t hfs /dev/disk2 /some/mount/target
この手順はAPFSでは機能しないようです。 High Sierraベータ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 disk s.t.を実際に作成する方法を教えてもらえますか?:p
PS:ボリュームをdiskutil partitionDisk /dev/disk2 GPT APFS myvolumename 0b
にマウントする/Volumes/myvolumename
のようなものも試しましたが、さらに別のディスク(この場合はdisk3
)を作成します。
ソリューションを見つけました:
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
と入力すると、two new disks、hdid
が作成され、合成されたものが表示されます。
destroy the RAM disk again、call diskutil eject <output path of previous hdid command>
、例:diskutil eject /dev/disk2
これによりすべての作業が行われ、/Volumes/<diskname>
パスがアンマウントされ、2つのディスクが破壊され、メモリが解放されます。
<blocksize>
の最小値/最大値は、選択した<format>
に依存することに注意してください。また、<diskname>
は常に任意に選択できるとは限りません。例として、FAT32では大文字で構成する必要があります!
乾杯!
@Glyphは 受け入れられた回答 へのコメントでベストアンサーを提供しましたが、独自の回答に値します。
diskutil partitionDisk $(hdiutil attach -nomount ram://2048000) 1 GPTFormat APFS 'ramdisk' '100%'
ボリューム名を少し簡略化するためにGlyphの回答を更新しました。
また、RAMディスクを修正する必要があります。ramdiskはパス/ Volumes/'ramdisk'に作成されるため、コマンドは次のようになります。
diskutil eject /Volumes/'ramdisk'