Macの物理マシンにLinuxインストールを試みた人がひょっとしたら踏む罠について説明します。
背景
MacでLinuxを使いたいときに大半の人がVirtualBoxなどの仮想環境を利用するでしょうが、物理マシンに直接Linuxをインストールすることもできます。特にメモリの少ない古いマシンでは物理マシンにインストールしたい状況もあるのではないでしょうか。また、海外ではそうしたノウハウが一定たまっているように見えますので、ハマりどころは少ないだろうと筆者は想像していました(参考:https://help.ubuntu.com/community/MacBook)。
しかし、Macの物理マシン上にLinuxをインストールする際、一部のLinuxのインストーラが「ubi-partman failed with exit code 141」などといったエラーダイアログを出して先に進めなくなることがあるようです。筆者の場合はLinux Mint 17.1(Ubuntu 14.04LTSベース)のインストーラで発生しました。
このタイミングで/var/log/syslogを見ると次のようなエラーが見つかります。
Sep 14 06:04:44 kubuntu partman: No matching physical volumes found
Sep 14 06:04:44 kubuntu partman: Reading all physical volumes. This may take a while...
Sep 14 06:04:44 kubuntu partman: No volume groups found
Sep 14 06:04:44 kubuntu partman-lvm: No volume groups found
(似た状況だと思われるロシア語の投稿より引用:http://forum.ubuntu.ru/index.php?topic=249796.0)
ネットで類似例を調べてもノーヒントに近い状態で、手詰まりになる人も多そうに感じました。
原因と対策
この原因はおそらくGPTディスクのGUIDパーティション情報にマルチバイト文字が入っていることです。私の場合はMacOSXのパーティションのラベルが「名称未設定 5」となっていました。
これはMacOSX上で次のようにして調べることができます。
$ diskutil info /dev/disk0s5
Device Identifier: disk0s5
Device Node: /dev/disk0s5
Part of Whole: disk0
Device / Media Name: 名称未設定 5
Volume Name: Macintosh HD
Escaped with Unicode: Macintosh%FF%FE%20%00HD
(以下略)
これを修正するのにgptコマンドが使えます。
$ diskutil unmount /dev/disk0s5
$ sudo gpt label -i 5 -l "Macintosh HD" /dev/rdisk0
ただし、これを行うには対象のGPTディスクをアンマウントする必要があるようです。つまり、修正したいディスクが起動ディスクの場合は不可能でしょう。筆者はたまたま外付けSSDからMacOSXを起動できる環境があったので、上記コマンドを打てました。
これが難しいような場合は、ディスクユーティリティの「修復」機能を使って一時的にMacOSXのパーティションを退避してパーティションを切り直すしか無いでしょう。パーティションを切る段階でパーティション名を「MacOSX」などと英数字だけにしておけば、このような問題は起きないように思います。
参考:http://apple.stackexchange.com/questions/23373/changing-a-volumes-device-media-name
まとめ
筆者はこの作業を行うことで、無事MacBook Air(2010 Late)にLinux Mint 17.1をインストールできました。
それにしても仮想環境っていいものですね。