※アカウント統合により過去記事再掲:元の投稿日 2016年02月26
さあ、やってしまった!
Mac miniをRedHatとのデュアルブートにしようとして、RedHatしか立ち上がらなくなってしまった。
このまま起動音のカッコイイLinuxとして使うのも一案だが、Macを捨て去るのも悲しい話。LinuxのCUIをパチパチやってると仕事してる風に見えて遊んでられてとても素敵なのだが、現実にiPhoneアプリの開発なんかをやる時にはやっぱMacいるじゃんという話になるわけで、さてどうしようか。
ブートメニューに「OS X」を追加すりゃいいじゃん、って事でやってみた。
#まずはGrubコンソールに入って
Grubのメニューが表示されている所で C を押すと、コンソールに入れる。
grub>
と出てきたらこっちのもんだ。取り敢えず ls しとく。
grub> ls
(hd0) (hd1) (hd1,gpt6) (hd1,gpt5) (hd1,gp4) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1)
こんな感じで表示される。
で、どれがOS Xだったかなーと。
/System/Library/CoreServices/boot.efi
取り敢えず↑のファイルがあるパーテーションを探す。
ま、片っ端から見ていくか、と。
grug> ls (hd1,gpt6)/System/Library/CoreServices/
※英字キーボードになってるんで、()のキーの位置とか右にズレてたりするのでしょっちゅう打ち間違えるけどあんま気にせずやろう
error: file '/System/Library/CoreServices/' not found.
無かったね。はい気にしない。
↑キーを押して次々やっていこう。
grug> ls (hd1,gpt3)/System/Library/CoreServices/
./ ../ .disk_label .disk_label.contentDetails .disk_label_2x .root_uuid
boot.efi PlatformSupport.plist SystemVersion.plist
お?
boot.efiあるじゃん。
しかし騙されてはいけない。こいつを使ってブートしようとしたら失敗したので、こいつはなんか別の奴なのだ。別のなんなのかは俺は知らん。
grug> ls (hd1,gpt2)/System/Library/CoreServices/
./ ../ .disk_label .disk_label.contentDetails .disk_label_2x AddPrinter.app/ AddressBookUrlForwarder.app/ AirPlayUIAgent.app/ AirPort Base Station Agent.app/
(略)
BluetoothUIServer.app boot.efi cacheTimeZones
(略)
--MORE--
これやんけ! 多分これやろ! 一杯あるからこれや!
と、言うわけで (hd1,gpt2) と、これを覚えておこう。
では esc でブートメニューに戻ってよろしい。
Grubの設定ファイル的なのを書き換える
当然rootでの作業。
# vi /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
このファイルに追加する。Iで挿入モードに入って以下を追加。
menuentry "OS X" {
insmod hfsplus
set root='(hd1,gpt2)' # さっき確認したパーテーション
chainloader /System/Library/CoreServices/boot.efi
}
escで戻って**:wq**で上書き。
最後にgrub.cfg ファイルを更新する。
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
再起動して・・・
# reboot
ででーん!
これで OS X を選択したら、あの食いかけのリンゴのマークが表示されるはず。
はい、お疲れ様でした。
後日談
しばらく使っているとOS Xがbootしなくなってしまった。
なんでですかね?
grubコンソールからlsで確認してみると、それまでhd2だったのがhd1になってたんですよね。
だからまあ、40_customファイルを書き換えてまた起動できるようにはしましたが、なんでこの辺変わっちゃったんですかね。イマイチ分かってないんですよね。