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?


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}"
}

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.