EDIT: Ich werde nur meine eigene Antwort akzeptieren, da sie einen Teil des Problems für mich gelöst hat. Wenn jemand etwas wie --bind in Linux veröffentlicht, akzeptiere ich diese Antwort.
Um mehr Antworten zu geben, werde ich anfangen, meine eigene Frage mit dem zu beantworten, was ich herausgefunden habe.
Schritt 1 ist, jedes Mal eine RAM-Disk beim Booten zu laden. Dazu erstelle ich ein Bash-Skript und dann einen Starteintrag, um das Bash-Skript beim Booten aufzurufen.
Schreiben Sie ein Bash-Skript wie folgt:
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
Dann rufen Sie es beim Booten auf, indem Sie es zum Starten hinzufügen, indem Sie eine Datei mit dem Namen /Library/LaunchDaemons/com.my.ramdisk.plist mit folgendem Inhalt erstellen:
<?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>
Wo ich stecke, ist eine Möglichkeit, Verzeichnisse innerhalb der Ramdisk unter / tmp, / var / log und / var / tmp zu verknüpfen. Diese drei Verzeichnisse sind auf meinem System alle mit / private / tmp, / private / var / log und / private / var / tmp verknüpft. Wenn ich die Symlinks so geändert habe, dass sie auf / Volumes / ramdisk / ... zeigen, startet das System nicht. Ich gehe davon aus, dass dies zum Zeitpunkt des Bootens etwas / tmp und / var / log ist, BEVOR das Skript com.my.ramdisk die Ramdisk einbindet. Ich brauche eine Möglichkeit, die Ramdisk direkt nach dem Einhängen von root einzuhängen, bevor irgendetwas anderes ausgeführt wird.
Hinweis Wenn Sie / var / log (Kernel, Daemon und andere wichtige Protokolle des Benutzerbereichs) im temporären Speicherbereich bereitstellen, gehen beim nächsten Neustart dessen Inhalte verloren. Dies kann Ihre Diagnosefähigkeit beeinträchtigen.