Buat ram disk mount ke folder tertentu di OSX

11

Saya menggunakan perintah seperti ini untuk membuat ram disk:

diskutil erasevolume HFS+ "ram disk" `hdiutil attach -nomount ram://307200`

Ini berhasil, dan saya mendapatkan disk / Volume / ram yang terpasang pada sistem saya yang dapat saya gunakan yang dipasang dari / dev / disk5 atau tempat semacam itu.

Saya ingin dapat mengontrol ke mana arahnya, untuk dapat me-mount ke / tmp / my_dir atau di mana pun. Saya telah mencoba banyak kombinasi mengubah parameter di hdiutil dan diskutil tanpa hasil. Apa cara yang tepat untuk melakukan ini?

Derek
sumber
Gunakan tautan simbolis untuk membuatnya muncul di tempat yang Anda inginkan.
martineau
Saya menemukan cara untuk menyelesaikan ini, tapi saya harus melakukannya lebih dari satu langkah dalam skrip bash
Derek
Anda dapat menerima jawaban Anda sendiri di sini (dan membagikan detailnya dengan kami semua dalam proses ;-).
martineau

Jawaban:

15
#!/bin/sh
ramfs_size_mb=2100
mount_point=/tmp/rdisk

mkramdisk() {
  ramfs_size_sectors=$((${ramfs_size_mb}*1024*1024/512))
  ramdisk_dev=`hdid -nomount ram://${ramfs_size_sectors}`

  newfs_hfs -v 'ram disk' ${ramdisk_dev}
  mkdir -p ${mount_point}
  mount -o noatime -t hfs ${ramdisk_dev} ${mount_point}

  echo "remove with:"
  echo "umount ${mount_point}"
  echo "diskutil eject ${ramdisk_dev}"
}
Derek
sumber
Untuk macOS Sierra tidak berfungsi
Sasho
Cuplikan kode berfungsi pada Sierra.
Rafa
1
Satu hal yang perlu diperhatikan adalah bahwa hdiutilbantalan kanan dengan spasi outputnya menjadi panjang 54, jadi jika Anda mengutip ${ramdisk_dev}, Anda akan mengalami masalah.
zneak