В настоящее время я пишу некоторые сценарии обслуживания однопользовательского режима. Моя текущая цель - иметь возможность выполнять восстановление прав доступа и форматирование диска с помощью команды 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 определить, чего не хватает?