Создайте монтирование RAM-диска в определенную папку в OSX


11

Я использую такую ​​команду для создания RAM-диска:

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

Это работает успешно, и я получаю диск / Volumes / ram, установленный в моей системе, который я могу использовать, который монтируется из / dev / disk5 или из какого-то другого такого места.

Я хотел бы иметь возможность контролировать, куда это идет, чтобы иметь возможность монтировать в / tmp / my_dir или где-либо еще. Я пробовал много комбинаций изменения параметров в hdiutil и diskutil, но безуспешно. Как правильно это сделать?


Используйте символическую ссылку, чтобы она появилась там, где вы хотите.
Мартино

Я нашел способ сделать это, но мне пришлось сделать это более чем за один шаг в bash-скрипте
Дерек

Вы можете принять свой собственный ответ здесь (и поделиться подробностями с остальными в процессе ;-).
Мартино

Ответы:


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

Для macOS Sierra это не сработало
Сашо

Фрагмент кода работает на Sierra.
Рафа

1
Следует помнить, что hdiutilправая панель с пробелами выводит длину до 54, поэтому, если ${ramdisk_dev}вы укажете в кавычки , у вас возникнут проблемы.
zneak
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.