EDIT: Accetterò solo la mia risposta, poiché ha risolto una parte del problema per me. Se qualcuno pubblica qualcosa di più simile a --bind in Linux, accetterò quella risposta.
Nel tentativo di stimolare più risposte, inizierò a rispondere alla mia domanda con quello che ho scoperto.
Il passo 1 è far montare un ramdisk all'avvio ogni volta. Per fare ciò, creo uno script bash e quindi una voce launchd per chiamare lo script bash all'avvio.
Scrivi uno script bash come questo:
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
Quindi chiamalo all'avvio aggiungendolo a launchd creando un file chiamato /Library/LaunchDaemons/com.my.ramdisk.plist con i seguenti contenuti:
<?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>
Dove sono bloccato è un modo per collegare in modo simbolico o montare directory all'interno del ramdisk in / tmp, / var / log e / var / tmp. Queste tre directory sono tutte collegate simbolicamente sul mio sistema a / private / tmp, / private / var / log e / private / var / tmp. Quando ho cambiato i collegamenti simbolici per puntare in / Volumes / ramdisk / ..., il sistema non si avvia. Mi aspetto che ciò avvenga perché all'avvio, qualcosa vuole / tmp e / var / log PRIMA che lo script my com.my.ramdisk monti il ramdisk. Ho bisogno di un modo per montare il ramdisk subito dopo il montaggio di root, prima che tutto funzioni.
Nota Se si monta / var / log (kernel, demone e altri log di spazio utente critico) nello spazio temporaneo, al successivo riavvio si perderà il contenuto. Ciò potrebbe inibire la tua capacità di diagnosi.