アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

Mac mini(2018)にLinuxをインストールして動かす

こんにちは。アシアルの牧野です。ものすごく久しぶりのブログです。

最近、2018年に発売されたMac miniでLinuxを動かすために試行錯誤していました。新しい Mac mini にはT2セキュリティチップが搭載されていて、旧Mac miniのように簡単にLinuxをインストールすることができません。

が、何とかインストールして動かすことができたので、やり方を書きたいと思います。ちなみに、今回インストールしたのはDebian(stretchとbuster)です。

最初に制限事項

T2チップのせいだと思いますが、搭載されているデバイスのいくつかはLinuxインストール時にアクセスできないようです。
私が試した時に使えたデバイスは、

  • HDMI出力
  • 有線LAN
  • USB

でした。
USB-C、内蔵SSDは使えませんでした。
ですので、USB接続したSSD(もしくはハードディスク)にLinuxをインストールすることにしました。

USB-Cについては、Linuxインストール時にUSB-Cで外付けSSDを接続したところ認識されませんでした。Linuxをインストール後にUSB接続していたSSDをUSB-C接続に変えて起動したところLinuxが起動できたので、USB-Cは使えるようです。

インストールの流れ

0. 事前に必要なものを準備
 ・Linuxをインストールする外付けSSD(ハードディスク)
 ・起動用USBメディア
 ・LinuxのインストールCDとCD-ROMドライブ
 ・キーボード
 ・USBハブ
 ・LANケーブルとインターネット接続環境

1. T2チップのセキュリティ解除

2. 外付けSSD(ハードディスク)にLinuxをインストール

3. レスキューモードで起動し、GRUBを更新

4. デフォルトで起動するOSをLinuxに設定

インストール手順の詳細

0. 事前準備

必要な機材を用意し、インストール用のCD-ROMとUEFIに対応した起動用USBメディアを作成します。
ちなみに、CD-ROMだけではインストーラーを起動できませんでした。
今回はDebianのnetinstのISOイメージをダウンロードしてCDを焼き、起動用USBはそのISOイメージとwindowsのソフト「Rufus」https://rufus.ie/を使って作成しました。
Rufusを使って作成する時は、「詳細なドライブプロパティ」で外付けUSBメディアを表示するようにし、パーティション構成をGPT、ターゲットシステムをUEFIに指定します。

f:id:katsutoshimakino:20190205134529j:plain

1. T2チップのセキュリティ解除

Mac mini(2018)は、デフォルトでは外付けのディスクからシステムを起動できないようになっているので、セキュリティ設定を変更します。
ディスクユーティリティを表示するために、commandキー(windowsキー)とrキーを押し続けながらMac miniを起動します。画面にリンゴマークが表示されたら放しても大丈夫です。
ディスクユーティリティの画面で、起動時の設定を変更します。
変更したら、シャットダウンします。

f:id:katsutoshimakino:20190205134616j:plain

2. 外付けSSD(ハードディスク)にLinuxをインストール

準備したものを全部Mac miniに接続し、Optionキーを押しながら起動します。すると起動メディアを選択する画面が表示されるので、外付けのUSBメディアを表すUEFIブートを選択して起動します。これで、Debianのインストーラーが起動するはずです。
タイムゾーン、言語、キーボード等を指定して進んでいくと、CD-ROMの読み込みが始まるはずです。この時に、CD-ROMのデバイスを指定しても読み込みができないようだったら、CD-ROMを自動で探すところまで戻り、CD-ROMのUSBを抜き差しすると読み込みが始まるようです。
パーティションは、インストールする外付けディスクを指定してガイドに従ってやれば良いと思います。(私の方で試せているのはLVM等を使わないシンプルなものだけです。)
パッケージ選択後、インストールが進みますが、最後の方でGRUBのインストール、設定のところで自動設定中にエラーが起きるか、フリーズして進まなくなります。

f:id:katsutoshimakino:20190205134905j:plain

3. レスキューモードで起動し、GRUBを更新

ここまで来たら、Optionキー(altキー)を押しながらMac miniを再起動して、再度インストーラーを起動し、Advanced optionsからレスキューモードを選択します。
レスキューモードに入ると、最初のいくつかは通常のインストールと同じ設定項目が続きます。
ルートファイルシステム選択でLinuxをインストールしたドライブのパーティションを指定、UEFIパーティションは自動的にマウントするように選択後、選択したLinuxパーティション内でシェルを実行します。

ルートパーティション選択
f:id:katsutoshimakino:20190205135806j:plain

bootパーティションマウント選択
f:id:katsutoshimakino:20190205132913j:plain

実行内容選択
f:id:katsutoshimakino:20190205133619j:plain


シェルを実行したら、passwdコマンドでrootユーザーのパスワードを設定し、

useradd (ユーザー名)
passwd (ユーザー名)

で一般ユーザーの作成とパスワード設定をします。
そして、

grub-install -v

を実行してみます。
やはりエラーが起きて終了するか、コマンド実行中に固まると思います。固まったらCtrl+Cでコマンドを止めます。
そして、

update-grub

を実行します。このコマンドは成功するはずです。
Debian busterの場合は、この後Linux起動時に画面が正しく表示されなくなったので、以下の操作を追加で行います。

/etc/default/grub
の GRUB_CMDLINE_LINUX_DEFAULTパラメータを以下のように設定し、update-grubを実行します。

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset fb=false nofb vga=normal"

update-grubコマンドが完了したら、シェルを終了して起動用USBメディアとインストールCD-ROMのドライブを外し、option(alt)キーを押しながらMac miniを再起動します。
またUEFIブートを選択して起動すると、今度はLinuxをインストールした外付けドライブからLinuxが起動するはずです。

4. デフォルトで起動するOSをLinuxに変更
macOSがインストールされている場合、起動時にoption(alt)キーを押してブートドライブを選択しないと、macOSが起動するようです。
デフォルトでLinuxを起動させたい場合は、commandキー(windowsキー)+rキーを押しながら電源オンしてディスクユーティリティーを起動し、macOSが入っているドライブを消去します。

5. Linux起動後の作業

今回はDebianをインストールしましたが、Debianのapt-getコマンドによるインストールが完了していない状態になっていることがあるようです。

dpkg -l | grep -v ii

でインストールが完了していないパッケージがあるか確認します。

完了していないパッケージのうち、grub-efi-amd64 以外については、順番に

dpkg --configure (パッケージ名)

を実行すればインストールが完了するはずですが、grub-efi-amd64パッケージについては、インストールを正常に完了することができません。
そこで、、強制的にインストールが完了したことにします。
/var/lib/dpkg/status
に、各パッケージのインストール状況が記載されているので、このファイルを変更します。

Package: grub-efi-amd64

で始まる行を見つけたら、以下のように変更します。

Package: grub-efi-amd64
Status: install ok installed
dpkg -l | grep -v ii

でパッケージ名が何も出てこなくなれば成功です。これで、apt-getが普通に使えるようになります。
これでもエラーになる場合は、
Package: grub-efi-amd64
の後の部分の内容を適宜変更して、エラーが出なくなるようにします。


ということで、Mac mini(2018)へのLinuxのインストール手順についての紹介でした。
どれくらい需要があるのかわかりませんが、興味ある方は試してみて下さい。