Para sistemas Linux não críticos, geralmente movo coisas como / tmp e / var / log para tmpfs para economizar em alguma gravação de disco. Eu venho fazendo isso há um ano ou mais e, se algum dia precisar dos logs nas reinicializações, apenas comente uma linha no / etc / fstab e inicio a depuração.
De qualquer forma, eu gostaria de fazer a mesma coisa no OS X. Vi posts sobre a criação de um ramdisk para o OS X, mas estou procurando uma solução mais permanente que funcione em cada inicialização. Eu sempre quero / tmp e / var / log montados em um ramdisk, com a capacidade de desativar isso com um pouco de edição de linha de comando no vi, se for necessário.
Respostas:
Aqui está um script para criar ramdisks no OS X. Desculpe, mas não responde à sua pergunta. Você pode usar isso para criar algo que é executado na inicialização e depois monta / tmp e / var / log.
De @salvatore http://pastie.textmate.org/pastes/1417478/text?key=igcxuzqqvlmlbavxooj2uw
fonte
Edição: Eu só vou aceitar a minha própria resposta, pois resolveu uma parte do problema para mim. Se alguém postar algo mais parecido com --bind no Linux, eu aceitarei essa resposta.
Em um esforço para estimular mais respostas, começarei a responder minha própria pergunta com o que descobri.
O passo 1 é montar um ramdisk na inicialização sempre. Para fazer isso, crio um script bash e, em seguida, uma entrada launchd para chamar o script bash na inicialização.
Escreva um script bash como este:
Em seguida, chame-o na inicialização, adicionando-o ao launchd, criando um arquivo chamado /Library/LaunchDaemons/com.my.ramdisk.plist com o seguinte conteúdo:
Onde estou preso é uma maneira de vincular ou montar diretórios dentro do ramdisk em / tmp, / var / log e / var / tmp. Esses três diretórios estão todos vinculados no meu sistema a / private / tmp, / private / var / log e / private / var / tmp. Quando alterei os links simbólicos para apontar para / Volumes / ramdisk / ..., o sistema não inicializa. Espero que isso aconteça porque, no momento da inicialização, algo quer / tmp e / var / log ANTES do script my com.my.ramdisk montar o ramdisk. Eu preciso de uma maneira de montar o ramdisk logo após a montagem do root, antes que qualquer outra coisa seja executada.
Nota Se você montar / var / log (kernel, daemon e outros logs críticos do espaço do usuário) no espaço temporário, perderá seu conteúdo na próxima reinicialização. Isso pode inibir sua capacidade de diagnosticar.
fonte
hdik -drivekey system-image=yes -nomount ram://262144
criar um disco ram de 128 MB,newfs_hfs
formatá-lo e usarmount -o union,nobrowse,noatime
para montar o volume/tmp
. Dessa forma, os arquivos existentes/tmp
são intocados, mas os novos arquivos vão para o seu disco ram.tmpfs
que usará swap, se necessário, um disco de RAM não, então você perderá um pouco da RAM ativa; isso significa que você deve mantê-lo pequeno; no entanto, algumas tarefas/tmp
podem exigir mais memória e falharão; cuidado com o que você executa, caso precise de mais espaço do que você aloca.