macにCentOS7をUSBメモリにインストールしてみた

May 06, 2022

8年位前に購入したiMac(21.5-inch, Late 2013)がBig Surからサポートされなくなったので、CentOSをインストールしてサーバとして活用することにしました。

最初はMACOSの上にVirtualBoxでVMを作り、そのうえでCentOSをインストールしたのですが、メモリが全部使えないので別途購入した32GBのUSBメモリにCentOSを直接インストールすることにしました。今回初めて直接インストールしてみたのですが、macはブートの挙動に癖があっていろいろはまってしまいました。

まず大前提としてmacはEFIという仕組みでブートするので、CentOSをEFIでブートするようにインストールする必要があるようです。CentOSのインストーラー(今回はDVDにisoを焼いて使用)はEFIでブートしないと、EFIシステム向けにインストールしてくれないようです(BIOSブート用にインストールされてしまい、USBからブートしたときにno bootable diskのようなメッセージが出てしまう)。インストーラーをEFIブートで起動させるには、まず電源を入れた直後にoptionを押し続けてブート可能なディスクのリストを表示させます。CentOSのインストーラディスクをいれたドライブを接続している場合、下の画像のようにWindowsとEFI Bootという2つの選択肢が出てくる(Windowsしか出てこない場合はディスクを取り出して再度入れてみるとEFIが出てくる)のでEFI Bootを選んで起動します(ここでWindowsの方を選んでしまうとインストールはできるがブートに失敗する)。そうするとEFIブートされるので、あとは普通にインストールします。

一番右のEFI Bootを選択

無事にインストールされ、再起動すると通常通りCentOSが起動しました。しかし喜んだのもつかの間、yum updateでシステムを更新して再起動すると、画面が真っ暗なままブートしなくなってしまいました。理由はよくわかっていません。いろいろ試行錯誤したのですが、結論だけ書くと、直接USBからブートせずに、rEFIndというブートマネージャを導入してrEFIndからインストールしたCentOSのディスク(ここでも複数選択肢が出るが、下画像のgrubx64.efiを選択)を選ぶと、起動させることに成功しました。ここで気を付ける点としては、macの電源ON時にはCentOSをインストールしたUSBをはずしておく、ということです。そうしないとrEFIndが起動せず、USBの方がBootされてしまいます(USBメモリを入れていると優先的にブートされる模様)。なお、rEFIndが起動後にUSBを挿入した場合、自動的には選択肢が出てこないので、エスケープキーを押してUSBを認識させる必要があります。

grubx64.efiを選択

これでようやく終わりかと思いきや、今度はCentOSをしばらく起動したままにしていたら、やたらとmacが熱くなっていることに気づきました。topコマンドで調べてみると、kworkerというプロセスの使用率が常に70%を超えていました。調査した結果、こちらのページに書いてあった以下のコマンドを実行することでとりあえずこの問題は解決しました(起動するたびに実行する必要があるのが難点ですが)。ひとまずこれで正常にCentOSが動くようになりました。

echo "disable" | sudo tee /sys/firmware/acpi/interrupts/gpe06