みなさんUEFI生活を満喫していますか
UEFIに移行していないBIOSユーザの方々、UEFIに移行するとこんな世界が待っています!
- ブートローダをアプリを起動する感覚で扱える
- 「ぼくのかんがえたさいきょうのパーティションテーブル」なGUIDパーティションテーブル(GPT)
- EDK2という開発環境でいろいろ遊べる(mrubyをUEFI上で動かしたりとか)
最近のPCはUEFIに対応していると言っても過言ではありません。
特にWindows 8以降なんかは起動がすごく速いらしいので移行しましょう(もそもそんな環境でUEFIじゃない人の方が少ないかな)
「UEFIに移行したらディスクのデータ全部消えるんでしょ?」って言っているあなた、ほとんどの環境ではデータを保持したまま移行できます!
(詳しくはググってみてください)
Gentoo LinuxでUEFI
Twitterで人気のディストリ(?)Gentoo Linuxですが、UEFIブートで入れようとすると割とハマります。
自分が初めてUEFIブートでGentoo Linuxを入れたのがMacBook Pro (Late 2013)なのが悪いのかもしれませんが、きちんと調べないとこうなります
- ブートしても画面が真っ暗
- 画面は出るけど起動しない
- dmesgに変なエラーが出る
- UEFI対応のカーネルが作れない
こんな症状に遭遇した人のために、主に最近のMacにUEFIブートでGentoo Linuxを入れるときにハマるところと解決方法を書いていきます。
UEFIあんまり関係ないのは許してください
ハマったときの症状と解決方法
(※)の付いている問題は、USBメモリからのブートであれば別途ファイルを追加するなどしてUEFIブートでLiveCDを起動させれば問題ないはずです。
ブートしても真っ暗(※)
解像度が合っていないために起きます。
LiveCDのカーネルオプションにnomodeset
を付けると解決します。
画面は出るけど途中で止まる(※)
おそらくこんな表示であれば、カーネルオプションで解決します。
x86: Booting SMP configuration:
.... node #0, CPUs: #1
(ここで止まる)
これはおそらくMac特有の問題で、LiveCDをUEFIのBIOS互換レイヤー(CSM)で起動させると起こります。
MacのCSMにはバグがあるらしく、複数コアのCPUをうまく扱えないために発生するようです(詳しくはこちら)。
この問題はカーネルオプションにnosmp
を追加することで直ります。
しかし、代償としてSMPを無効にするため1コアのみの認識になってしまいます。
dmesgに変なエラーが出る、起動に妙に時間がかかる
MacのSSD関連の問題を踏んでいる可能性があります。
ディスク関連のデバイスへのコマンド実行失敗と思えるようなメッセージであればこれです。
カーネルオプションにlibata.force=noncq
を追加することで直ります。
見ればわかると思いますが、このオプションはNCQを無効化するためのものです。
Xの画面がぶっ壊れる
最近はまずないと思いますが、カーネルに入っているIntel GraphicsのドライバがIris Proに対応していないせいです。
カーネルを更新すると直ります。
UEFI対応カーネルの設定
カーネルをEFI Shellなどから直接ブート可能にするEFI Stubの設定は使わないとしてもオンにしておくことをおすすめします。
カーネルオプションは埋め込まれて変更できなくなりますが、rEFIndではEFI Stubなカーネルに含まれたカーネルオプションを書き換えてブートすることができます。
また、フレームバッファにefifbを使用することが必須になります。他は画面が出ません。
しかし、ネイティブ解像度のみのサポートのため、Retinaディスプレイでは文字の大きさが小さくなってとても読みづらくなります。
OSX側のおすすめ設定
ディスクユーティリティのデバッグメニューを使うと、非表示パーティションの操作やマウントができます。
以下のコマンドでデバッグメニューをオンにできます。
$ defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true