No Mac OS X, como desabilitar o registro no desligamento e reativá-lo na inicialização?

2

Por quê: Eu quero compartilhar uma partição home com o Ubuntu, mas eu não quero desistir do journaling enquanto inicializado no Mac OS X (Snow Leopard) se eu não precisar.

O que eu descobri:

Os comandos que eu quero são

diskutil disableJournal /Users

e

diskutil enableJournal /Users

(O volume está montado em /Users )

rc.local e rc.local.shutdown pareciam promissores no começo, mas acho que há uma dependência que os exclui.

Eu tentei criar um StartupItem , mas ele não estava em execução.

O que estou procurando:

O que é uma explicação de como criar um StartupItem especificamente para isso? Eu tenho a essência disso, mas estou sentindo falta de algumas sutilezas.

O que é uma explicação de por que um StartupItem é o caminho errado a seguir e um curso de ação sugerido?

Existe uma solução fácil e óbvia, ou todo este esforço é inútil? Qual é a explicação?

    
por Alex R 18.12.2010 / 10:54

1 resposta

2

Em primeiro lugar, em que versão do OS X você está?

Segundo, apenas um esclarecimento: Eu suponho que o motivo pelo qual você precisa desabilitar o registro no diário é que o Ubuntu não suporta leitura e / ou gravação em volumes HFS + Journaled?

Ou, espere, o que no mundo ....

diskutil disableJournal usa um caminho para um volume, não para uma pasta arbitrária.

Portanto, se a sua pasta pessoal estiver localizada na unidade raiz, em / Users /, você faria algo como

diskutil disableJournal /

Ou você tem um volume chamado Usuários? Em caso afirmativo, você usaria:

diskutil disableJournal /Volumes/Users

Ok, os métodos rc e StartupItem foram preteridos por algum tempo. Ambos foram basicamente substituídos por launchd , que assumiu o lugar de init (acho que, de qualquer maneira, você notará que launchd é PID 1).

Embora eu pense que StartupItems ainda são compatíveis com o 10.6, o rc é oficialmente não suportado, pois man rc declara:

rc.local is now unsupported and has been replaced with launchd(8), which bootstraps itself via the launchctl(1) bootstrap subcommand to read in launchd(8) jobs from the standard locations.

Você pode verificar o seguinte para arquivos de definição LaunchAgent e LaunchDaemon:

 ~/Library/LaunchAgents         Per-user agents provided by the user.
 /Library/LaunchAgents          Per-user agents provided by the adminis-
                                trator.
 /Library/LaunchDaemons         System-wide daemons provided by the admin-
                                istrator.
 /System/Library/LaunchAgents   Per-user agents provided by Mac OS X.
 /System/Library/LaunchDaemons  System-wide daemons provided by Mac OS X.
    
por 18.12.2010 / 11:32