dd 操作は許可されていません。サンドボックスから脱出するにはどうすればいいですか?

dd 操作は許可されていません。サンドボックスから脱出するにはどうすればいいですか?

ディスク上の不良セクタを回復しようとしていますが、そのためには不良セクタを上書きする必要があります。Web 上の多くの情報源では、dd を使用してこれを行うことを推奨していますが、その方法は機能しません。

$ sudo dd if=/dev/zero of=/dev/disk1 bs=512 count=1 seek=961575240
dd: /dev/disk1: Operation not permitted
$

マウントされたファイルシステムに対してこれを行うことについて何らかのチェックがあるのではないかと考え、シングルユーザー モードで起動しましたが (少なくとも読み取り専用モードのままです)、それでも同じエラーが発生します。ただし、サンドボックスに関するいくつかの追加メッセージも表示されます。

Sandbox: dd(5) System Policy: deny(1) file-write-data /dev/disk1
Sandbox: dd(5) System Policy: deny(1) file-write-data /dev/disk1

ddをサンドボックスから出せるようにする方法はありますか?試してみました

sudo sandbox-exec -p '(version 1) (allow default)' /bin/dd if=/dev/zero of=/dev/disk1 bs=512 count=1 seek=961575240

しかし、それでも操作が許可されていないというエラーが発生しました。

これはOS X 10.11 GMです

答え1

これをテストするための犠牲となるコンピュータを持っていませんが、システム整合性保護El Capitan の機能です。主に、SIP は、(ルートであっても) ディスクのシステム領域 (/System、/sbin、/bin/ ほとんどの /usr など) の変更、システム プロセスの混乱、不適切に署名された kext の読み込みなどを防ぎます。ただし、システム フォルダーの保護を強化するために、システム ボリュームがあるデバイスへの生の書き込みも防止します。はい、ルートであってもです (これがポイントです。ルート アクセスを取得したマルウェアによる被害を制限するためです)。

考えるこの制限は適用されませんリカバリモード. コンピュータの起動時に Command-R キーを押し続けると、非表示の緊急パーティションから起動します。ターミナル (ユーティリティ メニューにあります) を開き、ddそこから を試してください。 はddリカバリ システム上に存在しない可能性があります (非常に最小限の機能です) が、/Volumes/Macintosh\ HD/bin/dd代わりに を使用できます。 は必要ありませんsudo。すでにルートになっています。

それでもうまくいかない場合は、 でSIPを無効にしてからcsrutil disable、通常どおり再起動してみてください(SIP の設定に関する Apple のドキュメント) 完了したら、再度有効にすることをお勧めします。これは便利なセキュリティ機能です。

答え2

私の場合は、「システム環境設定 > セキュリティとプライバシー > フルディスクアクセス > ターミナル」または iTerm2 を変更する必要がありました。

ターミナルにフルディスクアクセスを許可した後、 SIP/root または+ddを変更せずに iTerm2 の操作が許可されました... それも試しました ;-)r

答え3

を使ってみてくださいsu

Linux/Unix では、まず次のように root ユーザーのパスワードを設定する必要があります。

sudo passwd root

そうすると、これを行うのに十分な権限があるはずです。

すべてのパーティションがアンマウントされているかどうかも確認してください。

入力してmount、どのパーティションがマウントされているかを確認します。

それから:

sudo umount /dev/disk1sX

disk1sX正しいパーティションを書き込む代わりに。

関連情報