El Capitan更新后,Boot Camp脚本中断


3

我有一个脚本,可以从Terminal调用以引导到Windows分区:

#! /bin/bash
sudo bless -mount "/Volumes/BOOTCAMP" -legacy -setBoot
sudo reboot

更新到El Capitan(10.11.1)之后,我将无法使用它。该错误消息说明无法设置磁盘属性,因此我猜想这与此更新中添加的安全功能有关。

Answers:


2

如果启用了系统完整性保护,则不能将可引导磁盘设置为bless。这是因为bless会写入NVRAM,这是SIP禁止的。这就是为什么系统偏好设置→启动磁盘可以设置启动磁盘,而其他二进制文件却不能的原因。

要禁用系统完整性保护,您可以执行以下操作:

  1. 按住⌘R并重新启动,以启动到Recovery HD。
  2. 打开终端(从“实用工具”菜单中)。
  3. 在终端中运行以下命令:

    csrutil disable
    
  4. 重新开始。

来源:禁用OS X El Capitan Rootless,并允许对系统完整性保护位置进行写操作


什么时候应该担心禁用SIP?
肖恩·哈夫

@Sean使用管理员的密码(即root),它可以使应用程序写入/ System,NVRAM并将代码注入其他正在运行的进程中。它是El Capitan的新功能,而优胜美地(Yosemite)和更早版本中的OS X状态已禁用SIP。由于系统偏好设置是使用Apple证书进行代码签名的,因此它会绕过SIP,因此,最好为该GUI编写脚本以避免避免禁用SIP。
grg

1
我会避免禁用SIP并找到其他方法。Bless也不是唯一设置启动磁盘的工具,并且很可能会使用automator或applescript之类的东西来支持Apple,从长远来看,这是有益的,因为更新不太可能破坏它。
约翰·基茨
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.