Créer un montage sur disque RAM dans un dossier spécifique dans OSX

11

J'utilise une commande comme celle-ci pour créer un disque RAM:

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

Cela fonctionne avec succès, et j'obtiens un disque / Volumes / ram monté sur mon système que je peux utiliser qui est monté à partir de / dev / disk5 ou d'un autre endroit.

J'aimerais pouvoir contrôler où cela va, pouvoir monter sur / tmp / my_dir ou n'importe où. J'ai essayé de nombreuses combinaisons de paramètres changeants dans hdiutil et diskutil sans succès. Quel est le bon moyen de le faire?

Derek
la source
Utilisez un lien symbolique pour le faire apparaître où vous le souhaitez.
martineau
J'ai trouvé un moyen de le faire, mais je devais le faire en plus d'une étape dans un script bash
Derek
Vous pouvez accepter votre propre réponse ici (et partager les détails avec le reste d'entre nous dans le processus ;-).
martineau

Réponses:

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
la source
Pour macOS Sierra, cela n'a pas fonctionné
Sasho
L'extrait de code fonctionne sur Sierra.
Rafa
1
Une chose à savoir est que les hdiutilpads droit avec des espaces sa sortie à une longueur de 54, donc si vous citez ${ramdisk_dev}, vous rencontrerez des problèmes.
zneak