ฉันใช้ Ubuntu 10.04 (64 บิต) สำหรับเดสก์ท็อปของฉัน
เครื่องมี RAM ขนาด 5GB
ฉันต้องการใช้ RAM disk (1G หรือ 2G) แต่ฉันไม่รู้ว่าจะทำอย่างไร
มีผลิตภัณฑ์ opensource ของ RAM disk หรือไม่
ฉันใช้ Ubuntu 10.04 (64 บิต) สำหรับเดสก์ท็อปของฉัน
เครื่องมี RAM ขนาด 5GB
ฉันต้องการใช้ RAM disk (1G หรือ 2G) แต่ฉันไม่รู้ว่าจะทำอย่างไร
มีผลิตภัณฑ์ opensource ของ RAM disk หรือไม่
คำตอบ:
เทคโนโลยีถูกสร้างไว้ในเคอร์เนลคุณไม่จำเป็นต้องมีเครื่องมือเพิ่มเติม ในความเป็นจริงคุณมีดิสก์ RAM ไม่กี่อัน (ซึ่งคุณไม่ควรใช้มันมีไว้สำหรับระบบ) ซึ่งคุณสามารถดูได้โดยทำ
grep -w tmpfs /proc/mounts
หากต้องการตั้งค่าดิสก์ RAM 2GB ที่เมาท์อยู่/ramdiskให้เพิ่มบรรทัดต่อไปนี้เป็น/etc/fstab:
ramdisk /ramdisk tmpfs mode=1777,size=2g
จากนั้นติดตั้งดิสก์ด้วยคำสั่งmount /ramdisk(สิ่งนี้จะทำโดยอัตโนมัติเมื่อคุณรีบูต)
ขนาดที่ระบุคือสูงสุดดิสก์จะใช้หน่วยความจำเท่าไฟล์ที่อยู่ในนั้นเท่านั้น
คุณสามารถเปลี่ยน/tmpเป็นดิสก์ RAM ได้ ใน/etc/fstabบรรทัดด้านบนใส่/tmpแทน/ramdiskแล้วรีบูต
ครั้งแรกที่คุณรีบูตหลังจากเปลี่ยน/tmpเป็นดิสก์ RAM ไฟล์ที่อยู่ใน/tmpนั้นจะถูกซ่อนไว้ ไม่เป็นอันตรายยกเว้นว่าพวกเขากำลังสูญเสียพื้นที่ดิสก์เล็กน้อย คุณสามารถทำความสะอาดได้ ( หลังจากรีบูท/tmpบนดิสก์ RAM) โดยทำ
mount --bind / /mnt
rm -r /mnt/tmp/* /mnt/tmp/.*
umount /mnt
mount --bindคำสั่งที่ทำให้/mntมุมมองที่ซ้ำกันของระบบแฟ้มรากของคุณ แต่ในขณะที่ RAM ดิสก์ตอนนี้ปิดกั้นในมุมมองรากไม่มีอะไรซ่อนเร้น/tmp/mnt/tmp
เพิ่ม : คุณสามารถเปลี่ยน/tmpเป็นดิสก์ RAM ได้โดยไม่ต้องรีบูตเครื่องมันซับซ้อนกว่านี้เล็กน้อย เพิ่มบรรทัด/etc/fstabเป็นข้างต้นแล้วเรียกใช้คำสั่งต่อไปนี้:
mkdir /tmp.old
mount --bind /tmp /tmp.old
mount /tmp
cd /tmp
ln -s /tmp.old/* /tmp/.* .
จากนั้นลบ/tmp.oldหลังจากรีบูตครั้งต่อไป
เหตุผลที่คุณไม่สามารถย้ายไฟล์จาก/tmp.oldไปยังได้/tmpคือบางโปรแกรมที่สำคัญมีไฟล์เปิดอยู่/tmpตัวอย่างเช่น/tmp/.X11-unix/X0เซิร์ฟเวอร์ X รอฟังและทุกโปรแกรม GUI จะเปิดขึ้นเมื่อเริ่มทำงาน การย้ายไฟล์ไปยังระบบไฟล์อื่นหมายถึงการคัดลอกและลบไฟล์เก่าดังนั้นคุณจะจบลงด้วยเซิร์ฟเวอร์ X ที่ยังคงฟังอยู่/tmp.old/.X11-unix/X0แต่ไคลเอนต์ X ที่ติดต่อ/tmp/.X11-unix/X0ด้วยเปล่า ๆ บนเซิร์ฟเวอร์คุณอาจหนีไปด้วยความระมัดระวัง
/tmp tmpfsไม่จำเป็นและฉันได้แก้ไขคำตอบของฉันเพื่ออธิบายวิธีการใช้ แต่มีความซับซ้อนมากขึ้น ไม่มีmkfsส่วนเกี่ยวข้องเพราะไม่มีที่เก็บข้อมูลพื้นฐานที่จะต้องเตรียมเคอร์เนลจัดการทุกอย่าง
/tmpบนดิสก์เพิ่มความถี่ของการซิงค์) แต่นี่เป็นความรู้สึกส่วนตัวที่ไม่น่าเชื่อถือ ฉันไม่เคยลองเปรียบเทียบ