編集:私は問題の一部を解決したので、私は自分の答えを受け入れるつもりです。Linuxで--bindのようなものを投稿した場合、その答えを受け入れます。
より多くの回答を得るために、見つけたもので自分の質問に答え始めます。
ステップ1は、ブート時に毎回RAMディスクをマウントすることです。これを行うには、bashスクリプトを作成してから、起動時にbashスクリプトを呼び出すlaunchdエントリを作成します。
次のようなbashスクリプトを作成します。
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というファイルを作成して、launchdに追加することにより、起動時に呼び出されます。
<?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でramdisk内のディレクトリをシンボリックリンクまたはマウントする方法です。これらの3つのディレクトリはすべて、システム上で/ private / tmp、/ private / var / log、および/ private / var / tmpにシンボリックリンクされています。/ Volumes / ramdisk / ...を指すようにシンボリックリンクを変更すると、システムが起動しません。これは、ブート時に、com.my.ramdiskスクリプトがramdiskをマウントする前に、/ tmpと/ var / logが必要になるためです。rootがマウントされた直後、他の何かが実行される前に、ramdiskをマウントする方法が必要です。
注 / var / log(カーネル、デーモン、およびその他の重要なユーザースペースのログ)を一時スペースにマウントすると、次回の再起動時にその内容が失われます。これにより、診断能力が阻害される可能性があります。