Apple SuperDrive はMacBook Air のとき発売され、このMacBook Air専用で、ほかのMacでは使えないとか、USBハブ経由では使えず、本体に接続しないといけないとかになっていた。
これを解消するためには
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
を編集することになる。ところがEl Capitan から Apple はシステム関係のファイルの書き換えをできなくなるようにした。System Integrity Protection (SIP)というわけだ(rcmdnk’s blogのOS X 10.11 El CapitanのSystem Integrity Protection(SIP)についてちょっと詳しく参照)。だから単純に、管理者になってもシステム関係のファイルの書き換えができない。Sierra を使っているからな。SuperDriveを使うためには書き換える必要があるのだ。
El Capitanより前のOSだったら、
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Kernel Flags</key> <string></string> </dict> </plist>
の
<string></string>
を
<string>mbasd=1</string>
“にすればいい。
/Library/Preferences/SystemConfiguration/ で
$ sudo vi com.apple.Boot.plist
としてvi で書き換えればいいのだ。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Kernel Flags</key> <string>mbasd=1</string> </dict> </plist>
ですね。 再起動すれば使えるようになる。
El Capitan や Sierra では、面倒だ。上記のようにたとえsudo あるいは su でスーパーユーザになっても書き換えることができない。
まず command + r を押しながら再起動してリカバリーモードで起動する。(HappyHackingのキーボードではだめだった。Appleキーボードを使わないとできなかった)SIPを無効/有効にするコマンド csrutil がリカバリーモードでしか使えないからだ。
起動して言語を選ぶと macOSユーティリィティ が起動するので、メニューバーのユーティリィティからターミナルを起動する。
-bash-3.2# csrutil disable Successfully disable System Integrity Protection. Please restart the machine for the changes to take effect. -bash-3.2# reboot
csrutil disable と入力してSIPを無効にし reboot 再起動 するのだ。
無効になったことは、ターミナルで csrutil status と入力すればいい。
$ csrutil status System Integrity Protection status: enabled (Custom Configuration). Configuration: Apple Internal: disabled Kext Signing: enabled Filesystem Protections: disabled Debugging Restrictions: disabled DTrace Restrictions: disabled NVRAM Protections: disabled This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state. $
幾つかの項目に分かれているが、すべてdisableになっている。
そこで、上の書き換えを行い、またリカバリーモードで起動し、今度はターミナルで csrutil enable と入力しSIPを有効にして再起動するのだ。もとに戻ったことはターミナルで先程と同じコマンド csrutil status を入力するとわかる。
$ csrutil status System Integrity Protection status: enabled. $
ちなみに、オリジナルのcom.apple.Boot.plistは
-rw-r–r–@ 1 root admin 239 1 24 15:15 com.apple.Boot.plist
と@ が付いている。EA (Extended Attributes)情報が記載されたファイル(directory)というわけだ。この余計な情報を削除して@無しにするとダウンロードしたプログラムを使うことができる。削除するコマンドは「xattr -c -r」(-r はdirectoryの場合)である。今回の場合このコマンドはSIPで保護されているファイルなので使えない。
上記の手順にしたがって変更したら@はなくなっていた。
持っていたから使えるようにしたけど、持ってなかったら、そしてCD / DVDを使う必要があるのなら、Windows用のが使えるからね。そっちのほうが安いし。デザインだけだからなSuperDriveのいいところは。
QiitaのMac OS X El CapiptanでSIPを無効化するとか
Λ Takuya71 の日記 Λの20150513Apple SuperDrive を USBハブ経由で使用する できた!を参考にしました。