रामडिस्क उबंटू 10.04


12

मैं अपने डेस्कटॉप के लिए Ubuntu 10.04 (64 बिट) का उपयोग कर रहा हूं।
मशीन में 5GB की रैम है।

मैं RAM डिस्क (1G या 2G) का उपयोग करना चाहता हूं, लेकिन मुझे नहीं पता कि मैं यह कैसे कर सकता हूं।

क्या रैम डिस्क का कोई ओपनसोर्स उत्पाद है?

जवाबों:


18

प्रौद्योगिकी को कर्नेल में बनाया गया है, आपको किसी अतिरिक्त टूल की आवश्यकता नहीं है। वास्तव में, आपके पास पहले से ही कुछ रैम डिस्क हैं (जो आपको उपयोग नहीं करना चाहिए, वे सिस्टम के लिए आरक्षित हैं), जिसे आप कर सकते हैं

grep -w tmpfs /proc/mounts

2GB RAM डिस्क पर स्थापित करने के लिए /ramdisk, निम्न पंक्ति को इसमें जोड़ें /etc/fstab:

ramdisk  /ramdisk  tmpfs  mode=1777,size=2g

फिर कमांड के साथ डिस्क को माउंट करें mount /ramdisk(यह रिबूट होने पर स्वचालित रूप से किया जाएगा)।

संकेतित आकार एक अधिकतम है, डिस्क केवल उसी मेमोरी का उपयोग करती है जो उस पर मौजूद फ़ाइलों के रूप में है।


आप /tmpरैम डिस्क में बदल सकते हैं । /etc/fstabऊपर की पंक्ति में, इसके /tmpबजाय रखो /ramdisk, फिर रिबूट करें।

/tmpरैम डिस्क में बदलने के बाद पहली बार आप रिबूट करते हैं , जो फाइलें थीं, /tmpवे छिपी होंगी। यह हानिरहित है, सिवाय इसके कि वे थोड़ा डिस्क स्थान बर्बाद कर रहे हैं। आप उन्हें साफ कर सकते हैं ( रैम डिस्क पर आपके द्वारा रिबूट किए जाने के बाद/tmp )

mount --bind / /mnt
rm -r /mnt/tmp/* /mnt/tmp/.*
umount /mnt

mount --bindआदेश में आता है /mntअपने रूट फाइल सिस्टम का डुप्लिकेट दृश्य; लेकिन जब RAM डिस्क अब /tmpरूट दृश्य पर अस्पष्ट है , कुछ भी अस्पष्ट नहीं है /mnt/tmp

जोड़ा : आप /tmpरिबूट किए बिना एक रैम डिस्क पर स्विच कर सकते हैं , यह बस थोड़ा अधिक जटिल है। /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 सर्वर सुनता है और हर जीयूआई कार्यक्रम को खोलता है, जब यह शुरू होता है। किसी फ़ाइल को किसी भिन्न फ़ाइल सिस्टम में ले जाने का अर्थ है कि उसे कॉपी करना और पुराने को डिलीट करना, इसलिए आप एक्स सर्वर के साथ अभी भी सुन रहे हैं, /tmp.old/.X11-unix/X0लेकिन एक्स क्लाइंट /tmp/.X11-unix/X0व्यर्थ में संपर्क कर रहे हैं। यदि आप सावधान हैं, तो एक सर्वर पर, आप एक चाल से दूर हो सकते हैं।


@ गिल्स: क्या फ़ास्टब और रिबूटिंग में बदलाव के बिना ऐसा करने का कोई तरीका है? मुझे लगता है कि वहाँ एक इसी mkfs विधि है, एक माउंट द्वारा पीछा किया, लेकिन "आदमी mkfs" बहुत उपयोगी नहीं था।
16

1
@hotei: रिबूट केवल स्विच /tmpकरने के लिए है tmpfs। यह आवश्यक नहीं है, और मैंने यह करने के लिए अपने उत्तर को संपादित किया है कि यह कैसे करना है, लेकिन यह अधिक जटिल है। इसमें कोई mkfsशामिल नहीं है क्योंकि तैयार करने के लिए कोई अंतर्निहित भंडारण नहीं है, कर्नेल सब कुछ संभालता है।
गिल्स एसओ- बुराई को रोकना '

@ गिल्स: अपडेट के लिए धन्यवाद। मैं उस हिस्से को याद कर रहा था, जहां माउंट मैस्ट ऑफ़ द फैस्टब लाइन पढ़ने के दौरान "जादू होता है"। मेरा मानना ​​है कि मैं समझता हूं कि यह अब क्यों काम करता है।
१२:१२

क्या मैं पूछ सकता हूं कि क्या यह ध्यान देने योग्य स्पीडअप में परिणाम देता है?
रॉबर्ट मासैओली

@ रॉबर्ट: मुझे लगता है कि इसने मेरी नेटबुक की बहुत धीमी एसएसडी पर ध्यान देने योग्य गति बढ़ाई (मुख्यतः क्योंकि सिंक कई सेकंड तक चल सकता है और /tmpडिस्क पर सिंक की आवृत्ति बढ़ जाती है), लेकिन यह एक अविश्वसनीय व्यक्तिपरक छाप है। मैंने कभी बेंचमार्क करने की कोशिश नहीं की।
गाइल्स का SO- बुराई से रोकना '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.