আমি কীভাবে ভার্চুয়াল মেমরি স্বাপ ফাইলগুলিকে অন্য কোনও ড্রাইভ বা পার্টিশনে স্থানান্তর করতে পারি?


33

দ্রষ্টব্য: এটি এমন একটি প্রশ্ন যা আমি সুপারউসারটিতে কিছুক্ষণ আগে জিজ্ঞাসা করেছি। আমি এখানে এটি আবার পোস্ট করছি কারণ আমার মনে হয় এটি এখানে।

ডিফল্টরূপে, ম্যাক ওএস এক্স এর অদলবদলগুলিকে এতে সঞ্চয় করে /private/var/vm/। আমি সোয়াপ ফাইলগুলিকে অন্য কোনও জায়গায় রাখতে চাই। এটা কিভাবে করা যাবে?


/private/var/vm/sleepimageসুপার ব্যবহারকারীর অতিরিক্ত বিবেচনা : আমি কি আমার / প্রাইভেট / ভার / ভিএম দিরকে ওএস এক্স লায়নের অন্য ভলিউমে সিলেট করতে পারি? (২০১১-০৯-২০) - এর এমন একটি উত্তর রয়েছে যা বাইরের অদলবদল ফাইল এবং স্লিপমেজ উভয়ের জন্য একই পৃথক ভলিউম না ব্যবহার করার পরামর্শ দেয়।
গ্রাহাম পেরিন

ডায়নামিকপ্যাজারওয়্যার্পার ( উত্স: ডায়নামিক_পেজার_ওয়্যাপার ) - ওএসএক্সে / এসবিন / ডায়নামিক_প্যাজারের জন্য পারফরম্যান্স র‌্যাপার
গ্রাহাম পেরিন

উত্তর:


23

নোট: সুপার ইউজার থেকে অনুলিপি করা:

ওএসএক্স-এর পুরানো সংস্করণগুলির জন্য, এই থ্রেডটি forums.macosxhints.com এ দেখুন।

ক্রেডিট যায় dblu ব্যবহার ব্যাখ্যা জন্য plutil, ZILjr প্রবর্তনের জন্য wait4pathকমান্ড, এবং ekl কোন মধ্যবর্তী শেল স্ক্রিপ্ট প্রয়োজনীয়তার নির্মূল করে পুরো জিনিস সরল জন্য।

সম্পূর্ণ সমাধান:

1. টার্মিনালটি খুলুন এবং অ্যাপলের ডিফল্ট ডায়নামিক_পেজ.পি.লিস্টের একটি ব্যাকআপ কপি তৈরি করুন:

$ cd /System/Library/LaunchDaemons
$ sudo cp com.apple.dynamic_pager.plist{,_bak}

2. প্লাস্টিকে বাইনারি থেকে সমতল এক্সএমএলে রূপান্তর করুন:

$ sudo plutil -convert xml1 com.apple.dynamic_pager.plist

৩. আপনার পছন্দের পাঠ্য সম্পাদকের সাথে রূপান্তরিত প্লিস্টটি খুলুন। (আমি ব্যবহার করি 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>

) wait4pathডায়নামিক_পেজার চালু করার আগে শেল কমান্ডটি ব্যবহার করতে প্রোগ্রামআরগমেন্টস অ্যারে (13 থেকে 18 টি লাইন) সংশোধন করুন । কেন এটি প্রয়োজনীয় তা বিশদ জানতে নোট # 1 দেখুন। নিম্নলিখিত উদাহরণে, আমার পার্টিশনটি বলা হয় Swap, এবং আমি সেই পার্টিশনের কোনও গোপন ডিরেক্টরিতে স্ব্যাপফিলগুলি স্থাপন করা বেছে নিয়েছি, .vm এটি নিশ্চিত হয়ে নিন যে আপনি যে ডিরেক্টরিটি নির্দিষ্ট করেছেন সেটি আসলেই আছে । এক্সএমএলটি নীচে দেখতে হবে:

<key>ProgramArguments</key>
<array>
    <string>/bin/bash</string>
    <string>-c</string>
    <string>/bin/wait4path /Volumes/Swap/ &amp;&amp;
/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. বাইনারি রুপান্তরিত করা plist ফিরে রূপান্তর করুন:

$ sudo plutil -convert binary1 com.apple.dynamic_pager.plist

7. আপনার ম্যাক পুনরায় চালু করুন। আপনি যদি সমস্যায় পড়ে থাকেন তবে স্টার্টআপ চিমের তত্ক্ষণাত কমান্ড-ভি ধরে ধরে ভারবোজ স্টার্টআপ মোডে স্যুইচ করুন। এটি আপনাকে স্টার্টআপের সময় উপস্থিত সমস্ত প্রারম্ভিক বার্তাগুলি দেখতে দেবে। আপনি যদি আরও খারাপ সমস্যায় পড়েন (যেমন আপনি লগইন স্ক্রিনটি কখনও দেখেন না), পরিবর্তে কমান্ড-গুলি ধরে রাখুন। এটি কম্পিউটারটিকে একক-ব্যবহারকারী মোডে বুট করবে (কোন গ্রাফিকাল ইউআই, কেবল একটি কমান্ড প্রম্পট নয়) এবং আপনি com.apple.dynamic_pager.plist এর ব্যাকআপ অনুলিপি পুনরুদ্ধার করতে দেবেন যা আপনি পদক্ষেপ 1 এ করেছেন in

৮. কম্পিউটারটি বুট হয়ে গেলে টার্মিনালটি ফায়ার আপ করুন এবং স্যুপের ফাইলগুলি আসলে স্থানান্তরিত হয়েছে তা যাচাই করুন:

$ cd /Volumes/Swap/.vm
$ ls -l

আপনার এমন কিছু দেখা উচিত:

-rw-------  1 someUser  staff  67108864 18 Sep 12:02 swapfile0

9. পুরানো swapfiles মুছুন:

$ cd /private/var/vm
$ sudo rm swapfile*

১০. লাভ!

নোট 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

যখন সবকিছু ঠিকঠাকভাবে কাজ করছে, আপনি উপরের বার্তাটি কেবল কয়েকবার দেখতে পাবেন এবং তারপরে "থ্রোটলিং রিসন" বার্তাগুলি আর কিছু না। এর অর্থ এই যে সিস্টেমটিকে পার্টিশনটি লোড হওয়ার জন্য অপেক্ষা করতে হয়েছিল, তবে শেষ পর্যন্ত এটি সফল হয়েছিল।

টাইম মেশিন থেকে পথ বাদ দিন

ওএস এক্স 10.7 এবং পরে আপনি টমটিল দিয়ে এটি করতে পারেন । উদাহরণ:

sudo tmutil addexclusion -p /Volumes/Swap/.vm

উদাহরণস্বরূপ, ফলাফলটি পর্যালোচনা করতে:

tmutil isexcluded /Volumes/Swap && tmutil isexcluded /Volumes/Swap/.vm

যদি অদলবদলের জন্য ব্যবহৃত ভলিউম সূচকের প্রয়োজন হয় না

এমডুটিল ব্যবহার করুন । উদাহরণস্বরূপ, স্যুইচ অফ করার জন্য দোকানটি মুছুন:

sudo mdutil -i off /Volumes/Swap && sudo mdutil -E /Volumes/Swap


পরের বার শুধু প্রশ্ন / উত্তর লিঙ্ক, প্রতিটি উত্তরের পাশে একটি "লিঙ্ক" বোতাম আছে। ;)
মার্টিন মার্কনকিনি

2
এই প্রশ্নের একেবারে শীর্ষে সুপার ব্যবহারকারীর প্রশ্নের একটি লিঙ্ক রয়েছে। আমি সুপার ইউজারের "" উত্তরটির সাথে সরাসরি লিঙ্ক দিইনি কারণ এটি অন্যান্য বেশ কয়েকটি উত্তরের অংশ থেকে তৈরি করা হয়েছে। তবে আমি এই উত্তরের দ্বিতীয় অনুচ্ছেদে প্রতিটি আংশিক উত্তরের (সেই সহজ "লিঙ্ক" বোতামটি ব্যবহার করে) লিঙ্কগুলি যুক্ত করেছি। আপনি আরও কত লিঙ্ক চান? ;)
জেমস

2
আমি এখানে এটি পছন্দ করি ... আমি সর্বদা এটি উল্লেখ করি ..
অ্যালেক্স ধূসর

এটি আমার জন্য ১০.১০.৩ এর মধ্যে ব্যর্থ হয়েছে - মনে হচ্ছে এটি প্লিস্টটি ব্যবহার করবে না।
aramis

2
এল ক্যাপ্টেনের অধীনে, অদলবদল সাফ করার চেষ্টা করা নতুন সিস্টেম ইন্টিগ্রিটি প্রোটেকশন দ্বারা অনুমোদিত নয়। / সিস্টেম / লাইব্রেরি / লঞ্চডেমোনস / কম.এপল.ডিমনিক_প্রেস.লিস্ট: সিস্টেম ইন্টিগ্রিটি প্রোটেকশন নিযুক্ত থাকা অবস্থায় অপারেশন অনুমোদিত নয় - পুনরুদ্ধারের পার্টিশনে বুট করুন এবং তারপরে ইউটিলিটিস মেনু থেকে সুরক্ষা কনফিগারেশন চয়ন করুন। আপনি সিস্টেমের স্বতন্ত্রতা সুরক্ষা এনফোর্সকে চেক করতে পারেন, কনফিগারেশন প্রয়োগ করুন ক্লিক করুন এবং পুনরায় চালু করতে পারেন।
মিলাই ডটকম

4

আমি একটি স্থায়ী সিস্টেম বুট সমাধান স্থাপনে অক্ষম হয়েছি, যেহেতু ১০.১০ বুটটিতে আর /etc/.rc ব্যবহার করে না এবং com.apple.dynamic_pager.plist পদ্ধতিটি ব্যর্থ হয়েছে .... তবে ...

sudo mkdir /Volumes/Swap/s
sudo chmod 755 /Volumes/Swap/s
sudo sysctl vm.swapfileprefix=/Volumes/Swap/s

দ্বারা রিপোর্ট হিসাবে সঞ্চিত উপসর্গ পরিবর্তন করে

sysctl vm

সেশনের সময়কালের জন্য, এবং এটি পুনরায় বুট থেকে যায়।

এটি কোনও পাঠ্য ফাইলে ইউনিক্স কমান্ড হিসাবে মোড়ানো হতে পারে:

$/bin/sh
sysctl vm.swapfileprefix=/Volumes/Swap/s

এবং লগইন চালানো।


-1

সহজ সমাধান:

http://www.macupdate.com/app/mac/10771/swap-relocator

অদলবদল 1.1.2 ম্যাভারিক উপর দুর্দান্ত কাজ করে!

লিংগ-ইন করার আগে ভলিউমগুলি মাউন্ট করতে টিঙ্কার সরঞ্জাম সিস্টেমটি ব্যবহার করুন (উদাহরণস্বরূপ) এটিই আমার সমস্যা সমাধান করে।

(ধন্যবাদ ফিলিপ্পো, আমি অবশেষে মিরর করা বুট ভলিউম থেকে স্ট্র্যাপের ক্যাশে ভলিউমে (সমস্ত এসএসডি) স্যুপ পরিবর্তন করতে পারি)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.