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.