Para sistemas Linux no críticos, a menudo muevo cosas como / tmp y / var / log a tmpfs para guardar en alguna escritura en disco. He estado haciendo esto durante un año más o menos y si alguna vez necesito los registros a través de reinicios, simplemente comento una línea en / etc / fstab y luego empiezo a depurar.
En cualquier caso, me gustaría hacer lo mismo en OS X. He visto publicaciones sobre la creación de un disco RAM para OS X, pero estoy buscando una solución más permanente que funcione en cada arranque. Siempre quiero / tmp y / var / log montados en un disco RAM, con la capacidad de desactivarlo con un poco de edición de línea de comandos en vi si es necesario.
Respuestas:
Aquí hay un script para crear ramdisks en OS X. Lo sentimos, no responde a su pregunta. Podría usar esto para construir algo que se ejecute en el arranque y luego monte / tmp y / var / log.
De @salvatore http://pastie.textmate.org/pastes/1417478/text?key=igcxuzqqvlmlbavxooj2uw
fuente
EDITAR: Solo voy a aceptar mi propia respuesta, ya que resolvió una parte del problema para mí. Si alguien publica algo más como --bind en Linux, aceptaré esa respuesta.
En un esfuerzo por estimular más respuestas, comenzaré a responder mi propia pregunta con lo que he descubierto.
El primer paso es instalar un ramdisk en el arranque cada vez. Para hacer esto, creo un script bash y luego una entrada launchd para llamar al script bash en el arranque.
Escribe un script bash como este:
Luego, inícielo en el arranque agregándolo a launchd creando un archivo llamado /Library/LaunchDaemons/com.my.ramdisk.plist con el siguiente contenido:
Donde estoy atascado es una forma de crear enlaces simbólicos o montar directorios dentro del ramdisk en / tmp, / var / log y / var / tmp. Estos tres directorios están todos enlazados en mi sistema a / private / tmp, / private / var / log y / private / var / tmp. Cuando cambié los enlaces simbólicos para apuntar a / Volumes / ramdisk / ..., el sistema no se iniciará. Espero que esto se deba a que en el momento del arranque, algo quiere / tmp y / var / log ANTES de que el script my com.my.ramdisk monte el ramdisk. Necesito una forma de montar el ramdisk justo después de que se monte la raíz, antes de que se ejecute cualquier otra cosa.
Nota Si monta / var / log (kernel, daemon y otros registros críticos de espacio de usuario) en espacio temporal, perderá su contenido en el próximo reinicio. Esto podría inhibir su capacidad de diagnosticar.
fuente
hdik -drivekey system-image=yes -nomount ram://262144
para crear un disco RAM de 128 MB, luegonewfs_hfs
formatearlo y luego usarmount -o union,nobrowse,noatime
para montar el volumen/tmp
. De esta manera, los archivos existentes/tmp
quedan intactos, pero los archivos nuevos van a su disco RAM.tmpfs
que usará el intercambio si es necesario, un disco RAM no lo hará, por lo que perderá una porción de RAM activa, esto significa que querrá mantenerlo pequeño, sin embargo, algunas tareas/tmp
pueden requerir más memoria y fallarán, así que tenga cuidado con lo que ejecuta en caso de que necesite más espacio del que asigna.