卸载启动守护程序后还原Yosemite服务器


3

因此,在尝试修复损坏的打开目录时,我遇到了一个修复程序,据说可以输入此命令...

sudo launchctl unload -w /System/Library/LaunchDaemons/

org.openldap.slapd.plist

从格式上看,我认为这是两个单独的命令,但实际上它们是一个。可以想象,在我键入“第一个命令”后,Mac Mini服务器关闭并重新启动,但是加载栏在尝试引导时不会超过一半。

卸载所有启动守护程序后,有什么方法可以还原它们?任何和所有帮助表示赞赏。

Answers:


4

该命令sudo launchctl unload -w /System/Library/LaunchDaemons/通过在文件/var/db/com.apple.xpc.launchd/disabled.plist中添加带有启动守护进程名称并后跟true的键来禁用/ System / Library / LaunchDaemons /中驻留的所有启动守护进程。即使启动守护程序先前在文件中将条目设置为false(例如以下示例中的com.apple.emond),也将设置为true。disabled.plist会覆盖单个plist文件中的所有设置。/ System / Library / LaunchDaemons /中的单个启动守护程序plist文件不会更改。

发出上述命令之前的示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.AppleFileServer</key>
    <true/>
    <key>com.apple.hdiejectd</key>
    <false/>
    <key>com.apple.emond</key>
    <false/>

发出上述命令后的示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.AppleFileServer</key>
    <true/>
    <key>com.apple.afpfs_checkafp</key>
    <true/>
    <key>com.apple.AirPlayXPCHelper</key>
    <true/>
    <key>com.apple.applessdstatistics</key>
    <true/>
    <key>com.apple.auditd</key>
    <true/>
    ...
    <key>com.apple.emond</key>
    <true/>
    ...

因此,从本质上讲,您必须删除主卷上的/var/db/com.apple.xpc.launchd/disabled.plist或将其替换为备份副本:

  • 最好使用备份副本替换文件,因为对于某些启动守护程序,该文件可能已经具有一些非默认条目,这些条目被设置为true或false。
  • 如果您没有该文件的备份副本,请启动至恢复或Internet恢复模式
  • 开放终端
  • 如果尚未安装主卷,则将其挂载
  • 输入cd /Volumes/[Name_Of_Your_Main_Volume]/var/db/com.apple.xpc.launchd/以更改为您的主要音量
  • 输入pwd以确定您的工作目录
  • 用以下命令删除disabled.plist rm disabled.plist
  • 要重建(希望)标准disabled.plist,请在执行后使用nano或vi将以下内容写入或复制并粘贴到新文档中touch disabled.plist

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>com.apple.emond</key>
        <false/>
        <key>org.postfix.master</key>
        <true/>
        <key>com.apple.ftpd</key>
        <true/>
        <key>com.apple.usbmuxd</key>
        <false/>
        <key>com.apple.emlog</key>
        <false/>
        <key>com.apple.mrt</key>
        <false/>
        <key>com.apple.stackshot</key>
        <false/>
        <key>org.apache.httpd</key>
        <true/>
    </dict>
    </plist>
    

    在使用以下方法重新引导到主卷后,您也可以稍后执行此操作:

    sudo nano /var/db/com.apple.xpc.launchd/disabled.plist

    重新启动后,该文件应该已经自动重建(但是几乎是空的),您不必首先创建它。

  • 输入退出
  • 重新启动到您的主卷

这对我有用(明确地执行launchctl load -w /System/Library/LaunchDaemons/Graham提出的命令)。因此您的里程可能会有所不同,因为您早先执行了该命令。


1
谢谢回复。值得庆幸的是,我们已经能够从Timemachine备份服务器上进行还原,但我们忘记了设置它的时间,因此希望可以解决该问题。如果没有,我会给您一个答案
Niuyoi

1
@Niuyoi,我希望这是最近的备份...
klanomath 2015年

0

如果没有完整的系统备份,则可能需要USB驱动器来解决。

  1. 引导至恢复或互联网恢复
  2. 恢复时使用磁盘实用程序将USB / OS X安装准备分区到USB中。
  3. 使用恢复将OS X安装到USB
  4. 从USB引导,然后从主驱动器上备份文件,您不会丢失。
  5. 下载损坏的系统的OS安装程序,然后运行它以修复系统更改。

0

恢复系统

最好的选择是使用OS X的恢复系统

要从恢复中启动计算机,请重新启动Mac并在启动时按住Command+ R键:

OS X:关于OS X恢复

OS X Lion和更高版本包括OS X恢复。此功能包括重新安装OS X,修复磁盘甚至从Time Machine备份还原所需的所有工具。

另外,也可以使用单用户模式或目标磁盘模式。

单用户模式

尝试引导至单用户模式,如何以单用户或详细模式启动Mac

在单用户模式下,查找并删除指示launchd不加载这些作业的plist文件。

klanomath的答案包含有关编辑持久启动状态文件的说明/var/db/com.apple.xpc.launchd/disabled.plist

目标磁盘模式

另一个选择是使用“ 目标磁盘模式”访问Mac的文件。在这种模式下,您将能够找到并删除指示launchd不加载这些作业的plist文件。


嗨,格雷厄姆,我只是尝试了一下,当我执行命令时,屏幕变黑了,然后出现一条消息,提示“出现错误,您需要重新启动计算机,按任意键或等待”。它正在尝试再次启动,但是加载栏仍然没有过去一半
Niuyoi

我添加了有关OS X恢复系统的注释。另外,您可以尝试目标磁盘模式吗?–这将有效地将Mac变成外部驱动器。希望这可以帮助!
格雷厄姆·米尔恩

1
通过恢复在“损坏的系统”之上安装OSX是可行的一步解决方案。它旨在保留用户帐户和数据,但是我更喜欢两步过程,该过程允许备份,以防备份不最新。
bmike
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.