আমি এখনও অবধি আমার হার্ড ড্রাইভের আপেলের ভার্চুয়াল মেমরি স্যুপফিলগুলি একটি ডেডিকেটেড পার্টিশনে স্থানান্তরিত করতে সক্ষম হয়েছি। আমি যে কৌশলটি ব্যবহার করছি সেগুলি ফোরামেস.ম্যাকোসেক্সটিন ডটকমের একটি থ্রেডে বর্ণিত ।
তবে স্নো চিতাবাঘের বিকাশকারী পূর্বরূপ সহ, এই পদ্ধতিটি আর কাজ করে না। নতুন ওএস দিয়ে কীভাবে এটি করা যেতে পারে তা কি কেউ জানেন?
আপডেট: আমি dblu এর উত্তরটিকে গ্রহণযোগ্য হিসাবে চিহ্নিত করেছি যদিও এটি বেশ কার্যকর হয়নি যদিও তিনি দুর্দান্ত, বিস্তারিত নির্দেশনা দিয়েছেন এবং কারণ তাঁর ব্যবহারের পরামর্শটি plutil
শেষ পর্যন্ত আমাকে সঠিক দিকে নির্দেশ করেছিল। সম্পূর্ণ, কার্যক্ষম সমাধান এখানে প্রশ্নে পোস্ট করা হয়েছে কারণ গ্রহণযোগ্য উত্তর সম্পাদনা করার মতো যথেষ্ট খ্যাতি আমার নেই।
আপডেট # 2: একল এর কৌশলটি চিত্রিত করার পদ্ধতি পরিবর্তন করেছে , যা একটি মধ্যবর্তী শেল স্ক্রিপ্টের প্রয়োজনীয়তা বাদ দিয়ে পুরো জিনিসটি ব্যাপকভাবে সরল করে তোলে :
সম্পূর্ণ সমাধান:
1.
টার্মিনালটি খুলুন এবং অ্যাপলের ডিফল্ট ডায়নামিক_পেজ.পি.লিস্টের একটি ব্যাকআপ কপি করুন:
$ cd /System/Library/LaunchDaemons
$ sudo cp com.apple.dynamic_pager.plist{,_bak}
2.
প্লাস্টটিকে বাইনারি থেকে প্লেইন এক্সএমএলে রূপান্তর করুন:
$ sudo plutil -convert xml1 com.apple.dynamic_pager.plist
3.
আপনার পছন্দের পাঠ্য সম্পাদকের সাথে রূপান্তরিত প্লিস্টটি খুলুন। (আমি ব্যবহার করি pico
, উদাহরণস্বরূপ ব্যবহার করে ডিবিলুর উত্তর দেখুন 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.
ডায়নামিক_পাজার চালু করার আগে ওয়েটপথথ শেল কমান্ড ( জিলজির পরামর্শ অনুসারে ) ব্যবহার করতে প্রোগ্রামআরগমেন্টস অ্যারে (13 থেকে 18 টি লাইন) সংশোধন করুন । কেন এটি প্রয়োজনীয় তা বিশদ জানতে নোট # 1 দেখুন। নিম্নলিখিত উদাহরণে, আমার পার্টিশনটিকে 'অদলবদল' বলা হয়, এবং আমি সেই পার্টিশনের একটি লুকানো ডিরেক্টরিতে স্বাপফায়ালগুলি রাখার জন্য বেছে নিয়েছিলাম, '.vm' বলে নিশ্চিত হয়ে নিন যে আপনি যে ডিরেক্টরিটি নির্দিষ্ট করেছেন সেটি আসলেই আছে । এক্সএমএলটি নীচে দেখতে হবে:
<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.
আপনার ম্যাকটি পুনরায় চালু করুন। আপনি যদি সমস্যায় পড়ে থাকেন তবে স্টার্টআপ চিমের তত্ক্ষণাত কমান্ড-ভি ধরে ধরে ভারবোজ স্টার্টআপ মোডে স্যুইচ করুন। এটি আপনাকে স্টার্টআপের সময় উপস্থিত সমস্ত প্রারম্ভিক বার্তাগুলি দেখতে দেবে। আপনি যদি আরও খারাপ সমস্যায় পড়েন (যেমন আপনি লগইন স্ক্রিনটি কখনও দেখেন না), পরিবর্তে কমান্ড-গুলি ধরে রাখুন। এটি কম্পিউটারটিকে একক-ব্যবহারকারী মোডে বুট করবে (কোন গ্রাফিকাল ইউআই, কেবল একটি কমান্ড প্রম্পট নয়) এবং আপনি com.apple.dynamic_pager.plist এর ব্যাকআপ অনুলিপি পুনরুদ্ধার করতে দেবেন যা আপনি পদক্ষেপ 1 এ করেছেন in
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% সময়ের মধ্যে ঘটে) তবে সিস্টেমটি এর মাধ্যমে নকল হবে। এটি আপনার / ভলিউম ডিরেক্টরিতে একটি সিম্বলিক লিঙ্ক তৈরি করবে যা আপনার সোয়াপ পার্টিশনের মতো একই নাম রয়েছে তবে এটি ডিফল্ট স্বাপফাইলে অবস্থান (/ প্রাইভেট / ভার / ভিএম) এর দিকে নির্দেশ করে। তারপরে, যখন আপনার আসল অদলবদলটি মাউন্ট করবে তখন নাম 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 বাইনারি ফর্ম্যাটে সংরক্ষণ করা হয়েছিল। আমি মূল ফাইলটির একটি অনুলিপি তৈরি করেছি এবং এ্যাপেলের সম্পত্তি তালিকা সম্পাদকের সাথে এটি খুললাম (এক্সকোডের সাথে উপলব্ধ) পরিবর্তন করার জন্য, তবে এই প্রক্রিয়াটি প্লাস্ট ফাইলটিতে কিছু বর্ধিত বৈশিষ্ট্য যুক্ত করেছে যার ফলে সিস্টেম এটিকে উপেক্ষা করে এবং কেবলমাত্র ডিফল্টগুলি ব্যবহার করে । ডিবিলু যেমন উল্লেখ করেছে, plutil
ফাইলটিকে প্লেইন এক্সএমএলে রূপান্তর করতে একটি কবিতার মতো কাজ করে।
নোট 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
যখন সবকিছু ঠিকঠাকভাবে কাজ করছে, আপনি উপরের বার্তাটি কেবল কয়েকবার দেখতে পাবেন এবং তারপরে "থ্রোটলিং রিসন" বার্তাগুলি আর কিছু না। এর অর্থ এই যে সিস্টেমটিকে পার্টিশনটি লোড হওয়ার জন্য অপেক্ষা করতে হয়েছিল, তবে শেষ পর্যন্ত এটি সফল হয়েছিল।
wait4path
সমাধান খুঁজে পেলাম , অ্যাপলর্ন এর জন্য ধন্যবাদ Xupport আমার জন্য পরিবর্তিত হয়েছে। কীভাবে করব তা বুঝতে পেরে আমি একটি পূর্ণ উত্তর পোস্ট করব, তবে এর সংক্ষিপ্ততাটি হ'ল শেষ প্রোগ্রামের যুক্তিটি কেবল নতুন পথে (উদাহরণস্বরূপ <string>/Volumes/swap/.vm/swapfile</string>
) পরিবর্তন করা, OnDemand
কীটি পরিবর্তন করা <true/>
, এবং StartOnMount
একটি মান সহ শেষের একটি কী যুক্ত করা এর <true/>
। পিএস এই সমাধানটি সিংহটিতে কাজ করে (আমার পক্ষে, কমপক্ষে)।
StartOnMount
: পতাকা অনুযায়ী 10.5 মধ্যে যোগ করা হয়েছিল mactech.com/articles/mactech/Vol.25/25.10/...