สร้าง ram disk mount ไปยังโฟลเดอร์เฉพาะใน OSX


11

ฉันใช้คำสั่งเช่นนั้นเพื่อสร้าง ram disk:

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

ทำงานได้สำเร็จและฉันได้รับดิสก์ / Volumes / ram ติดตั้งบนระบบของฉันที่ฉันสามารถใช้ที่ติดตั้งจาก / dev / disk5 หรือที่อื่น ๆ

ฉันต้องการควบคุมว่าจะไปที่ไหนเพื่อให้สามารถเมานต์ / tmp / my_dir หรือที่อื่น ๆ ฉันได้ลองหลายชุดของการเปลี่ยนพารามิเตอร์ใน hdiutil และ diskutil ไม่สำเร็จ วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร?


ใช้ลิงก์สัญลักษณ์เพื่อให้ปรากฏตามที่คุณต้องการ
martineau

ฉันคิดหาวิธีที่จะทำสิ่งนี้ได้ แต่ฉันต้องทำมากกว่าหนึ่งขั้นตอนในสคริปต์ทุบตี
Derek

คุณสามารถยอมรับคำตอบของคุณได้ที่นี่ (และแบ่งปันรายละเอียดกับพวกเราที่เหลือในกระบวนการ ;-)
martineau

คำตอบ:


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 มันใช้งานไม่ได้
Sasho

ข้อมูลโค้ดทำงานบนเซียร์รา
Rafa

1
สิ่งหนึ่งที่ต้องระวังคือhdiutilแผ่นด้านขวามีช่องว่างที่มีความยาว 54 ดังนั้นหากคุณพูด${ramdisk_dev}คุณจะพบปัญหา
zneak
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.