Mac OSなしでWindowsとArchLinuxをデュアルブートしてみた―OSを20回も入れなおした話

By | 2014年10月3日

発端は、今年の8月。OSXを完全に消し、Windows専用機と化していた私のMacBookProだったのですが、Linuxも欲しくなったので、「OSXがない状態でのWindowsとUbuntuのデュアルブート」にチャレンジしてみました

なんでOSXなしかって?僕のMacBookはSSD128GBモデルなので、少しでも容量を節約したかったからです。UbuntuのISOを焼き、DVDからブート。Ubuntuインストーラーは賢いので、ちゃんとWindowsを認識してくれて、共存する形でちゃんとブートローダーも書き込んでくれた….はずでした。ですが、いざ再起動してみるとWindowsはちゃんと起動するもののUbuntuは起動中に止まってしまいます。ログを見てみると、ブートローダーは正常に処理をしているのに、どうやらCPUを認識する段階でOSの起動が止まっているみたいです。調べてみると、どうやらカーネルのバグで、MacにUbuntuを入れてLegacy bootした時に症状が出るみたいです。

そして地獄が始まったのです…

なんとかしてMacBook上でOSXなしでWindowsとLinuxを共存させるため、何度も何度もトライ。Ubuntu以外のディストリビューションも試しました。家のデスクトップに入れるときには一発で入ったのに!気づいたら

  • Ubuntuを6回インストール、起動失敗(Ubuntu for macを試したり、バージョンを下げたり、カスタムインストールしたり…)
  • Linux Mintを2回インストール、起動失敗(エディションを変えてみたり)
  • Debianのを1回インストール、起動失敗
  • Windowsを3回インストール
  • Arch Linuxを3回インストール、起動失敗
  • Mac OS Xを5回インストール
  • ーー4日間で計20回ほどSSDをふっ飛ばし、OSのインストールを繰り返す

ということになってました。どうしてこうなった… MacBookは構成が壊れてブートができなくなるとこんな感じの、かわいいフォルダのマークが点滅するようになります。もう何回こいつを見たことか。

G7wYF

新しいパソコン買えばいいじゃん

アホでは

SSD痛みそう

頭おかしい

(周囲からの当然の反応)

 

しかし、こうした苦行の末、ついに成功しました。MacBook上で、OSXなしで、Arch LinuxとWindowsが共存しています。やったね!

今まで、Arch Linuxは難しそうだったので敬遠していたのですが、Arch Wikiやユーザーレポジトリがとても素晴らしく、今はとても気に入っています。この機会に、皆さんもArch Linuxにチャレンジされてはいかがでしょうか?

ということで、以下、どういう風にこの特殊なデュアルブート環境を構築したのか書いていきます。また、以下で想定するWindowsはWindows8以降のものとします。

 

やりかた

まず、大まかなインストール手順ですが、

OSXでパーティションを切る→Windowsをインストール→Arch Linuxをインストール→OSXをインストールする→OSXからrefindを入れる→Arch LinuxからOSXを消し、他のパーティションを拡張する

という順で行います。一番のミソは、OSXのコンソールからrefindをEFI領域にインストールすることです。

 

1.OSXでパーティションを切る

この特殊環境を構築するにはOSXの助けが必須です。といっても、一番最初の段階でOSXが入っている必要はありません。OSXが入っているのに起動できない、という状態でも大丈夫です。なぜなら、MacはOSのインストールイメージをネットからダウンロードすることができ、そのイメージを起動させることができるからです。イメージを起動し、パーティションを切りましょう。電源ボタンを押した後、CommandキーとRキーをしばらく同時に押しっぱなしにします。そうすると、回転する地球儀のマークが現れます。

internet_recovery001

この画面は、OSXのインストールイメージをインターネットからダウンロードするための画面です。Wifiを選択し、ネットワークに繋がるとダウンロードが開始されます。

Arch Linuxをインストールする場合、gdiskとかを使ってパーティションを切ったりすると思いますが、残念なことにOSX付属のディスクユーティリティでパーティションを切らないと、あとでブートできなくなったり、Windowsのインストールで問題が発生したりしました。ですので、このようにしてパーティションを切るときはOSXからやるようにしましょう。

パーティションの切り方ですが、この記事のようにWindowsとLinuxのデュアルブートにする場合、次の5つの領域を作成する必要があります。

  • Windowsインストール用の領域
  • Linuxインストール用の領域
  • Linuxのswap領域
  • あとで一時的にOSXをインストールする領域
  • rEFIndインストール用の領域

すでにWindowsとLinuxが入っている場合、OSXを入れる領域を作るだけで大丈夫です。

もしディスクユーティリティを起動してみて、パーティションが自由にいじれない場合、残念ながら一旦ディスクをすべて消去する必要があります。そうしないと先へ進めません。

この手順ではEFI領域が必要なのですが、ディスクユーティリティでパーティション操作ができるということは、EFI領域が既にできているはず(要検証)なので、EFI領域については気にしなくて大丈夫です。

ディスクユーティリティからWindowsやLinuxインストール用の領域を作ります。私は、ファイルシステムはFatにしておきました。一旦Fatでパーティションを作成しておいて、後で必要なファイルシステムにフォーマットしなおすことにします。Linuxの領域は、あとでOSXを消したときに拡張できるため、必要な大きさより10GBくらい小さめのパーティションにしておきます。Windowsは、必要な大きさのパーティションを作りましょう。Linuxのswap領域も、Fatで作っておくことにします。

一緒に、OSXをインストールする領域を作ります。これは、後で消すので15GBくらいで大丈夫です。ファイルシステムはHFS+(かHFS)(Mac標準のファイルシステム)にしましょう。また、rEFIndインストール用の領域は、容量が500MBくらいのHFS+で作っておきます。

一つ重要なこととして、パーティションを作るときに大きな空き領域を作らないようにしてください。理由はわかりませんが、後で拡張するために大きな空き領域を作ってしまうと、後でrEFIndからWindowsが起動しなくなることがあります。やりかたによっては、パーティションとパーティションの間に2MBほどの空き領域ができてしまうことがありますが、これは大丈夫です。問題になるのは、大きさが10GBとかある空き領域です。私もこれで何回も失敗しました。気を付けましょう。

パーティションを切り終わったら、いったん終了しましょう。まだOSXはインストールしません。次はWindowsのインストールを行います。

 

2.Windowsをインストールする

Windowsをインストールします。インストールメディアを入れ、先ほど、Windows用に作った領域に、インストールしましょう。インストーラーが場所を訪ねてくるとき、インストーラーの指示に従って、先ほどFatでフォーマットしたWindows用の領域を必要なファイルシステムでフォーマットしなおします。

インストールが終わって無事にデスクトップが表示されたら、シャットダウンを行います。このとき、Windows8以降の場合は必ず完全シャットダウンを行います。これをしないと、最悪ふりだしに戻る羽目になります。Windows8.1の場合は、右側のメニューを出して「PC設定の変更→保守と管理→回復→今すぐ再起動」の順でボタンをクリックしていきます。そして画面が切り替わったら、「PCの電源を切る」をクリックします。Windows8以降では、PCを高速に起動するため、シャットダウン時に変な領域が作成されます。それを防ぐため、完全シャットダウンを行います。完全シャットダウンの詳しいやり方は、各自調べてください。

 

3.(Arch) Linuxをインストールする

Arch Linuxをインストールします。Arch Wikiに従い、インストールしましょう。その際、インストール方法はUEFIのやり方に従います。ブートローダーのインストールもしましょう。先ほどLinux用に作ったパーティションをext4などにフォーマットしなおし、swap領域をmkswapでフォーマットしなおします。インストールが終わったら、シャットダウンしましょう。

また、Archじゃないほかのディストリビューションを入れる場合ですが、気を付ける必要があります。まず、UbuntuなどでGUIインストーラを使う場合は、「すでにあるWindowsと共存させる」を選択してはいけません。手動でパーティションの設定を行います。先ほどのLinux用領域を/(ルート)にし、swap領域をswap領域に設定してインストールします。ブートローダーもインストールします。

この状態で再起動をしても、先ほどのフォルダマークが出てくるだけで、何も起動してくれません。シャットダウンしたら、すぐに次の手順に移ります。

 

4.OSXをインストールする

次にOSXをインストールします。先ほどと同様に、Command+Rで起動し、ウィザードに従って、先ほど作ったOSX用の領域にOSXをインストールします。ここは特に気を付けることはないでしょう。インストールできたら、再起動します。普通にOSXが起動するはずです。

 

5.OSXからEFI領域にrEFIndをインストールする

これは重要な工程です。まず、こちらのサイトからrEFIndというツールをダウンロードします。こちらの、”A Binary Zip File”をダウンロードしましょう。このツールは、種々のOSのEFIブートを正しく行うためのツールで、今回はこのツールをEFI領域にインストールして使います。

次に、コンソールを開き、次を実行して、どのディスクにどんな名前がついているのかを把握します。

パーティションの一覧と、そのサイズやファイルシステムが表示されます。先ほど、rEFInd用の領域を500MBで作ったはずなので、それを手掛かりに、パーティションのデバイス名を探します。たとえば、私の場合は/dev/disk0の6番目だったので、/dev/disk0s6というデバイス名を覚えておきます。

では、rEFIndをインストールしましょう。先ほどダウンロードしたフォルダをコンソールで開き、次のコマンドを実行してください。/dev/yourdiskは先ほど覚えておいたデバイス名に置き換えてください。私の場合は–ownhfs /dev/disk0s6でした。

–ownhfsオプションはrEFIndのインストール先を指定するためのオプションです。このオプションなしで./install.shすると、OSXのある領域にrEFIndが入るため、後でOSXを消すことができません。また、もしものときのため、alldriversオプションでドライバを入れておきます。インストールが終わったら、再起動しましょう。

 

6.(Arch) LinuxからOSXを消す

しばらく白い画面が表示された後、こんな感じのrEFIndの画面が表示されるはずです。(公式サイト様より拝借)

refind

たぶん、この記事にそってインストールした人は、りんごとWindowsとLinuxのアイコンが表示されていると思います。この中からWindowsを選んでEnterします。起動するはずです。Windowsが無事に起動することを確認したら、こんどはLinuxを選んでEnterします。

どちらも無事に起動できていたら、もうOSXに用はありません。消してしまいましょう。Linuxから、gpartedなりgdiskなり、好きなツールを起動してOSXを消しましょう。OSX Recoveryと書いてあるのは、OSXの回復用領域です。これも消してしまって大丈夫です。消したら、先ほどのLinuxを空き領域いっぱいに拡張しましょう。先ほども言いましたが、空き領域を残さないでください、Windowsが起動しなくなります。

これで、OSXのない、WindowsとLinuxのデュアルブートが出来上がっているはずです!

パーティションをいろいろと操作しましたが、例えば私は最終的にこんな感じのパーティションになっています。sda2がWindows、sda4がArchになっています。

Partitions

 

 

なぜこんな面倒なことをしないといけないのか

Macでは、他のOSのブートローダーをちゃんと認識させ、そこからブートさせるために特別なコマンドを実行する必要があります。これはblessコマンドで行うことができますが、blessコマンドの処理はOSX上からでしかできません。rEFIndのインストールはLinux上からでも行えるのですが、このblessの処理ができないため、Macの場合はどうしてもOSXを残した状態でほかのOSを入れる必要があるのです。このせいで、OSXなしでWindowsとLinuxを共存させる手順が面倒くさくなっています。

 

rEFIndのカスタマイズ

rEFIndは、EFIパーティションのrefindフォルダ内のrefind.confをいじることにより、色々な設定をすることができます。私は、こちらのテーマを入れました。緑色で綺麗なので気に入っています。他にこういうシンプルなやつもあります。

1413382449452

(相変わらず写真を撮るのが下手くそ)

 

実は、初めに私は次のようなコマンドでrEFIndを入れていました。

epsオプションを付けることで、rEFIndのインストール先をEFI領域(の中のeps領域)にすることができます。当初はこれでもうまくいったのですが、なぜか起動にかかる時間がとても長かったんです。電源ボタンを押して20~30秒待たされます。そんな中、こんな記事を発見し、rEFInd用のパーティションを作ることにしたのです。もし、少しでもパーティションの数を減らしたい、という人がいたら、–ownhfsではなく–epsオプションを使うといいと思います。

 

おわりに

こんなニッチな記事、だれが読みたがるんだろうと思いつつ書きましたが、blessコマンドの存在を知ったりしてくれたら幸いです。OSを何度も吹っ飛ばすと、ブートローダーに対する恐怖心も一緒に吹っ飛んでいいですよ(謎)! 長文になりましたが最後までお付き合いしてくださりありがとうございました。


コメントを残す

メールアドレスが公開されることはありません。