Tạo đĩa ram vào thư mục cụ thể trong OSX


11

Tôi đang sử dụng một lệnh như vậy để tạo một đĩa ram:

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

Điều này hoạt động thành công và tôi nhận được một / Khối / đĩa được gắn trên hệ thống của mình mà tôi có thể sử dụng được gắn từ / dev / đĩa5 hoặc một số nơi như vậy.

Tôi muốn có thể kiểm soát nơi này đi, để có thể gắn kết với / tmp / my_dir hoặc bất cứ nơi nào. Tôi đã thử nhiều kết hợp thay đổi tham số trong hdiutil và Diskutil mà không thành công. Cách đúng đắn để làm điều này là gì?


Sử dụng một liên kết tượng trưng để làm cho nó xuất hiện ở nơi bạn mong muốn.
martineau

Tôi đã tìm ra một cách để thực hiện điều này, nhưng tôi phải thực hiện nó nhiều hơn một bước trong một kịch bản bash
Derek

Bạn có thể chấp nhận câu trả lời của riêng mình tại đây (và chia sẻ chi tiết với phần còn lại của chúng tôi trong quá trình ;-).
martineau

Câu trả lời:


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

Đối với macOS Sierra, nó không hoạt động
Sasho

Đoạn mã không hoạt động trên Sierra.
Rafa

1
Một điều cần lưu ý là hdiutilcác miếng đệm bên phải có khoảng trống đầu ra của nó tới 54, vì vậy nếu bạn trích dẫn ${ramdisk_dev}, bạn sẽ gặp vấn đề.
zneak
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.