नोट: SuperUser से कॉपी किया गया:
OSX के पुराने संस्करणों के लिए, इस धागे को forum.macosxhints.com पर देखें।
क्रेडिट को जाता है dblu के उपयोग के स्पष्टीकरण के लिए plutil
, ZILjr शुरू करने के लिए wait4path
आदेश, और EKL एक मध्यवर्ती खोल स्क्रिप्ट की आवश्यकता को समाप्त द्वारा पूरी बात को सरल बनाने के लिए।
पूर्ण समाधान:
1. टर्मिनल खोलें और ऐप्पल के डिफ़ॉल्ट dynam_pager.plist की एक बैकअप प्रतिलिपि बनाएँ:
$ cd /System/Library/LaunchDaemons
$ sudo cp com.apple.dynamic_pager.plist{,_bak}
2. प्लेन को बाइनरी से प्लेन XML में बदलें:
$ sudo plutil -convert xml1 com.apple.dynamic_pager.plist
3. अपनी पसंद के टेक्स्ट एडिटर के साथ परिवर्तित प्लिस्ट खोलें। (मैं उपयोग करता हूं pico
, उदाहरण के लिए dblu के उत्तर को देखें vim
)
$ sudo pico -w com.apple.dynamic_pager.plist
यह इस प्रकार दिखना चाहिए:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
<key>EnableTransactions</key>
<true/>
<key>HopefullyExitsLast</key>
<true/>
<key>Label</key>
<string>com.apple.dynamic_pager</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/sbin/dynamic_pager</string>
<string>-F</string>
<string>/private/var/vm/swapfile</string>
</array>
</dict>
</plist>
4. Program_rguments सरणी को संशोधित करें (लाइनें 13 के माध्यम से 13) शेल_ wait4path
कमांड को डायनामिक_पेजर लॉन्च करने से पहले उपयोग करने के लिए । नोट # 1 देखें कि यह क्यों आवश्यक है। निम्नलिखित उदाहरण में, मेरे विभाजन को कहा जाता है Swap
, और मैंने उस विभाजन पर एक छिपी हुई निर्देशिका में स्वैपफ़ाइल्स डालना चुना, .vm
यह सुनिश्चित करें कि आपके द्वारा निर्दिष्ट निर्देशिका वास्तव में मौजूद है । XML को निम्नानुसार देखना चाहिए:
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>/bin/wait4path /Volumes/Swap/ &&
/sbin/dynamic_pager -F /Volumes/Swap/.vm/swapfile</string>
</array>
5. प्लिस्ट को बचाएं, और टर्मिनल प्रॉम्प्ट पर लौटें। का उपयोग कर pico
, आदेश होगा:
<ctrl+o> to save the file
<enter> to accept the same filename (com.apple.dynamic_pager.plist)
<ctrl+x> to exit
6. संशोधित प्लिन को बाइनरी में बदलें:
$ sudo plutil -convert binary1 com.apple.dynamic_pager.plist
7. अपने मैक को पुनरारंभ करें। यदि आप मुसीबत में हैं, तो स्टार्टअप चाइम के तुरंत बाद कमांड-वी को दबाकर क्रिया मोड चालू करें। यह आपको स्टार्टअप के उन सभी संदेशों को देखने देगा जो स्टार्टअप के दौरान दिखाई देते हैं। यदि आप और भी अधिक परेशानी में हैं (यानी आप लॉगिन स्क्रीन कभी नहीं देखते हैं), इसके बजाय कमांड-एस दबाए रखें। यह कंप्यूटर को एकल-उपयोगकर्ता मोड (कोई ग्राफ़िकल यूआई, बस एक कमांड प्रॉम्प्ट) में बूट करेगा और आपको चरण 1 में किए गए com.apple.dynamic_pager.plist की बैकअप प्रतिलिपि को पुनर्स्थापित करने की अनुमति देगा।
8. एक बार कंप्यूटर बूट करने के बाद, टर्मिनल को फायर करें और सत्यापित करें कि स्वैप फाइलें वास्तव में स्थानांतरित हो गई हैं:
$ cd /Volumes/Swap/.vm
$ ls -l
आपको कुछ इस तरह से देखना चाहिए:
-rw------- 1 someUser staff 67108864 18 Sep 12:02 swapfile0
9. पुराने स्वैप को हटा दें:
$ cd /private/var/vm
$ sudo rm swapfile*
10. लाभ!
नोट 1
बिना उपयोग किए प्लास्ट में डायनेमिक_पेजर के तर्कों को संशोधित करना wait4path
हमेशा काम नहीं करता है, और जब यह विफल हो जाता है, तो यह एक शानदार चुप तरीके से ऐसा करता है। समस्या इस तथ्य से उपजी है कि डायनामिक_पेजर को स्टार्टअप प्रक्रिया में बहुत पहले लॉन्च किया जाता है। यदि डायनामिक_पेजर पहले लोड किया गया है, तो आपके स्वैप विभाजन को अभी तक माउंट नहीं किया गया है (मेरे अनुभव में, यह समय का 99% होता है), तो सिस्टम इसके माध्यम से नकली होगा। यह आपके / वॉल्यूम निर्देशिका में एक प्रतीकात्मक लिंक बनाएगा, जिसका नाम आपके स्वैप विभाजन के समान है, लेकिन डिफ़ॉल्ट स्वैप स्थान (/ निजी / var / vm) पर वापस इंगित करता है। फिर, जब आपका वास्तविक स्वैप विभाजन आरोहित होता है, तो उसे नाम Swap 1
(या YourDriveName 1
) दिया जाएगा । आप टर्मिनल खोलकर और अपने / वॉल्यूम निर्देशिका की सामग्री को सूचीबद्ध करके समस्या देख सकते हैं:
$ cd /Volumes
$ ls -l
आप कुछ इस तरह देखेंगे:
drwxrwxrwx 11 yourUser staff 442 16 Sep 12:13 Swap -> private/var/vm
drwxrwxrwx 14 yourUser staff 5 16 Sep 12:13 Swap 1
lrwxr-xr-x 1 root admin 1 17 Sep 12:01 System -> /
ध्यान दें कि यह विफलता स्पॉट करने के लिए बहुत कठिन हो सकती है । यदि आप स्टेप 12 में दिखाए गए अनुसार स्वैपफाइल्स की जांच कर रहे थे, तब भी आप उन्हें देखेंगे ! प्रतीकात्मक लिंक ऐसा लगता है जैसे कि आपके स्वैपफिल को स्थानांतरित कर दिया गया था, भले ही वे वास्तव में डिफ़ॉल्ट स्थान पर संग्रहीत किए जा रहे थे।
नोट 2
मैं मूल रूप से स्नो लेपर्ड में काम करने में असमर्थ था क्योंकि com.apple.dynamic_pager.plist को बाइनरी प्रारूप में संग्रहीत किया गया था। मैंने मूल फ़ाइल की एक प्रतिलिपि बनाई और इसे बदलने के लिए Apple के प्रॉपर्टी लिस्ट एडिटर (Xcode के साथ उपलब्ध) के साथ खोला, लेकिन इस प्रक्रिया ने plist फ़ाइल में कुछ विस्तारित विशेषताओं को जोड़ा जिससे सिस्टम इसे अनदेखा कर देता है और बस चूक का उपयोग करता है । जैसा कि dblu ने बताया, plutil
फ़ाइल को सादे XML में बदलने के लिए उपयोग करना एक आकर्षण की तरह काम करता है।
नोट 3
आप किसी भी संदेश को देखने के लिए कंसोल एप्लिकेशन की जांच कर सकते हैं जो कि स्क्रीन पर डायनामिक_पेजर_इन इकोस है। यदि आपको बार-बार निम्न पंक्तियाँ दिखाई देती हैं, तो सेटअप के साथ समस्या है। मैं इन संदेशों में भाग गया क्योंकि मैं '.vm' निर्देशिका बनाना भूल गया था जिसे मैंने डायनामिक_पेजर_इनिट में निर्दिष्ट किया था।
com.apple.launchd[1] (com.apple.dynamic_pager[176]) Exited with exit code: 1
com.apple.launchd[1] (com.apple.dynamic_pager) Throttling respawn: Will start in 10 seconds
जब सब कुछ ठीक से काम कर रहा हो, तो आप उपरोक्त संदेश को एक-दो बार ही देख सकते हैं, और फिर "थ्रॉटलिंग रेस्पॉन्स" इन संदेशों से अधिक नहीं। इसका मतलब है कि सिस्टम को लोड होने के लिए इंतजार करना पड़ा, लेकिन अंत में यह सफल रहा।
टाइम मशीन से रास्ता छोड़ दें
OS X 10.7 में और बाद में आप tmutil के साथ ऐसा कर सकते हैं । उदाहरण:
sudo tmutil addexclusion -p /Volumes/Swap/.vm
उस उदाहरण के लिए, परिणाम की समीक्षा करने के लिए:
tmutil isexcluded /Volumes/Swap && tmutil isexcluded /Volumes/Swap/.vm
यदि स्वैप के लिए उपयोग किए जाने वाले वॉल्यूम को अनुक्रमित करने की आवश्यकता नहीं है
Mdutil का उपयोग करें । उदाहरण के लिए, फिर स्विच ऑफ करने के लिए स्टोर मिटाएँ:
sudo mdutil -i off /Volumes/Swap && sudo mdutil -E /Volumes/Swap
/private/var/vm/sleepimage
सुपर यूजर में अतिरिक्त विचार : क्या मुझे ओएस एक्स लायन में एक और वॉल्यूम के लिए अपने / निजी / var / vm dir को सिमिलर करना चाहिए? (2011-09-20) - एक जवाब है जो बाहरी स्वैप फ़ाइलों और स्लीपेज दोनों के लिए एक ही अलग वॉल्यूम का उपयोग नहीं करने की सलाह देता है।