我正在尝试恢复磁盘上的坏扇区,为此,需要覆盖坏扇区。网络上的许多来源建议使用 dd 来执行此操作,但这样做不起作用:
$ sudo dd if=/dev/zero of=/dev/disk1 bs=512 count=1 seek=961575240
dd: /dev/disk1: Operation not permitted
$
Run Code Online (Sandbox Code Playgroud)
我想可能对已安装的文件系统进行了某种检查,因此我启动到单用户模式(至少处于只读模式),但我仍然遇到相同的错误。不过,还会显示一些有关沙箱的附加消息。
Sandbox: dd(5) System Policy: deny(1) file-write-data /dev/disk1
Sandbox: dd(5) System Policy: deny(1) file-write-data /dev/disk1
Run Code Online (Sandbox Code Playgroud)
有没有办法让 dd 退出沙箱?我试过
sudo sandbox-exec -p '(version 1) (allow default)' /bin/dd if=/dev/zero of=/dev/disk1 bs=512 count=1 seek=961575240
Run Code Online (Sandbox Code Playgroud)
但这仍然给出了操作不允许的错误。
这是在 OS X 10.11 GM 上
就我而言,我必须更改 \xe2\x80\x9dSystem Preferences > Security & Privacy > Full Disk Access > Terminal\xe2\x80\x9c 或 iTerm2。
\n在我授予对终端或 iTerm2dd
的完全磁盘访问权限后,无需更改 SIP/root 或\xef\xa3\xbf+ r...我也尝试过;-)
我没有牺牲计算机来测试这一点,但我认为您正在遇到El Capitan 中的系统完整性保护功能。大多数情况下,SIP 的作用是阻止您(即使是 root)修改磁盘的系统区域(/System、/sbin、/bin/ 大部分 /usr 等)、扰乱系统进程、加载未正确签名的 kext 等。但为了加强对系统文件夹的保护,它还阻止对系统卷所在的设备进行原始写入。是的,即使您是 root(这就是重点 - 这是为了限制获得 root 访问权限的恶意软件造成的损害)。
我认为这个限制不适用于恢复模式。计算机启动时按住 Command-R,它将从隐藏的紧急分区启动。打开终端(位于“实用程序”菜单下),然后dd
从那里尝试。dd
恢复系统上可能不存在(它非常小),但您可以使用/Volumes/Macintosh\ HD/bin/dd
它。你不需要sudo
,你已经是root了。
如果这不起作用,请尝试使用 禁用 SIP csrutil disable
,然后正常重新启动(请参阅有关配置 SIP 的 Apple 文档)。然后,当您完成后,我建议重新启用它——这是一个有用的安全功能。
归档时间: |
|
查看次数: |
23325 次 |
最近记录: |