ฉันจะสร้างดิสก์ RAM ได้อย่างไร


55

ฉันต้องการสร้างพาร์ติชันที่ทำจาก ram ...

ตัวอย่าง

ใน windows 7 คุณสามารถสร้างพาร์ติชันที่ทำจาก ram

ป้อนคำอธิบายรูปภาพที่นี่

ฉันสร้างพาร์ติชั่น 1 GB ใน RAM ใช้Primo RamDisk

มีทางเลือกที่ดีใน Ubuntu หรือไม่?


3
Ubuntu มาพร้อมกับ tmpfs คุณไม่จำเป็นต้องสร้าง RAMDISK
mixdev

ขึ้นอยู่กับกรณีการใช้งานที่คุณตั้งใจคุณอาจไม่ต้องการ ramdisk สำหรับ Ubuntu (หรือ Linux distros ส่วนใหญ่) ระบบปฏิบัติการแคชอ่านและเขียนกิจกรรมไปยัง RAM ในขณะที่ทำงานกับดิสก์ปกติ หากคุณอ่านไฟล์ขนาดเล็กหลาย ๆ ครั้งมันจะถูกดึงมาจากดิสก์เพียงครั้งเดียวจากนั้นดึงข้อมูลจากแคช RAM ในเวลาต่อไปนี้ หากคุณมี RAM มากมายทุกสิ่งที่คุณทำจะถูกแคชด้วยวิธีนี้ดังนั้นคุณจะได้รับกิจกรรมการทำซ้ำดิสก์น้อยมาก หากคุณต้องการใช้หน่วยความจำเร็วแบบไม่ต่อเนื่องแทนไฟล์คุณต้องใช้ RAMDISK ดูlinuxatemyram.comสำหรับรายละเอียดเพิ่มเติม
TafT

คำตอบ:


77

นี่จะแสดงวิธีการทำ RAMDISK ที่รวดเร็วและง่ายดาย ด้วย RAMDISK คุณสามารถใช้หน่วยความจำของคุณสำหรับพื้นที่ชั่วคราวและยังเร็วกว่าฮาร์ดไดรฟ์ของคุณ

ตอนนี้ให้เริ่มด้วยการใช้ 2 คำสั่งถัดไปเพื่อสร้าง RAMDISK ของคุณ

ใส่สิ่งที่คุณต้องการให้ RAMDISK ของคุณถูกเรียกว่าฉันเขียน“ nameme”

mkdir -p /media/nameme

mount -t tmpfs -o size=2048M tmpfs /media/nameme/
คำสั่งข้างต้นจะใช้ RAM 2GB ของฉันสำหรับ RAMDISK หากคุณไม่มี RAM มากเท่าที่ฉันจะใช้ 512MB หรือ 1GB ดังนั้นต่อไปก็จะสร้างคำสั่งสำหรับ Terminal ที่จะสร้าง RAMDISK ให้คุณโดยอัตโนมัติ

ที่มา: วิธีการสร้าง RAMDISK ใน Linux


3
ฉันจะทำให้สิ่งนี้คงอยู่ระหว่างการรีบูตได้อย่างไร?
chovy

1
เนื่องจากเป็น RAM มันจะระเหยได้เมื่อคุณรีสตาร์ททุกอย่างจะหายไปแม้ว่าการบู๊ตด้วยความร้อนเนื่องจาก BIOS / EFI จะล้าง RAM วิธีที่ดีที่สุดที่คุณสามารถทำได้คือสร้างเชลล์สคริปต์ที่รันคำสั่งเมื่อล็อกอิน
Brandon MacEachern

1
@ chovy ยืนยันว่าคุณมีสองทางเลือกฉันคิดว่าประมาณ 2 ในขณะนี้ 1. เขียน api เพื่อเขียนไปยังดิสก์ RAM และเขียนแบบอะซิงโครนัสไปยังดิสก์ hdd อ่านจาก ram เสมอเมื่อบูตอุ่นเครื่อง ram จากดิสก์เท่านั้น 2. โทรหาสคริปต์บางครั้งซึ่งคัดลอกสิ่งใด ๆ ในดิสก์ RAM ไปยังดิสก์ hdd และคัดลอกกลับมาหนึ่งครั้งหลังจากบูต
ลูคัส

อีกทางเลือกหนึ่งคือการกำหนดสิ่งที่คล้าย/tmp/cacheกับแคชแคชของคุณโดยที่ไดเรกทอรีนั้นเป็นจุดเชื่อมต่อของโอเวอร์เลย์ (โดยใช้ tmpfs เป็นอัปเดตด้านบนและสิ่งอื่นใดในระบบไฟล์ปกติของคุณ สิ่งนี้จะช่วยให้คุณมีเลเยอร์ที่รวดเร็วและไม่ถาวรและมีสิ่งที่สามารถซิงโครไนซ์ได้เล็กน้อยหากคุณต้องการทำให้บางส่วนเป็นแบบถาวร
mway

chovy เพิ่มลงใน /etc/rc.local และมันจะทำการติดตั้งพาร์ติชั่นโดยอัตโนมัติ ... แต่ข้อมูลจะหายไป
777Anon

49

ระบบไฟล์ tmpfs คือ RAMDISK ต่อไปนี้จะสร้าง 2G RAMDISK ที่พร้อมใช้งานเสมอ

sudo mkdir -p /media/ramdisk
sudo mount -t tmpfs -o size=2048M tmpfs /media/ramdisk

โฟลเดอร์ ramdisk เป็นเจ้าของโดย root เนื่องจากมีอยู่ในการรีบูต สิทธิ์ ramdisk ทุกคนควรสามารถเขียนได้ สิทธิ์เริ่มต้น tmpfs (chmod 1777) ถูกต้อง

sudo chmod 1777 /media/ramdisk
drwxrwxrwt 2 root root 180 Apr 23 07:34 /media/ramdisk

หากต้องการทำให้ ramdisk พร้อมใช้งานอย่างถาวรให้เพิ่มไปที่ / etc / fstab

grep /media/ramdisk /etc/mtab | sudo tee -a /etc/fstab

คุณจะเห็นบรรทัดที่ถูกย้ายจาก mtab ไปยัง fstab มันจะออกมาเป็นแบบนี้

tmpfs /media/ramdisk tmpfs rw,size=2048M 0 0

RAMDISK จะไม่ใช้หน่วยความจำจนกว่าคุณจะใช้มัน ตรวจสอบความต้องการหน่วยความจำของคุณอีกครั้งระหว่างการโหลดระบบสูงสุด หาก RAMDISK ใหญ่เกินไประบบของคุณจะใช้พื้นที่เก็บข้อมูล swap เพื่อสร้างความแตกต่าง

หากต้องการปรับขนาดของ RAMDISK ให้แก้ไข / etc / fstab และตรวจสอบโดยการติดตั้ง ramdisk อีกครั้ง (คุณจะสูญเสียเนื้อหา RAMDISK ปัจจุบันของคุณเช่นเดียวกับที่คุณทำการรีบูท) ต่อไปนี้จะเปลี่ยนขนาดของ ramdisk เป็น 512M

# Check the existing ramdisk size.
df /media/ramdisk
# change size=512M for a 512 megabyte ram drive.
sudo vi /etc/fstab
# Remount the ramdisk, you will lose any existing content.
sudo mount -a /media/ramdisk
# Verify the new ramdisk size.
df /media/ramdisk

1
เทคนิคtmpfsคือramfsไม่ramdisk
heemayl

2
ตกลง. ฉันเลือกใช้ RAMDISK เนื่องจากเป็นชื่อสามัญสำหรับสิ่งนี้บน Windows
rickfoosusa

หนึ่งจะตรวจสอบได้อย่างไรว่า ramdisk ใช้งานจริงหรือไม่? ฉันมักจะเห็นว่ามันเป็นใช้ 0%
BTR Naidu

9

การเพิ่ม 2 เซ็นต์ของฉันสำหรับกรณีที่คุณไม่มีสิทธิ์รูท:

อ้างจากคำตอบนี้จาก unix.stackexchange

Linux จัดเตรียมอุปกรณ์ tmpfs ที่ผู้ใช้สามารถใช้ / dev / shm มันไม่ได้ถูกเมานต์ไปยังไดเรกทอรีที่ระบุโดยค่าเริ่มต้น แต่คุณยังคงสามารถใช้เป็นไดเรกทอรีเดียวได้

เพียงสร้างไดเรกทอรีใน / dev / shm จากนั้นเชื่อมโยงไปยังทุกที่ที่คุณต้องการ คุณสามารถให้สิทธิ์สร้างไดเรกทอรีใด ๆ ที่คุณเลือกเพื่อให้ผู้ใช้รายอื่นไม่สามารถเข้าถึงได้

นี่คืออุปกรณ์ที่สำรอง RAM ดังนั้นสิ่งที่มีอยู่ในหน่วยความจำโดยค่าเริ่มต้น คุณสามารถสร้างไดเรกทอรีใด ๆ ที่คุณต้องการภายใน / dev / shm

โดยปกติแล้วไฟล์ที่วางไว้ที่นี่จะไม่สามารถรีบูตได้และหากเครื่องของคุณเริ่มทำการแลกเปลี่ยน / dev / shm จะไม่ช่วยคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.