Crear montaje en disco RAM en una carpeta específica en OSX

11

Estoy usando un comando como este para crear un disco ram:

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

Esto funciona con éxito, y obtengo un disco / Volumes / ram montado en mi sistema que puedo usar que está montado desde / dev / disk5 o algún lugar similar.

Me gustaría poder controlar a dónde va esto, poder montar en / tmp / my_dir o donde sea. He intentado muchas combinaciones de cambio de parámetros en hdiutil y diskutil sin éxito. ¿Cuál es la forma correcta de hacer esto?

Derek
fuente
Use un enlace simbólico para que aparezca donde lo desee.
Martineau
Descubrí una forma de hacer esto, pero tuve que hacerlo en más de un paso en un guión de bash
Derek el
Puede aceptar su propia respuesta aquí (y compartir los detalles con el resto de nosotros en el proceso ;-).
Martineau

Respuestas:

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
fuente
Para macOS Sierra no funcionó
Sasho
El fragmento de código funciona en Sierra.
Rafa
1
Una cosa a tener en cuenta es que hdiutillos pads derechos con espacios su salida a una longitud de 54, por lo que si cita ${ramdisk_dev}, se encontrará con problemas.
zneak