Отключить защиту целостности системы в OS X, работающей на VMware

У меня есть экземпляр OS X El Capitan, работающий на VMWare Workstation 10. Мне нужно внести изменения /Systemи, следовательно, отключить защиту целостности системы. Как получить доступ к режиму восстановления на этой виртуальной машине, чтобы отключить SIP?

Вы можете взглянуть на этот вопрос: apple.stackexchange.com/questions/208478/…
Можете ли вы загрузиться в режиме восстановления на экземпляре VMWare? Можете ли вы смонтировать экземпляр VMWare как внешний диск и внести соответствующие изменения?
@GrahamMiln Я пытался загрузиться в режиме восстановления, удерживая нажатой клавишу Super + R во время запуска виртуальных машин, но он загружается нормально.
VMware не поддерживает виртуализацию OS X в VMware Workstation, и тем самым вы нарушаете Apple SLA для OS X!

Ответы (8)

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

Фон

Моя среда

Хозяин

  • Windows 10
  • VMWare Workstation 12 (исправлена ​​для запуска macOS)

Гость

  • macOS Высокая Сьерра 10.13.4

Первоначально я пытался добавить macosguest.forceRecoveryModeInstall = "TRUE"в свой .vmxconfig. Это позволило мне загрузиться в режим восстановления и отключить SIP, но тогда я не смог нормально загрузить виртуальную машину даже после удаления этой строки.

Решение этой проблемы, которое я нашел, состояло в том, чтобы просто удалить .nvramфайл. К сожалению, именно здесь хранится флаг отключения SIP, поэтому, когда моя виртуальная машина снова заработала, SIP снова был включен.

Мое решение

  1. В Терминале выполните следующие команды (спасибо G5tube за это предложение)

     sudo nvram "recovery-boot-mode=unused"
     sudo reboot recovery
    

    Вторая команда мгновенно перезагрузит ваш Mac, поэтому лучше сначала сохранить незавершенную работу.

  2. После перезагрузки Mac в систему Recovery / Installer (возможно, вам придется сначала выбрать язык): В строке меню нажмите Utilities>Terminal

  3. Запустите csrutil disableиз терминала, а затемreboot

  4. После того, как ваша виртуальная машина перезагрузится в обычном режиме, вы можете убедиться, что SIP отключен, открыв терминал и запустивcsrutil status

Чтобы снова включить SIP, выполните те же действия, что и выше, но csrutil enableвместо этого запустите на терминале восстановления.

Я пытаюсь следовать вашему обходному пути с Mojave на Vmware Workstation 14 в Windows 7, но не нашел fs2: \ есть ли что-то еще?
наконец, это сработало как волшебство с вашим способом, часами зависая на этом материале.
подтвердите, что это работает в esxi 6.7/high sierra
Удерживайте Alt, чтобы загрузиться в диспетчер загрузки VMWare, нет необходимости добавлять какую-либо задержку
Кстати, как вы выяснили, что делать в оболочке диспетчера загрузки VMWare? Я испробовал множество команд для вывода списка дисков или файловых систем, единственное, что сработало, — это ввести текст, fs2:а затем нажать вкладку.

У VMware есть ответ на этот вопрос. См. Использование среды восстановления (Recovery HD) на виртуальной машине OS X :

  1. Включите виртуальную машину.
  2. Быстро в пустом черном окне или на заставке VMware щелкните внутри окна виртуальной машины, чтобы указатель мыши исчез. Теперь ваши нажатия клавиш попадут в виртуальную машину.
  3. Быстро, до появления логотипа Apple, одновременно нажмите и удерживайте Command ⌘клавишу и Rклавишу.
  4. Как только вы увидите логотип Apple, отпустите клавиши.

Если вы достаточно быстро выполнили шаги с 1 по 3, виртуальная машина загрузится в среду восстановления.

Итак, я попробовал ваше решение (хотя и заменил клавишу Command на клавишу Windows/Super), и оно не сработало. Я также пытался установить rootless=1в качестве загрузчика в NVRAM, но я думаю, что Apple убрала это с помощью семени GM 10.11. Можно ли взять виртуальный диск с рабочей станции VMWare и добавить его к виртуальной машине на VMWare Fusion и сделать это оттуда?
Вероятно, это связано с тем, что клавиши Super и Command не совсем одно и то же. Ключевые карты, вероятно, разные. Как указывалось ранее, лицензия OS X позволяет запускать виртуальные экземпляры только с хоста Mac.

Этот вариант действителен для vCenter, не уверен насчет Workstation.

У вас может быть машина, которая загружается очень быстро и не может вовремя нажимать клавиши.

Нажмите на виртуальную машину и выберите вкладку «Сводка», а затем в разделе «Оборудование виртуальной машины» -> «Изменить настройки»: «Параметры виртуальной машины»: «Параметры загрузки»: «Задержка загрузки» Введите 5000 в миллисекундах (5 секунд).

Восстановите настройки, когда закончите, чтобы избежать ненужной задержки загрузки в будущем.

Хороший ответ, но вы упускаете половину вопроса: как отключить IP.

Я понял намек из комментария в этом сообщении в блоге и понял, что отключить SIP в гостевой виртуальной машине на самом деле просто.

  1. На экране загрузки VMWare нажмите F12, чтобы войти в настройку BIOS.
  2. Выберите «Диспетчер обслуживания загрузки» > «Загрузка из файла».
  3. Выберите Recovery HD и выберите правильный efi
  4. После загрузки в режиме восстановления запустите Терминал
  5. Выполнятьcsrutil disable

Что сработало для меня:

  1. Подключите ISO-образ Monterey, который я использовал для установки Monterey на виртуальную машину.
  2. Загрузитесь в прошивку.
  3. Загрузитесь, используя образ ISO, который привел меня к экрану восстановления/установки.
  4. Запускаем в Терминал и запускаем csrutil disable.
  5. Перезапуск.

Простое решение — щелкнуть загрузку в центре окна vmware, затем удерживать клавишу Windows + R в течение нескольких секунд, и появится логотип Apple, а через несколько секунд — режим восстановления. Когда закончите, перезапустите OS X.

Я смог заставить это работать на моей установке Windows VMware после многих попыток. (И да, я знаю, что я не должен этого делать, но я также не должен ездить со скоростью более 55 миль в час). Оглядываясь назад, я могу сказать, что мои ошибки заключались либо в том, что я не использовал правильную комбинацию клавиш, либо в том, что не удерживал ее достаточно долго.

Мне пришлось отредактировать файл конфигурации виртуальной машины (.vmx, в папке виртуальной машины), чтобы добавить 5-секундную задержку. Тогда правильной комбинацией клавиш на клавиатуре Windows была Windows-R, и мне пришлось нажать ее один раз и удерживать в течение 10 секунд или около того, пока не появится логотип Apple. Затем он прошел через то, что казалось нормальной последовательностью загрузки, но в конце перевел меня в режим восстановления, где я мог открыть окно терминала и ввести

csrutil disable

Наконец, именно то, что мне нужно, чтобы вернуть разрешение экрана!

Пожалуйста, укажите, по крайней мере, установленные законом шины, чтобы соответствовать ehhm нет, точные строки, которые нужно добавить в vmx, если вы едете со скоростью более 55 миль в час.
Ну, я подобрался довольно близко. Я попал на экран «Утилиты macOS», затем «Утилиты», а затем «Терминал». Но я не могу ничего напечатать в окне терминала. Курсор мыши изменяется на маленький знак плюса, и щелчок в окне клиента терминала не приводит к смещению фокуса на терминал (а если и смещается, то просто игнорирует нажатия клавиш). Хмммм.....???

VMware Workstation 12 в Windows 10.

Шаги работают. Он загрузится в окно, которое позволит вам переустановить ОС, дисковые утилиты и два других параметра (я не помню).

Затем выше вы увидите «Окно», щелкните его, и вы увидите раскрывающийся список, разрешающий доступ к терминалу.

затем введите:

csrutil disable

Перезапустите виртуальную машину.

Не могли бы вы рассказать подробнее? Честно говоря, я ничего не понял из того, что вы написали...