EDIT: Я просто прийму власну відповідь, оскільки це вирішило одну частину проблеми для мене. Якщо хтось розмістить щось на кшталт --bind в Linux, я прийму цю відповідь.
Прагнучи підштовхнути більше відповідей, я почну відповідати на власне запитання з того, що з’ясував.
Крок 1 - отримувати рамковий диск, встановлений під час завантаження. Для цього я створюю скрипт bash, а потім запущений запис, щоб викликати скрипт 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
Потім закликайте його до завантаження, додавши його до запуску, створивши файл під назвою /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>
Там, де я застряг - це спосіб посилання або встановлення каталогів всередині ramdisk в / tmp, / var / log та / var / tmp. Ці три каталоги в моїй системі посилаються на / private / tmp, / private / var / log та / private / var / tmp. Коли я змінив посилання на вказівку на / Volumes / ramdisk / ..., система не завантажиться. Я думаю, це тому, що під час завантаження щось хоче / tmp та / var / log перед тим, як мій скрипт com.my.ramdisk монтує ramdisk. Мені потрібен спосіб встановити ramdisk відразу після встановлення root, перш ніж все інше запуститься.
Примітка Якщо ви змонтуєте / var / log (ядро, демон та інші журнали критичного простору користувача) у тимчасовому просторі, ви втратите його вміст у наступному перезавантаженні. Це може гальмувати вашу здатність до діагностики.