संपादित करें: मैं सिर्फ अपना जवाब स्वीकार करने जा रहा हूं, क्योंकि इसने मेरे लिए समस्या का एक हिस्सा हल कर दिया है। अगर कोई व्यक्ति कुछ और पोस्ट करता है जैसे - लिनक्स में, तो मैं उस उत्तर को स्वीकार करूंगा।
अधिक उत्तर देने के प्रयास में, मैंने अपने स्वयं के प्रश्न का उत्तर देना शुरू कर दिया है जो मुझे पता चला है।
चरण 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 / log, और / var / tmp पर निर्देशिकाओं को सिमिलिंक या माउंट करने का एक तरीका है। इन तीन निर्देशिकाओं को मेरे सिस्टम पर / निजी / tmp, / private / var / log और / private / var / tmp पर सहानुभूति दी गई है। जब मैंने / वॉल्यूम्स / रैमडिस्क / ... में इंगित करने के लिए सिम्लिंक्स को बदल दिया, तो सिस्टम बूट नहीं होगा। मुझे उम्मीद है कि क्योंकि बूट समय पर, कुछ चाहता है / tmp और / var / log से पहले मेरे com.my.ramdisk स्क्रिप्ट में रैमडिस्क की गणना करता है। मुझे रूटडिस्क के ठीक बाद रैमडिस्क को माउंट करने का एक तरीका चाहिए, इससे पहले कि कुछ और चले।
नोट यदि आप अस्थायी स्थान पर / var / log (कर्नेल, डेमन और अन्य महत्वपूर्ण उपयोगकर्ता-स्थान लॉग) माउंट करते हैं, तो आप अगले रिबूट में इसकी सामग्री खो देंगे। यह निदान करने की आपकी क्षमता को बाधित कर सकता है।