У меня установлен Big Sur на виртуальной машине VMware Fusion Player. Я хочу отключить SIP. С реальным физическим Mac обычный метод будет включать в себя сначала загрузку внутреннего восстановления macOS, а затем ввод команды, приведенной ниже, в окне терминала.
csrutil disable
Однако загрузка во внутреннее восстановление macOS не представляется возможной. Удержание комбинации клавиш ⌘+ Rпри запуске не работает. Диспетчер запуска Mac не существует. Я могу перезагрузиться на прошивку, но Recovery
нет тома, boot.efi
с которого можно выбрать загрузку.
Я понимаю, что настройка SIP хранится в 4-байтовой переменной NVRAM, указанной ниже.
7C436110-AB2A-4BBB-A880-FE41995C9F82:csr-active-config
Микропрограмма позволяет загружать встроенную оболочку EFI 1.0. Однако в этой оболочке нет команд, которые могут изменить эту переменную. На самом деле переменной в настоящее время даже не существует в NVRAM виртуальной машины. Я попытался ввести команду ниже в окне терминала macOS.
sudo nvram csr-active-config=%7f%00%00%00
В результате появилось сообщение об ошибке, приведенное ниже.
nvram: Error setting variable - 'csr-active-config': (iokit/common) not permitted
Какие процедуры можно использовать для отключения SIP?
Я использую текущую бесплатную версию VMware Fusion Player (версия 12.1.0).
Статистика хоста | Статистика гостей |
---|---|
iMac (21,5 дюйма, конец 2013 г.) | Мак |
macOS Каталина версии 10.15.7 | macOS Big Sur версии 11.6.1 |
Память: 16 ГБ | Память: 4 ГБ |
Четырехъядерный Intel Core i5 | 2 ядра процессора |
2,9 ГГц | 2,76 ГГц |
USB 3 (5 Гбит/с) Твердотельный накопитель Samsung T7 | Жесткий диск SATA |
Ниже приведены ссылки на сайты с процедурами, которые либо мне не удалось заставить работать, либо работают только с предыдущими версиями macOS.
Могу ли я инициировать перезагрузку MacOS в режиме восстановления исключительно из командной строки?
как отключить SIP (защита целостности системы) в vmware fusion 12 для macOS big sur?
Выполните следующие действия, чтобы отключить защиту целостности системы (SIP).
Начните с загрузки macOS Big Sur и открытия окна приложения «Терминал». Затем введите команду, указанную ниже. Это создаст переменную NVRAM с желаемым значением, но с ошибкой в имени переменной. Эта опечатка будет исправлена позже.
sudo nvram Asr-active-config=%7f%00%00%00
Выключите macOS. В Setting
окне виртуальной машины выберите Startup Disk
. Удерживая optionклавишу, выберите Restart to Firmware…
кнопку, как показано ниже.
Выберите EFI Internal Shell
, как показано ниже.
При желании введите команду ниже, чтобы полностью использовать окно.
mode 128 40
Установите текущую файловую систему на том EFI. Это должна быть отображаемая fs0
файловая система, поэтому вы должны ввести следующее
fs0:
Затем проверьте метку, EFI
введя команду ниже.
vol
Если не прав, то попробуй fs1:
, fs2:
, fs3:
, ....
Введите команду ниже, чтобы сохранить Asr-active-config
переменную в файл csr.bin
.
dmpstore Asr-active-config -s csr.bin
Примечание. Для получения дополнительной информации об этой команде введите
help -b dmpstore
.
Затем введите команду ниже, чтобы отредактировать csr.bin
файл. Вам нужно будет исправить написание, заменив букву A
на букву c
. Это можно сделать, набрав 63
над 41
в первой строке.
hexedit csr.bin
Исправленный файл будет выглядеть так, как показано ниже. Когда закончите, сохраните изменения и выйдите.
Примечание. Значение переменной хранится в последних 4 байтах этого файла.
Введите команду ниже, чтобы создать csr-active-config
переменную в NVRAM.
dmpstore -l csr.bin
SIP теперь будет отключен при следующей загрузке Big Sur. При желании введите команду ниже, чтобы удалить Asr-active-config
переменную из NVRAM.
dmpstore -d Asr-active-config
Введите команду ниже, чтобы выйти из командной оболочки.
exit
В меню Boot Manager
выберите Mac OS X
для загрузки Big Sur.
csr.bin
файлаСмещение в шестнадцатеричном формате | Размер в десятичном формате | Описание |
---|---|---|
00-03 | 4 | Длина имени переменной |
04-27 | 36 | Имя переменной хранится в виде строки UTF-16LE с нулевым завершением |
28-37 | 16 | GUID переменной |
38-3Б | 4 | Атрибуты хранятся в виде 4-байтового целого числа (см. ниже) |
3С-3Ф | 4 | Длина данных |
40-43 | 4 | 4-байтовое целое число, содержащее данные |
Атрибут | Ценить | Описание |
---|---|---|
НВ | 1 | Энергонезависимый |
БС | 2 | Доступ к службе загрузки |
РТ | 4 | Доступ во время выполнения |
HR | 8 | Запись аппаратной ошибки |
sudo nvram Asr-active-config=%7f%00%00%00
-нибудь делает?setvar
команда, которая может изменять переменные NVRAM, используемые macOS. В настоящее время Fusion Player имеет встроенную оболочку EFI (v1.0). В этой оболочке есть set
команда, которая может изменять только переменные среды. Нет setvar
команды. Кстати, VirtualBox имеет встроенную оболочку UEFI (v2.2).sudo nvram Asr-active-config=%7f%00%00%00
команда создает переменную с именем с ошибкой. Это было необходимо, потому что nvram
командование Биг-Сура не примет это csr-active-config
имя. Эта опечатка будет исправлена после вызова встроенной оболочки EFI.Хотя этот ответ действительно предоставляет метод отключения SIP, я считаю этот метод слишком сложным, если единственная цель — отключить SIP. Кроме того, время, необходимое для загрузки, больше, чем загрузка в оболочке EFI или UEFI. Однако, если есть другие задачи, которые также необходимо выполнить из среды восстановления macOS, этот метод может быть предпочтительнее более простых методов.
На реальном Mac SIP можно отключить, введя команду csrutil disable
в окне терминала при загрузке с установщика macOS с флэш-накопителя USB. У Apple есть веб-сайт с инструкциями по созданию этого установщика macOS на USB-накопителе. VMware Fusion Player не предлагает виртуальные USB-накопители. Однако можно заменить виртуальный второй внутренний диск. Шаги, необходимые для создания этого виртуального диска, приведены ниже.
Примечание. Для лучшего просмотра изображений щелкните изображение или откройте его в новом окне.
Получите приложение-установщик: еслиInstall macOS Big Sur
приложение еще не существует вApplications
папке на хосте, загрузите приложение или перенесите копию с другого Mac. В этом ответе предполагается, что версия macOS — 11.6.1.
Создайте образ установочного диска: на хосте откройте Дисковую утилиту. В строке меню Дисковой утилиты выберитеFile
>New Image
>Blank Image…
. Во всплывающем окне выберите следующее, затем выберитеSave
кнопку.
После успешного завершения операции создания образа диска нажмите кнопку Done
. Затем откройте окно приложения «Терминал» на хосте и введите команду ниже.
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
Когда вы закончите создание Install macOS Big Sur
тома, используйте Дисковую утилиту, чтобы извлечь все образы дисков. Закройте приложения «Дисковая утилита» и «Терминал».
Настройте общий доступ: при выключенном клиенте откройтеSharing
панельSettings
для клиента. Снимите флажок с меткойEnable Shared Folders
и добавьте своюDesktop
папку, как показано ниже.
Создайте новый внутренний жесткий диск: когда клиент все еще выключен, добавьте новый жесткий диск. Используйте настройки, показанные ниже.
Отделите новый жесткий диск от клиента: это необязательный шаг, который полезен, если вы хотите поделиться новым жестким диском с другими виртуальными машинами.
Примечание. Этот общий доступ предполагает, что только один клиент одновременно использует этот диск. В противном случае этот диск должен быть смонтирован только для чтения. (Это может быть возможно путем редактирования
/etc/fstab
файла.
Сначала удалите новый жесткий диск из клиента. Когда появится всплывающее окно ниже, нажмите Keep File
кнопку.
Используйте приложение Finder, чтобы переместить Virtual Disk 2.vmdk
файл из папки клиента в родительскую папку с именем Virtual Machines
. Далее переименуйте файл в BigSur11.6.1Installer.vmdk
. Наконец, добавьте этот новый жесткий диск в клиент как существующий жесткий диск. При выборе файла убедитесь, что Share this virtual disk with the virtual machine that created it
выбрана кнопка, как показано ниже.
Инициализируйте новый жесткий диск: запустите клиентскую виртуальную машину. Когда появится всплывающее окно ниже, выберитеInitialize…
кнопку. Должно открыться приложение Дисковой утилиты.
Выделите новый неинициализированный VMware Virtual SATA Hard Drive Media
и нажмите Erase
кнопку. Сделайте выбор, как показано ниже, затем нажмите Erase
кнопку.
Выйдите из Дисковой утилиты.
Установите VMware Tools: если VMware Tools уже установлены, перейдите к следующему шагу. ВVMware Fusion
строке меню выберитеVirtual Machine
>Install VMware Tools
. Приступайте к установке. Если одно из двух окон ниже запрашиваетRestart
, не делайте этого.
Системное ПО от разработчика "VMware, Inc." будет заблокирована от загрузки. Когда это произойдет, вы должны выбрать Allow
кнопку на Security & Privacy
панели Системных настроек. После этого, когда окно, показанное ниже, запрашивает Restart
, вы должны сделать это.
Восстановление на новый диск: в клиенте откройте Desktop
папку, хранящуюся на хосте, затем откройте BigSur11.6.1Installer.dmg
файл. На клиенте откройте приложение «Дисковая утилита» и выделите MyVolume
том. В верхней части окна Дисковой утилиты выберите Restore
. Во всплывающем окне выберите восстановление из Install macOS Big Sur
, затем нажмите Restore
кнопку .
Примечание. На моем Mac восстановление заняло около 8 минут.
Когда закончите, выберите Done
кнопку. Из Дисковой утилиты извлеките образ диска с Install macOS Big Sur
томом, затем закройте Дисковую утилиту. Закройте все открытые окна Finder.
Очистка: с хоста переместитеBigSur11.6.1Installer.dmg
файл изDesktop
папки в корзину. При желании восстановите общие папки до исходного состояния.
Чтобы загрузиться с нового установочного диска macOS, выполните следующие действия.
Startup Disk
панель Settings
для клиента.Hard Disk 2 (SATA)
.Restart…
кнопку.Просто хочу поделиться своей пробой после прочтения первого поста Дэвида Андерсона, который помог мне найти это.
Среда немного отличается от VMW Fusion, собственно она такая:
Гостевая ОС: Big Sur 11.6
Хост ОС: Big Sur 11.6 на MBA 2020 (Intel)
Гипервизор: Virtual Box 6.1.28
Я пытался всеми способами загрузиться в режиме восстановления, используя nvram или через внутреннюю оболочку EFI, но все безуспешно (в моей среде).
sudo nvram "recovery-boot-mode=unused"
==> С этой старой (Catalina) переменной я даже получаю «Ошибка установки переменной» в Big Sur.sudo nvram internet-recovery-mode=RecoveryModeDisk
==> при перезагрузке GuestOS кажется, что переменная игнорируется, поскольку MBA фактически не загружается в режиме восстановления.dmpstore -l csr.bin
==> возвращает «Подходящая переменная не найдена».А также загрузившись во внутренней оболочке EFI и ища CoreServices/boot.efi, я просмотрел все FS N : записи таблицы сопоставления (все тома/разделы локального внутреннего диска MBA), но безуспешно. Кажется, System/Library/CoreServices скрыты или зашифрованы (SSV?)
Затем, как предложил t0rr3sp3dr0 здесь, в GitHub , попытался найти CoreServices boot.efi таким образом, и я сделал следующее:
FS7:
vol
cd System/Library/CoreServices
boot.efi
ENTER
Наконец-то моя гостевая ОС (BigSur 11.6) загружается в режиме восстановления!
Надежда может помочь.
Этот ответ основан на первой установке UEFI Shell v2.2. См. этот ответ для получения инструкций о том, как использовать rEFInd для вызова оболочки UEFI.
Выберите одну из двух отмеченных ниже процедур, чтобы установить csrutil
псевдоним оболочки UEFI.
Введите приведенную ниже команду в оболочке UEFI. Поскольку этот псевдоним является энергонезависимым, команду нужно будет ввести только один раз.
alias csrutil "setvar csr-active-config -nv -rt -bs -guid 7C436110-AB2A-4BBB-A880-FE41995C9F82"
Установите startup.nsh
файл, как описано в указанном ответе . Этот скрипт будет создавать изменчивую форму псевдонима, показанную выше, каждый раз, когда вызывается оболочка UEFI.
Чтобы изменить конфигурацию защиты целостности системы, введите команды в столбце «Эквивалент оболочки UEFI» ниже в оболочке UEFI.
Команда macOS | Эквивалент оболочки UEFI | Описание |
---|---|---|
csrutil clear |
csrutil = |
Очистите существующую конфигурацию. |
csrutil disable |
csrutil =0x0000007f |
Отключите защиту на машине. |
csrutil enable |
csrutil =0x00000010 |
Включите защиту на машине. |
csrutil status |
csrutil |
Показать текущую конфигурацию. |
Примечание. После
csr-active-config
установки переменной вы можете включить/отключить SIP непосредственно из rEFInd.
Биты переменной csr-active-config
определены в csr.h
файле. Версию этого файла можно найти на opensource.apple.com . Этот поток на developer.apple.com определяет некоторые дополнительные csrutil
аргументы для enable
команды. Связь между этими битами и csrutil
командами выбора и аргументами приведена в таблице ниже для macOS Big Sur версии 11.6.1.
Примечание. Таблица ниже также относится к macOS Monterey версии 12.0.1.
команды csrutil с необязательными аргументами |
csr- active- config |
CSR_ ALLOW_ UNTRUSTED_ KEXTS = 0x001 |
CSR_ РАЗРЕШЕНО_ НЕОГРАНИЧЕННО_ FS = 0x002 |
CSR_ ALLOW_ TASK_ FOR_ PID = 0x004 |
CSR_РАЗРЕШИТЬ_ЯДРО_ОТЛАДЧИК = 0x008 _ _ |
CSR_ РАЗРЕШИТЬ_ APPLE_ ВНУТРЕННИЙ = 0x010 |
CSR_ РАЗРЕШЕНО_ НЕОГРАНИЧЕННО_ DTRACE = 0x020 |
CSR_ РАЗРЕШЕНО_ НЕОГРАНИЧЕННО_ NVRAM = 0x040 |
CSR_ РАЗРЕШИТЬ_ УСТРОЙСТВО_ КОНФИГУРАЦИЯ = 0x080 |
CSR_ ALLOW_ ANY_ RECOVERY_ OS = 0x100 |
CSR_ ALLOW_ UNAPPROVED_ KEXTS = 0x200 |
CSR_ ALLOW_ EXECUTABLE_ POLICY_ OVERRIDE = 0x400 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
давать возможность | 0x00000010 | ⚫ | ||||||||||
включить ‑‑нет‑внутренний | 0x00000000 | |||||||||||
включить --без kext |
0x00000019 | ⚫ | ⚫ | ⚫ | ||||||||
включить --без fs |
0x00000012 | ⚫ | ⚫ | |||||||||
включить — без отладки |
0x00000014 | ⚫ | ⚫ | |||||||||
включить --без dtrace |
0x00000030 | ⚫ | ⚫ | |||||||||
включить --без nvram |
0x00000050 | ⚫ | ⚫ | |||||||||
запрещать | 0x0000007F | ⚫ | ⚫ | ⚫ | ⚫ | ⚫ | ⚫ | ⚫ |
csrutil enable --without debug
теперь car-active-config
устанавливается значение 0x00000014
. Я изменил таблицу, чтобы отразить это.У меня была такая же проблема, и я несколько раз уходил от ярости. :)
В настройках VMWare создайте новый жесткий диск объемом не менее 16 ГБ и подключите его к гостевой виртуальной машине macOS.
Загрузите виртуальную машину macOS и отформатируйте новый жесткий диск в гостевой виртуальной машине macOS как JHFS+ (не APFS), который также известен как «Mac OS Extended (в журнале)» в формате GUID.
Загрузите приложение Install Big Sur/Monterey etc из App Store.
Создайте загрузочный диск восстановления на диске, созданном на шаге 2, используя приведенные здесь инструкции ( https://support.apple.com/en-us/HT201372 ) на новом жестком диске.
Выключите гостевую виртуальную машину macOS.
В настройках виртуальной машины -> Загрузочный диск -> Выделите новый жесткий диск из шага 1, а затем нажмите кнопку Restart
.
ИЛИ
Если вы используете рабочую станцию/проигрыватель VMWare, получите доступ к микропрограмме, отправив спам на клавишу Rили F12, и измените порядок загрузки, чтобы диск, созданный на шаге 2, был первым.
Затем вы окажетесь в установщике, выберите свой язык, затем выберите терминал и войдите csrutil disable
, и вы увидите сообщение с подтверждением, и БУМ, он выключен, и вы можете пролить несколько слез радости и насладиться эго. :)
Перезапустите и войдите в прошивку с помощью клавиши Rили F12и измените порядок загрузки на исходные настройки.
Если у вас все еще есть проблемы, я могу попробовать сделать видео.
Restart to firmware...
на панели «Загрузочный диск» в настройках?Много ОЧЕНЬ сложных ответов на этот вопрос, но у меня есть гораздо более простой способ сделать это.
Сначала загрузите загрузочный ISO-образ Big Sur из Интернета (их несколько в Интернет-архиве, выполните поиск). Затем в настройках оборудования CD/DVD (SATA) в настройках виртуальной машины установите для него значения «Подключено» и «Подключено при включении» и укажите загруженный образ ISO.
Затем, отключив виртуальную машину, перейдите в меню: VM — Power — Power on Firmware.
Примечание. Если вы используете бесплатную версию VMware Fusion Player, то «меню: VM — Power — Power on Firmware» не будет. Вместо этого перейдите на панель «Загрузочный диск» в настройках, нажмите и удерживайте клавишу option, затем выберите кнопку «Перезагрузить до прошивки…».
В прошивке выберите «Войти в настройки».
«Настроить параметры загрузки»
"Изменить порядок загрузки"
затем нажмите Enter и выберите EFI VMware Virtual SATA CDROM Drive (1.0), а затем нажмите знак «плюс», чтобы переместить его наверх.
«Зафиксировать изменения и выйти»
«Выйти из диспетчера обслуживания загрузки»
«Выключить систему»
Затем ваша виртуальная машина должна загрузиться в среду восстановления, и вы можете отключить или включить SIP с терминалом там.
И я обнаружил, что если вы находитесь в режиме восстановления и выбираете меню Apple «Загрузочный диск» и устанавливаете его обратно в свой обычный загрузочный образ, нет необходимости возвращаться в настройки прошивки ВМ, чтобы отменить первый вариант загрузки DVD.
Но я обнаружил, что ЛУЧШЕЕ, что можно сделать, это оставить параметр загрузки с компакт-диска установленным в прошивке и оставить ISO в папке вашего VMware, готовым к легкому доступу, и просто установить (или снять флажок) компакт-диск / DVD виртуальной машины " Подключаться при включении» всякий раз, когда вы хотите загрузиться в режиме восстановления (или нет).
Самый быстрый и рабочий способ сделать это напоминает ответ выше -
Начните с переменной с ошибкой. (Asr-active-config и т. д. в порядке). Оно написано с ошибкой и поэтому не защищено macOS.
На хосте отредактируйте файл NVRAM напрямую (!) - это намного проще, чем заходить в оболочку UEFI на гостевой машине и т. д. Даже vim здесь подойдет, поскольку в файле нет CRC. «Asr» будет UTF16, поэтому ищите A^@s^@r (нулевые терминаторы для uint16_t). Измените «A» на «c» с помощью функции vim «r» и сразу же запишите файл.
перезагрузить. сделанный
vi
?На всякий случай: я создал небольшой инструмент для облегчения такой операции.
Вы можете найти его на GitHub: https://github.com/javerous/vm-config.
Это должно быть так же просто, как сделать
vm-config change /path/to/vm.vmwarevm --csr-disable
для отключения SIP.
Это первая версия, поэтому в ней могут быть некоторые ошибки, но, судя по моим собственным тестам, она работает без сбоев. При этом вы можете использовать его только на резервной копии виртуальной машины.
Кевин Грабхер
Дэвид Андерсон
boot.efi
файла. Я разместил это в своем вопросе. В предыдущих версиях macOS этотboot.efi
файл есть, но не в Big Sur.Кевин Грабхер
Дэвид Андерсон
csrutil disable
можно ввести команду. Процедура создания накопителя и носителя сложна, а время, необходимое для загрузки, довольно велико. Я надеялся на что-то более простое и быстрое. Вы можете опубликовать как ответ, но я бы посчитал это ответом в крайнем случае.пользователь3439894
пользователь3439894
sudo nvram "recovery-boot-mode=unused"; sleep 2; sudo reboot
из Терминала для перезагрузки в MacOS Recovery . Благодаря вашему вопросу и очень интересному ответу, я установил виртуальный жесткий диск для восстановления macOS из файлов Temporary Installation Source Disk.vmdk и Temporary Installation Source Disk.dmg, созданных VMware Fusion .пользователь3439894
/etc/fstab
он был доступен только для чтения и не монтировался при обычной загрузке. Я добавил его как общий виртуальный жесткий диск, чтобы использовать его на всех моих виртуальных машинах MacOS Big Sur и минимизировать использование дискового пространства хоста . Не умаляйте вашего интересного ответа, но для меня это продвижение вперед, IMO, является гораздо лучшим решением для таких проблем. (Как при загрузке macOS Recovery , так и при отключении SIP .)Дэвид Андерсон