4

В настоящее время я пишу некоторые сценарии обслуживания однопользовательского режима. Моя текущая цель - иметь возможность выполнять восстановление прав доступа и форматирование диска с помощью команды diskutil в однопользовательском режиме. Выполнение этой задачи в предыдущих версиях OS X было простым вопросом монтирования корневого раздела и запуска следующих демонов запуска:

com.apple.diskmanagementd

com.apple.diskarbitrationd

После этого мне только нужно было выполнить следующую команду, чтобы успешно восстановить разрешения:

diskutil repairpermissions /

Однако в Mavericks эта команда больше не работает, и я не могу понять, почему. Выполнение команды diskutil (даже без параметров) возвращает простое и бесполезное сообщение:

Killed: 9

Я не могу понять, что здесь происходит. В дополнение к демонам арбитража диска, которые требуются diskutil, мой скрипт обслуживания также загружает следующие демоны:

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

Я получаю один и тот же ответ, загружаю ли я все вышеперечисленные демоны или только те два, которые ранее требовались для работы diskutil. Если я выберу загрузку из однопользовательского режима (загрузив все содержимое /System /Library /LaunchDaemons), я смогу использовать diskutil после того, как компьютер завершит процесс загрузки.

Может ли кто-то более осведомленный о внутренней работе Mac OS определить, чего не хватает?

2 ответа2

5

Я не уверен, что является причиной проблемы, но, похоже, это не пропавший демон - я попытался загрузить все в /System/Library/LaunchDaemons кроме com.apple.WindowServer.plist , и он все равно не удался. Он даже не запускается при запуске diskutil , который обычно просто печатает сводку об использовании. Кроме того, «Killed: 9» предполагает, что это не сам сбой, а что-то еще (launchd?) убивает это.

В любом случае, есть несколько хороших новостей: diskutil repairpermissions на самом деле является лишь внешним интерфейсом для программы repair_packages , и, похоже, он отлично работает в однопользовательском режиме (даже без загруженных демонов):

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

Форматирование дисков, вероятно, будет более сложным. Возможно, вам придется посмотреть на использование gpt , newfs_hfs и тому подобное.

-1

el capitan теперь защищает разрешения, даже с вашими /usr /libexec /repair_packages --repair --standard-pkgs (спасибо за это) восстановить возможности более невозможно - файловые системы, подлежащие восстановлению, доступны только для чтения - есть подсказка? С наилучшими пожеланиями и благодарностью Мартин

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .