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ć?


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.