EDIT: Sadece kendi cevabımı kabul edeceğim, çünkü benim için sorunun bir bölümünü çözdü. Birisi Linux'ta daha çok --bind gibi bir şey gönderirse, bu cevabı kabul edeceğim.
Daha fazla cevabı teşvik etmek için, bulduklarımla kendi soruma cevap vermeye başlayacağım.
Adım 1, her seferinde açılışta bir ramdisk'in monte edilmesidir. Bunu yapmak için, bash betiğini ve açılışta bash betiğini çağırmak için bir launchd girişi oluşturdum.
Böyle bir bash betiği yazın:
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
Ardından, aşağıdaki içerikle birlikte /Library/LaunchDaemons/com.my.ramdisk.plist adlı bir dosya oluşturarak başlatmayı ekleyerek önyüklemede çağrılmasını sağlayın:
<?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>
Sıkıldığım yer, / tmp, / var / log ve / var / tmp adresindeki ramdisk içindeki dizinleri birbirine bağlamanın veya bağlamanın bir yoludur. Bu üç klasörün tümü sistemimde / private / tmp, / private / var / log ve / private / var / tmp ile işaretlenmiştir. Sembolik bağlantıları / Volumes / ramdisk / ... olarak gösterdiğimde sistem açılmıyor. Bunun önyükleme zamanında, bir şey istediğim / tmp ve / var / log com.my.ramdisk betiğimden önce ramdisk'i bağlaması. Başka bir şey çalıştırılmadan önce kök takıldıktan hemen sonra ramdisk'i monte etmenin bir yoluna ihtiyacım var.
Not Geçici alana / var / log (çekirdek, arka plan programı ve diğer kritik kullanıcı alanı günlükleri) eklerseniz, bir sonraki açılışta içeriğini kaybedersiniz. Bu teşhis koyma yeteneğinizi engelleyebilir.