Accidentalmente scaricato tutti i daemon di launchctl e ora non è possibile avviare [duplicato]

3

Durante il tentativo di configurare alcuni servizi (OS X 10.10 Yosemite), ho accidentalmente fatto un sudo launchctl unload -w /System/Library/LaunchDaemons/ e lo schermo è stato congelato immediatamente. Ora il mio Mac non si avvia più. La barra di caricamento è piena a metà e non succede nulla.

C'è un modo per ripristinare i daemon con una sorta di console di soccorso? Purtroppo, non ho un backup della macchina dell'orario di lavoro, il mio disco rigido esterno si è bloccato alcuni giorni fa.

Posso ancora avviare la modalità di ripristino, utilizzando Cmd + R durante l'avvio. Posso anche accedere al terminale. Ho provato un launchctl load -w /System/Library/LaunchDaemons/ , ma ha detto "Operazione già in corso" per ogni processo.

Durante il tentativo di caricare i file LaunchDaemon, ero nella partizione di ripristino. Dopo aver passato a /Volumes/Macintosh HD/System/Library/LaunchDaemons/ e fatto un launchctl load -w /Volumes/Macintosh HD/System/Library/LaunchDaemons/ , ho ricevuto alcuni errori con File already exists , ma alcuni altri Daemon sembrano caricare.

Ma sospetto che siano stati caricati nel sistema di salvataggio. Così ho anche provato a usare il file launchctl di /Volumes/Macintosh HD/bin/launchctl . Ma sfortunatamente, lo stesso risultato, lo schermo si blocca con una mezza barra di avanzamento durante l'avvio.

Ho dato un'occhiata all'avvio dettagliato (premendo Cmd + V all'avvio). Le ultime righe, dove tutto si ferma sono

hfs: mounted Macintosh HD on device root_device
XCPM: registered
VM Swap Subsystem is ON
Darwin Bootstrapper Version 2.0.2: Mon Mar....
boot-args = -v
** /dev/rdisk1 (NO WRITE)
** Root file system
   Executing fsck_hfs (versoin hfs-285)
Warning: couldn't block sleep during cache update
Warning: proceeding w/o DiskArb
/dev/disk1 on / (hfs, local, journaled)
BootCacheControl: Unable to open /var/db/BootCache.playlist: 2 No such file or directory
Bash: /etc/rc.server: No such file or directory
USBMSC Identifier (non-unique): 0000000...
bash: /etc/rc.installer_cleanup: No such file or directory
AppleUSBMiltitouchDriver::checkStatus - received Status Packet, Payload 2: device was reinitialized

Ho anche provato a reinstallare Yosemite sul mio vecchio sistema (senza cancellare il filesystem, quindi i miei dati sono ancora lì). Sfortunatamente, il problema rimane lo stesso.

Ora posso accedere in modalità utente singolo (ho dovuto premere un altro Invio). Successivamente, ho impostato il filesystem in modo che leggesse con mount -uw / . Quindi carico tutti i daemon con launchctl load -w /System/Library/LaunchDaemons . E poi sorpresa carica la schermata di accesso del mio Mac e posso accedere.

Ma quando provo a riavviare, devo ripetere quel passaggio per accedere (che è un po 'fastidioso ...). Ho anche provato a caricare tutti i daemon con launchctl load -w /System/Library/LaunchDaemons quando ho effettuato l'accesso.

Qui compare "Operazione già in corso". Ho letto qualcosa nella modalità utente singolo che il caricamento dei servizi non è supportato. Questo influisce anche sull'OS X completamente caricato? Non sono sicuro se sono ancora in modalità utente singolo o no. Come posso dire a OS X di caricare tutti i LaunchDaemons all'avvio?

    
posta 23tux 24.06.2015 - 11:54
fonte

1 risposta

3

per una correzione persistente puoi accedere alla modalità utente singolo, quindi mount -uw / , e quindi eliminare il database di override di launchctl. Non sono sicuro per Yosemite, ma su Sierra sarebbe rm /var/db/com.apple.xpc.launchd/*.plist . dopo di ciò puoi uscire o riavviare. questo non è come un maglio come sembra. il sistema riabilita alcuni dei suoi override (da vari altri file di configurazione credo) e così si ottiene in effetti un db di override bello e fresco senza masse di "disabled: false".

    
risposta data 13.12.2016 - 09:49
fonte

Leggi altre domande sui tag