Ramdisk อูบุนตู 10.04


12

ฉันใช้ Ubuntu 10.04 (64 บิต) สำหรับเดสก์ท็อปของฉัน
เครื่องมี RAM ขนาด 5GB

ฉันต้องการใช้ RAM disk (1G หรือ 2G) แต่ฉันไม่รู้ว่าจะทำอย่างไร

มีผลิตภัณฑ์ opensource ของ RAM disk หรือไม่

คำตอบ:


18

เทคโนโลยีถูกสร้างไว้ในเคอร์เนลคุณไม่จำเป็นต้องมีเครื่องมือเพิ่มเติม ในความเป็นจริงคุณมีดิสก์ 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ด้วยเปล่า ๆ บนเซิร์ฟเวอร์คุณอาจหนีไปด้วยความระมัดระวัง


@giles: มีวิธีการทำเช่นนี้โดยไม่เปลี่ยน fstab และรีบูตเครื่องหรือไม่? ฉันสมมติว่ามีวิธี mkfs ที่สอดคล้องกันตามด้วยการเมานท์ แต่ "man mkfs" ไม่ได้มีประโยชน์มาก
hotei

1
@hotei: รีบูตเป็นเพียงที่จะเปลี่ยนไป/tmp tmpfsไม่จำเป็นและฉันได้แก้ไขคำตอบของฉันเพื่ออธิบายวิธีการใช้ แต่มีความซับซ้อนมากขึ้น ไม่มีmkfsส่วนเกี่ยวข้องเพราะไม่มีที่เก็บข้อมูลพื้นฐานที่จะต้องเตรียมเคอร์เนลจัดการทุกอย่าง
Gilles 'หยุดชั่วร้าย'

@giles: ขอบคุณสำหรับการอัปเดต ฉันพลาดส่วนที่ "เวทมนต์เกิดขึ้น" ระหว่างที่เขาอ่านบรรทัด fstab ฉันเชื่อว่าฉันเข้าใจว่าทำไมมันใช้งานได้ในขณะนี้
hotei

ฉันสามารถถามได้หรือไม่ว่าสิ่งนี้ส่งผลในการเร่งความเร็วที่เห็นได้ชัด
Robert Massaioli

@ Robert: ฉันคิดว่ามันทำให้ความเร็วที่เห็นได้ชัดบน SSD ที่ช้ามากของ netbook (ส่วนใหญ่เป็นเพราะการซิงค์สามารถใช้งานได้หลายวินาทีและ/tmpบนดิสก์เพิ่มความถี่ของการซิงค์) แต่นี่เป็นความรู้สึกส่วนตัวที่ไม่น่าเชื่อถือ ฉันไม่เคยลองเปรียบเทียบ
Gilles 'หยุดชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.