সম্পাদনা: আমি কেবল আমার নিজের উত্তরটি গ্রহণ করতে যাচ্ছি, কারণ এটি আমার জন্য সমস্যার একটি অংশ সমাধান করেছিল। যদি কেউ লিনাক্সে --bind এর মতো আরও কিছু পোস্ট করেন তবে আমি এই উত্তরটি গ্রহণ করব।
আরও উত্তর জাগ্রত করার প্রয়াসে, আমি আমার নিজের প্রশ্নের উত্তর আমি যা খুঁজে পেয়েছি তার সাথে দেওয়া শুরু করব।
পদক্ষেপ 1 হ'ল প্রতিবার বুটে মাউন্ট করা একটি র্যামডিস্ক। এটি করার জন্য, আমি বুশে স্ক্রিপ্টটি কল করতে একটি ব্যাশ স্ক্রিপ্ট এবং তারপরে একটি লঞ্চ করা এন্ট্রি তৈরি করি।
এটির মতো একটি বাশ স্ক্রিপ্ট লিখুন:
RD=ramdisk
if [ ! -e "/Volumes/$RD" ]; then
diskutil erasevolume HFS+ "$RD" `hdiutil attach -nomount`
fi
mkdir -p /Volumes/$RD/private/tmp
mkdir -p /Volumes/$RD/private/var/log
mkdir -p /Volumes/$RD/private/var/tmp
তারপরে নীচের বিষয়বস্তুগুলির সাথে /Library/LaunchDaemons/com.my.ramdisk.plist নামক একটি ফাইল তৈরি করে এটি চালু করে বুটে ডাকতে হবে:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.my.ramdisk</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/ramdisk.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
আমি যেখানে আটকে আছি তা হল / tmp, / var / লগ, এবং / var / tmp এ র্যামডিস্কের অভ্যন্তরে ডিরেক্টরিগুলি সিমলিংক বা মাউন্ট করার একটি উপায়। এই তিনটি ডিরেক্টরি সমস্তই আমার সিস্টেমে / বেসরকারী / টিএমপি, / প্রাইভেট / ভের / লগ এবং / প্রাইভেট / ভার / টেম্পে একত্রে যুক্ত থাকে। আমি যখন সিমলিংকগুলি / ভলিউম / রামডিস্ক / ... তে নির্দেশিত করেছি তখন সিস্টেমটি বুট হবে না। আমি এটি প্রত্যাশা করি কারণ বুট করার সময়, আমার com.my.ramdisk স্ক্রিপ্টটি র্যামডিস্কটি মাউন্ট করার পূর্বে কিছু / tmp এবং / var / লগ চায়। রুট মাউন্ট হওয়ার ঠিক পরে র্যামডিস্কটি মাউন্ট করার জন্য আমার একটি উপায় দরকার, অন্য কিছু চালানোর আগে।
দ্রষ্টব্য আপনি যদি অস্থায়ী স্থানে / var / লগ (কার্নেল, ডেমন এবং অন্যান্য সমালোচক ব্যবহারকারী-স্পেস লগগুলি) মাউন্ট করেন তবে আপনি পরবর্তী পুনরায় বুটটিতে এর সামগ্রীগুলি হারাবেন। এটি আপনার নির্ণয়ের ক্ষমতা বাধা দিতে পারে।