Utwórz RAM RAM mount do określonego folderu w OSX

11

Używam takiego polecenia, aby utworzyć dysk RAM:

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

Działa to z sukcesem i otrzymuję dysk / Volumes / ram zamontowany w moim systemie, którego mogę użyć, który jest podłączony z / dev / disk5 lub jakiegoś innego miejsca.

Chciałbym mieć możliwość kontrolowania, dokąd to idzie, aby móc montować do / tmp / my_dir lub gdziekolwiek. Próbowałem wielu kombinacji zmieniających się parametrów w hdiutil i diskutil bez powodzenia. Jak to zrobić?

Derek
źródło
Użyj symbolicznego linku, aby pojawił się tam, gdzie chcesz.
martineau,
Wymyśliłem sposób, aby to zrobić, ale musiałem to zrobić w więcej niż jednym kroku w skrypcie bash
Derek
Tutaj możesz zaakceptować własną odpowiedź (i podzielić się szczegółami z resztą z nas ;-).
martineau,

Odpowiedzi:

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
źródło
W systemie macOS Sierra to nie działało
Sasho,
Fragment kodu działa w Sierra.
Rafa
1
Jedną z rzeczy, o których należy pamiętać, jest to, że hdiutilprawe pady ze spacjami mają długość do 54, więc jeśli zacytujesz ${ramdisk_dev}, napotkasz problemy.
zneak