РЕДАКТИРОВАТЬ: Я просто собираюсь принять свой собственный ответ, так как он решил одну часть проблемы для меня. Если кто-то напишет что-то более похожее на --bind в Linux, я приму этот ответ.
Стремясь побудить больше ответов, я начну отвечать на свой собственный вопрос с тем, что я узнал.
Шаг 1 - каждый раз подключать виртуальный диск при загрузке. Для этого я создаю сценарий bash, а затем запись launchd для вызова сценария bash при загрузке.
Напишите 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
Затем вызовите его при загрузке, добавив его в launchd, создав файл /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. Эти три каталога в моей системе являются символическими ссылками на / private / tmp, / private / var / log и / private / var / tmp. Когда я изменил символические ссылки, чтобы они указывали на / Volumes / ramdisk / ..., система не загружалась. Я ожидаю, что это потому, что во время загрузки что-то хочет / tmp и / var / log ДО сценария my com.my.ramdisk монтирует виртуальный диск. Мне нужен способ монтирования виртуального диска сразу после монтирования root, прежде чем что-либо еще запустится.
Примечание. Если вы смонтируете / var / log (ядро, демон и другие важные журналы пользовательского пространства) во временном пространстве, вы потеряете его содержимое при следующей перезагрузке. Это может помешать вашей способности диагностировать.