Obtendo o comando diskutil para funcionar no modo de usuário único do OSX Mavericks

4

Atualmente, estou escrevendo alguns scripts de manutenção no modo de usuário único. Meu objetivo atual é conseguir executar reparos de permissão e formatação de disco usando o comando diskutil no modo de usuário único. Realizar essa tarefa em versões anteriores do OS X era uma simples questão de montar a partição raiz e ativar os seguintes daemons de ativação:

com.apple.diskmanagementd

com.apple.diskarbitrationd

Depois disso, só precisei executar o seguinte comando para reparar com êxito as permissões:

diskutil repairpermissions /

Em Mavericks, no entanto, esse comando não funciona mais e não consigo entender por quê. A execução do comando diskutil (mesmo sem parâmetros) retorna uma mensagem simples e inútil:

Killed: 9

Eu não consigo descobrir o que está acontecendo aqui. Além dos daemons de arbitragem de disco exigidos pelo diskutil, meu script de manutenção também carrega os seguintes daemons:

com.apple.notifyd

com.apple.syslogd

com.apple.configd

com.apple.kuncd

com.apple.kextd

com.apple.KernelEventAgent

com.apple.distnoted.xpc.daemon

com.apple.aslmanager

com.apple.opendirectoryd

com.apple.coreservicesd

com.apple.securityd

com.apple.fseventsd

com.apple.cfprefsd.xpc.daemon

Eu recebo a mesma resposta se eu carregar todos os daemons acima ou apenas os dois que eram necessários anteriormente para o diskutil funcionar. Se eu escolher inicializar a partir do modo de usuário único (carregando todo o conteúdo de / System / Library / LaunchDaemons), poderei usar o diskutil depois que o computador tiver concluído o processo de inicialização.

Alguém mais experiente sobre o funcionamento interno do Mac OS pode determinar o que está faltando?

    
por Alex Plumb 07.01.2014 / 21:14

2 respostas

5

Não sei ao certo o que está causando o problema, mas ele não parece ser um daemon ausente. Tentei carregar tudo em /System/Library/LaunchDaemons exceto com.apple.WindowServer.plist e ele ainda falhou da mesma maneira. Ele ainda falha apenas em executar diskutil , que normalmente apenas imprime um resumo de uso. Além disso, "Killed: 9" sugere que ele não está travando a si mesmo, mas outra coisa ( launchd ?) Está acabando com ele.

De qualquer forma, há uma boa notícia: diskutil repairpermissions é realmente apenas um front-end para o programa repair_packages , e parece funcionar bem no modo de usuário único (mesmo sem nenhum daemon carregado):

/usr/libexec/repair_packages --repair --standard-pkgs

A formatação de discos provavelmente será mais difícil. Talvez seja necessário analisar usando gpt , newfs_hfs e afins.

    
por 11.01.2014 / 02:46
-1

el capitan agora está protegendo permissões, mesmo com seu / usr / libexec / repair_packages --repair --standard-pkgs (obrigado por ele) não é mais possível reparar permissões - os sistemas de arquivos para reparo são somente para leitura - qualquer dica? Atenciosamente e obrigado Martin

    
por 31.10.2015 / 17:28