Tôi đã vô hiệu hóa nhầm tất cả các dịch vụ trong Yosemite (10.10), bây giờ nó không thể khởi động


13

Tôi đã chạy

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

do nhầm lẫn, bây giờ máy Mac của tôi không khởi động ... Bạn có biết cách khắc phục điều đó không?

Phiên bản hệ điều hành: Yosemite.


Thx để chỉnh sửa, phiên bản là Yosemite
Vincebzh

Bạn có thể khởi động vào chế độ người dùng đơn (Cmd-S) hoặc chế độ An toàn (Shift) không?
Bob

Chỉ một người dùng, tôi đã cố gắng thực hiện sudo launchctl load -w /System/Library/LaunchDaemons/từ đó nhưng không được.
Vincebzh

Hừm. Được rồi, chúng tôi đã ở trên đầu của tôi :) Có thể xem bài viết này ?
Bob

Thx, đó là nó. Trên thực tế tôi đang cố gắng cài đặt lại hệ thống mà không xóa dữ liệu người dùng .... Nếu tôi tìm thấy một sửa chữa, tôi cũng sẽ đăng ở đó.
Vincebzh

Câu trả lời:


17

Lệnh sudo launchctl unload -w /System/Library/LaunchDaemons/sẽ buộc vô hiệu hóa tất cả các trình khởi chạy trong / Hệ thống / Thư viện / LaunchDaemons / và thêm các mục tương ứng trong một khuyết tật . Lệnh - được nhập vô tình - không ảnh hưởng đến trạng thái tải "không ràng buộc" của trình nền hệ thống nhưng ghi đè bất kỳ trạng thái hiện có nào (được tải / không tải). Xóa bỏ.plist sẽ khôi phục cấu hình hệ thống gần như mặc định - ngoại trừ các trình tiện ích hoặc tác nhân đã bị buộc ở một trong hai trạng thái trong cấu hình ban đầu của hệ thống hoặc sau khi cài đặt ứng dụng của bên thứ ba. Điều này có thể được cứu vãn bằng cách khôi phục tệp từ bản sao lưu hoặc - một phần - bằng cách sao chép tệp bị vô hiệu hóa từ một hệ thống tương tự.

Để khởi động lại hệ thống, bạn phải xóa tệp đặc biệt này trong Chế độ khôi phục.

  • Khởi động lại chế độ phục hồi
  • Mở Terminal trong menu tiện ích> Terminal
  • cd thành /Volume/NameOfMainSystemVolume/private/var/db/com.apple.xpc.launchd
    Thay thế NameOfMainSystemVolume bằng tên của âm lượng chính của bạn (ví dụ Macintosh \ HD)
  • liệt kê tất cả các tập tin với ls -la. Bạn sẽ nhận được một danh sách chứa ~ 20 tệp - tất cả đều liên quan đến ID người dùng - và một tệp lớn bị vô hiệu hóa.plist (~ 10-15 KB)
  • loại bỏ các tập tin với rm *.plist
  • Khởi động lại, chỉnh sửa /private/var/db/com.apple.xpc.launchd/disables.plist bằng sudo nano …và thay thế nội dung hiện có - có thể là một số tiêu đề plist xml cơ bản và một hoặc nhiều daemon, có thể đã được hệ thống thêm vào trong khi khởi động - theo nội dung sau:

    <?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.ManagedClientAgent.enrollagent</key>
        <true/>
        <key>com.apple.ftpd</key>
        <true/>
        <key>com.apple.rpmuxd</key>
        <false/>
        <key>com.apple.usbmuxd</key>
        <false/>
        <key>com.apple.mrt</key>
        <false/>
        <key>com.apple.stackshot</key>
        <false/>
        <key>org.ntp.ntpd</key>
        <false/>
        <key>com.apple.pacemaker</key>
        <true/>
    </dict>
    </plist>

    Đây phải là nội dung mặc định của tệp trong Yosemite. Nếu bạn đã cài đặt thêm ứng dụng của bên thứ 3, có thể nó đã chứa nhiều trình nền hơn trước đó. Ví dụ như tôi đã phải loại bỏ một Snitch nhỏ và một hệ thống liên quan daemon XQuartz để có được một bằng cách nào đó "mặc định" disabled.plist .


Thx rất nhiều, tôi thực sự đã xem tập tin đó ngay bây giờ. Nó hoạt động :)
Vincebzh

@Vincebzh Tôi sẽ thêm nội dung mặc định (nhiều hơn hoặc ít hơn) của tệp. Chỉ một giây
klanomath

@grgarside Re: chỉnh sửa của bạn. sudo launchctl unload -w /System/Library/LaunchDaemons/chỉ ghi vào vô hiệu hóa.plist chứ không ghi cho người khác (ví dụ liên quan đến người dùng. AFAIR Tôi đã thử nghiệm điều này với người dùng root và fseventer!
klanomath

Đó là những gì tôi nghĩ, nhưng OP của bản sao liên kết được yêu cầu khác: apple.stackexchange.com/questions/192878/...
GRG
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.